[weld-commits] Weld SVN: r4977 - in doc/trunk/reference: es-ES and 8 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Wed Nov 11 10:24:13 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-11 10:24:09 -0500 (Wed, 11 Nov 2009)
New Revision: 4977

Added:
   doc/trunk/reference/de-DE/beans.po
   doc/trunk/reference/de-DE/dependencies.po
   doc/trunk/reference/de-DE/resources.po
   doc/trunk/reference/de-DE/weldexamples.po
   doc/trunk/reference/es-ES/beans.po
   doc/trunk/reference/es-ES/dependencies.po
   doc/trunk/reference/es-ES/resources.po
   doc/trunk/reference/es-ES/weldexamples.po
   doc/trunk/reference/fr-FR/beans.po
   doc/trunk/reference/fr-FR/dependencies.po
   doc/trunk/reference/fr-FR/resources.po
   doc/trunk/reference/fr-FR/weldexamples.po
   doc/trunk/reference/it-IT/beans.po
   doc/trunk/reference/it-IT/dependencies.po
   doc/trunk/reference/it-IT/resources.po
   doc/trunk/reference/it-IT/weldexamples.po
   doc/trunk/reference/ja-JP/beans.po
   doc/trunk/reference/ja-JP/dependencies.po
   doc/trunk/reference/ja-JP/resources.po
   doc/trunk/reference/ja-JP/weldexamples.po
   doc/trunk/reference/ko-KR/beans.po
   doc/trunk/reference/ko-KR/dependencies.po
   doc/trunk/reference/ko-KR/resources.po
   doc/trunk/reference/ko-KR/weldexamples.po
   doc/trunk/reference/pot/beans.pot
   doc/trunk/reference/pot/dependencies.pot
   doc/trunk/reference/pot/resources.pot
   doc/trunk/reference/pot/weldexamples.pot
   doc/trunk/reference/pt-BR/beans.po
   doc/trunk/reference/pt-BR/dependencies.po
   doc/trunk/reference/pt-BR/resources.po
   doc/trunk/reference/pt-BR/weldexamples.po
   doc/trunk/reference/zh-CN/beans.po
   doc/trunk/reference/zh-CN/dependencies.po
   doc/trunk/reference/zh-CN/resources.po
   doc/trunk/reference/zh-CN/weldexamples.po
   doc/trunk/reference/zh-TW/beans.po
   doc/trunk/reference/zh-TW/dependencies.po
   doc/trunk/reference/zh-TW/resources.po
   doc/trunk/reference/zh-TW/weldexamples.po
Modified:
   doc/trunk/reference/de-DE/Author_Group.po
   doc/trunk/reference/de-DE/Book_Info.po
   doc/trunk/reference/de-DE/decorators.po
   doc/trunk/reference/de-DE/ee.po
   doc/trunk/reference/de-DE/environments.po
   doc/trunk/reference/de-DE/events.po
   doc/trunk/reference/de-DE/example.po
   doc/trunk/reference/de-DE/extend.po
   doc/trunk/reference/de-DE/extensions.po
   doc/trunk/reference/de-DE/gettingstarted.po
   doc/trunk/reference/de-DE/injection.po
   doc/trunk/reference/de-DE/interceptors.po
   doc/trunk/reference/de-DE/intro.po
   doc/trunk/reference/de-DE/master.po
   doc/trunk/reference/de-DE/next.po
   doc/trunk/reference/de-DE/part1.po
   doc/trunk/reference/de-DE/part2.po
   doc/trunk/reference/de-DE/part3.po
   doc/trunk/reference/de-DE/part4.po
   doc/trunk/reference/de-DE/part5.po
   doc/trunk/reference/de-DE/producermethods.po
   doc/trunk/reference/de-DE/ri-spi.po
   doc/trunk/reference/de-DE/scopescontexts.po
   doc/trunk/reference/de-DE/specialization.po
   doc/trunk/reference/de-DE/stereotypes.po
   doc/trunk/reference/de-DE/viewlayers.po
   doc/trunk/reference/de-DE/xml.po
   doc/trunk/reference/es-ES/Author_Group.po
   doc/trunk/reference/es-ES/Book_Info.po
   doc/trunk/reference/es-ES/decorators.po
   doc/trunk/reference/es-ES/ee.po
   doc/trunk/reference/es-ES/environments.po
   doc/trunk/reference/es-ES/events.po
   doc/trunk/reference/es-ES/example.po
   doc/trunk/reference/es-ES/extend.po
   doc/trunk/reference/es-ES/extensions.po
   doc/trunk/reference/es-ES/gettingstarted.po
   doc/trunk/reference/es-ES/injection.po
   doc/trunk/reference/es-ES/interceptors.po
   doc/trunk/reference/es-ES/intro.po
   doc/trunk/reference/es-ES/master.po
   doc/trunk/reference/es-ES/next.po
   doc/trunk/reference/es-ES/part1.po
   doc/trunk/reference/es-ES/part2.po
   doc/trunk/reference/es-ES/part3.po
   doc/trunk/reference/es-ES/part4.po
   doc/trunk/reference/es-ES/part5.po
   doc/trunk/reference/es-ES/producermethods.po
   doc/trunk/reference/es-ES/ri-spi.po
   doc/trunk/reference/es-ES/scopescontexts.po
   doc/trunk/reference/es-ES/specialization.po
   doc/trunk/reference/es-ES/stereotypes.po
   doc/trunk/reference/es-ES/viewlayers.po
   doc/trunk/reference/es-ES/xml.po
   doc/trunk/reference/fr-FR/Author_Group.po
   doc/trunk/reference/fr-FR/Book_Info.po
   doc/trunk/reference/fr-FR/decorators.po
   doc/trunk/reference/fr-FR/ee.po
   doc/trunk/reference/fr-FR/environments.po
   doc/trunk/reference/fr-FR/events.po
   doc/trunk/reference/fr-FR/example.po
   doc/trunk/reference/fr-FR/extend.po
   doc/trunk/reference/fr-FR/extensions.po
   doc/trunk/reference/fr-FR/gettingstarted.po
   doc/trunk/reference/fr-FR/injection.po
   doc/trunk/reference/fr-FR/interceptors.po
   doc/trunk/reference/fr-FR/intro.po
   doc/trunk/reference/fr-FR/master.po
   doc/trunk/reference/fr-FR/next.po
   doc/trunk/reference/fr-FR/part1.po
   doc/trunk/reference/fr-FR/part2.po
   doc/trunk/reference/fr-FR/part3.po
   doc/trunk/reference/fr-FR/part4.po
   doc/trunk/reference/fr-FR/part5.po
   doc/trunk/reference/fr-FR/producermethods.po
   doc/trunk/reference/fr-FR/ri-spi.po
   doc/trunk/reference/fr-FR/scopescontexts.po
   doc/trunk/reference/fr-FR/specialization.po
   doc/trunk/reference/fr-FR/stereotypes.po
   doc/trunk/reference/fr-FR/viewlayers.po
   doc/trunk/reference/fr-FR/xml.po
   doc/trunk/reference/it-IT/Author_Group.po
   doc/trunk/reference/it-IT/Book_Info.po
   doc/trunk/reference/it-IT/decorators.po
   doc/trunk/reference/it-IT/ee.po
   doc/trunk/reference/it-IT/environments.po
   doc/trunk/reference/it-IT/events.po
   doc/trunk/reference/it-IT/example.po
   doc/trunk/reference/it-IT/extend.po
   doc/trunk/reference/it-IT/extensions.po
   doc/trunk/reference/it-IT/gettingstarted.po
   doc/trunk/reference/it-IT/injection.po
   doc/trunk/reference/it-IT/interceptors.po
   doc/trunk/reference/it-IT/intro.po
   doc/trunk/reference/it-IT/master.po
   doc/trunk/reference/it-IT/next.po
   doc/trunk/reference/it-IT/part1.po
   doc/trunk/reference/it-IT/part2.po
   doc/trunk/reference/it-IT/part3.po
   doc/trunk/reference/it-IT/part4.po
   doc/trunk/reference/it-IT/part5.po
   doc/trunk/reference/it-IT/producermethods.po
   doc/trunk/reference/it-IT/ri-spi.po
   doc/trunk/reference/it-IT/scopescontexts.po
   doc/trunk/reference/it-IT/specialization.po
   doc/trunk/reference/it-IT/stereotypes.po
   doc/trunk/reference/it-IT/viewlayers.po
   doc/trunk/reference/it-IT/xml.po
   doc/trunk/reference/ja-JP/Author_Group.po
   doc/trunk/reference/ja-JP/Book_Info.po
   doc/trunk/reference/ja-JP/decorators.po
   doc/trunk/reference/ja-JP/ee.po
   doc/trunk/reference/ja-JP/environments.po
   doc/trunk/reference/ja-JP/events.po
   doc/trunk/reference/ja-JP/example.po
   doc/trunk/reference/ja-JP/extend.po
   doc/trunk/reference/ja-JP/extensions.po
   doc/trunk/reference/ja-JP/gettingstarted.po
   doc/trunk/reference/ja-JP/injection.po
   doc/trunk/reference/ja-JP/interceptors.po
   doc/trunk/reference/ja-JP/intro.po
   doc/trunk/reference/ja-JP/master.po
   doc/trunk/reference/ja-JP/next.po
   doc/trunk/reference/ja-JP/part1.po
   doc/trunk/reference/ja-JP/part2.po
   doc/trunk/reference/ja-JP/part3.po
   doc/trunk/reference/ja-JP/part4.po
   doc/trunk/reference/ja-JP/part5.po
   doc/trunk/reference/ja-JP/producermethods.po
   doc/trunk/reference/ja-JP/ri-spi.po
   doc/trunk/reference/ja-JP/scopescontexts.po
   doc/trunk/reference/ja-JP/specialization.po
   doc/trunk/reference/ja-JP/stereotypes.po
   doc/trunk/reference/ja-JP/viewlayers.po
   doc/trunk/reference/ja-JP/xml.po
   doc/trunk/reference/ko-KR/Author_Group.po
   doc/trunk/reference/ko-KR/Book_Info.po
   doc/trunk/reference/ko-KR/decorators.po
   doc/trunk/reference/ko-KR/ee.po
   doc/trunk/reference/ko-KR/environments.po
   doc/trunk/reference/ko-KR/events.po
   doc/trunk/reference/ko-KR/example.po
   doc/trunk/reference/ko-KR/extend.po
   doc/trunk/reference/ko-KR/extensions.po
   doc/trunk/reference/ko-KR/gettingstarted.po
   doc/trunk/reference/ko-KR/injection.po
   doc/trunk/reference/ko-KR/interceptors.po
   doc/trunk/reference/ko-KR/intro.po
   doc/trunk/reference/ko-KR/master.po
   doc/trunk/reference/ko-KR/next.po
   doc/trunk/reference/ko-KR/part1.po
   doc/trunk/reference/ko-KR/part2.po
   doc/trunk/reference/ko-KR/part3.po
   doc/trunk/reference/ko-KR/part4.po
   doc/trunk/reference/ko-KR/part5.po
   doc/trunk/reference/ko-KR/producermethods.po
   doc/trunk/reference/ko-KR/ri-spi.po
   doc/trunk/reference/ko-KR/scopescontexts.po
   doc/trunk/reference/ko-KR/specialization.po
   doc/trunk/reference/ko-KR/stereotypes.po
   doc/trunk/reference/ko-KR/viewlayers.po
   doc/trunk/reference/ko-KR/xml.po
   doc/trunk/reference/pot/Author_Group.pot
   doc/trunk/reference/pot/Book_Info.pot
   doc/trunk/reference/pot/decorators.pot
   doc/trunk/reference/pot/ee.pot
   doc/trunk/reference/pot/environments.pot
   doc/trunk/reference/pot/events.pot
   doc/trunk/reference/pot/example.pot
   doc/trunk/reference/pot/extend.pot
   doc/trunk/reference/pot/extensions.pot
   doc/trunk/reference/pot/gettingstarted.pot
   doc/trunk/reference/pot/injection.pot
   doc/trunk/reference/pot/interceptors.pot
   doc/trunk/reference/pot/intro.pot
   doc/trunk/reference/pot/master.pot
   doc/trunk/reference/pot/messages.mo
   doc/trunk/reference/pot/next.pot
   doc/trunk/reference/pot/part1.pot
   doc/trunk/reference/pot/part2.pot
   doc/trunk/reference/pot/part3.pot
   doc/trunk/reference/pot/part4.pot
   doc/trunk/reference/pot/part5.pot
   doc/trunk/reference/pot/producermethods.pot
   doc/trunk/reference/pot/ri-spi.pot
   doc/trunk/reference/pot/scopescontexts.pot
   doc/trunk/reference/pot/specialization.pot
   doc/trunk/reference/pot/stereotypes.pot
   doc/trunk/reference/pot/viewlayers.pot
   doc/trunk/reference/pot/xml.pot
   doc/trunk/reference/pt-BR/Author_Group.po
   doc/trunk/reference/pt-BR/Book_Info.po
   doc/trunk/reference/pt-BR/decorators.po
   doc/trunk/reference/pt-BR/ee.po
   doc/trunk/reference/pt-BR/environments.po
   doc/trunk/reference/pt-BR/events.po
   doc/trunk/reference/pt-BR/example.po
   doc/trunk/reference/pt-BR/extend.po
   doc/trunk/reference/pt-BR/extensions.po
   doc/trunk/reference/pt-BR/gettingstarted.po
   doc/trunk/reference/pt-BR/injection.po
   doc/trunk/reference/pt-BR/interceptors.po
   doc/trunk/reference/pt-BR/intro.po
   doc/trunk/reference/pt-BR/master.po
   doc/trunk/reference/pt-BR/next.po
   doc/trunk/reference/pt-BR/part1.po
   doc/trunk/reference/pt-BR/part2.po
   doc/trunk/reference/pt-BR/part3.po
   doc/trunk/reference/pt-BR/part4.po
   doc/trunk/reference/pt-BR/part5.po
   doc/trunk/reference/pt-BR/producermethods.po
   doc/trunk/reference/pt-BR/ri-spi.po
   doc/trunk/reference/pt-BR/scopescontexts.po
   doc/trunk/reference/pt-BR/specialization.po
   doc/trunk/reference/pt-BR/stereotypes.po
   doc/trunk/reference/pt-BR/viewlayers.po
   doc/trunk/reference/pt-BR/xml.po
   doc/trunk/reference/zh-CN/Author_Group.po
   doc/trunk/reference/zh-CN/Book_Info.po
   doc/trunk/reference/zh-CN/decorators.po
   doc/trunk/reference/zh-CN/ee.po
   doc/trunk/reference/zh-CN/environments.po
   doc/trunk/reference/zh-CN/events.po
   doc/trunk/reference/zh-CN/example.po
   doc/trunk/reference/zh-CN/extend.po
   doc/trunk/reference/zh-CN/extensions.po
   doc/trunk/reference/zh-CN/injection.po
   doc/trunk/reference/zh-CN/interceptors.po
   doc/trunk/reference/zh-CN/intro.po
   doc/trunk/reference/zh-CN/master.po
   doc/trunk/reference/zh-CN/next.po
   doc/trunk/reference/zh-CN/part1.po
   doc/trunk/reference/zh-CN/part2.po
   doc/trunk/reference/zh-CN/part3.po
   doc/trunk/reference/zh-CN/part4.po
   doc/trunk/reference/zh-CN/part5.po
   doc/trunk/reference/zh-CN/producermethods.po
   doc/trunk/reference/zh-CN/ri-spi.po
   doc/trunk/reference/zh-CN/scopescontexts.po
   doc/trunk/reference/zh-CN/specialization.po
   doc/trunk/reference/zh-CN/stereotypes.po
   doc/trunk/reference/zh-CN/viewlayers.po
   doc/trunk/reference/zh-CN/xml.po
   doc/trunk/reference/zh-TW/Author_Group.po
   doc/trunk/reference/zh-TW/Book_Info.po
   doc/trunk/reference/zh-TW/decorators.po
   doc/trunk/reference/zh-TW/ee.po
   doc/trunk/reference/zh-TW/environments.po
   doc/trunk/reference/zh-TW/events.po
   doc/trunk/reference/zh-TW/example.po
   doc/trunk/reference/zh-TW/extend.po
   doc/trunk/reference/zh-TW/extensions.po
   doc/trunk/reference/zh-TW/gettingstarted.po
   doc/trunk/reference/zh-TW/injection.po
   doc/trunk/reference/zh-TW/interceptors.po
   doc/trunk/reference/zh-TW/intro.po
   doc/trunk/reference/zh-TW/master.po
   doc/trunk/reference/zh-TW/next.po
   doc/trunk/reference/zh-TW/part1.po
   doc/trunk/reference/zh-TW/part2.po
   doc/trunk/reference/zh-TW/part3.po
   doc/trunk/reference/zh-TW/part4.po
   doc/trunk/reference/zh-TW/part5.po
   doc/trunk/reference/zh-TW/producermethods.po
   doc/trunk/reference/zh-TW/ri-spi.po
   doc/trunk/reference/zh-TW/scopescontexts.po
   doc/trunk/reference/zh-TW/specialization.po
   doc/trunk/reference/zh-TW/stereotypes.po
   doc/trunk/reference/zh-TW/viewlayers.po
   doc/trunk/reference/zh-TW/xml.po
Log:
update po/pot

Modified: doc/trunk/reference/de-DE/Author_Group.po
===================================================================
--- doc/trunk/reference/de-DE/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 14:52+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,117 +16,120 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>JSR-299 Spezifikations-Lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299 Referenz Implementation)-Lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "Italienische Ãœbersetzung"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "Spanische Ãœbersetzung"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "Red Hat Middleware LLC"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "Koreanische Ãœbersetzung"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "Chinesische Ãœbersetzung (traditionell)"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, fuzzy, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, fuzzy, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "Chinesische Ãœbersetzung (traditionell)"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299 Spezifikations-Lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299 Referenz Implementation)-Lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "Red Hat Middleware LLC"

Modified: doc/trunk/reference/de-DE/Book_Info.po
===================================================================
--- doc/trunk/reference/de-DE/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 14:55+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -18,14 +18,18 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Java Kontexte und \"Dependency\"-Einspeisung"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr ""
-"Der neue Java Standard für \"Dependency\"-Einspeisung und kontextuelles Status-"
-"Management"
+"Der neue Java Standard für \"Dependency\"-Einspeisung und kontextuelles "
+"Status-Management"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Java Kontexte und \"Dependency\"-Einspeisung"

Added: doc/trunk/reference/de-DE/beans.po
===================================================================
--- doc/trunk/reference/de-DE/beans.po	                        (rev 0)
+++ doc/trunk/reference/de-DE/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language de-DE translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/de-DE/decorators.po
===================================================================
--- doc/trunk/reference/de-DE/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: decorators\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 09:30+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,56 +16,69 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "Dekoratoren"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
+#: decorators.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
 msgstr ""
 "Interzeptoren bieten eine leistungsfähige Weise, Probleme, die "
-"<emphasis>orthogonal</emphasis> zum Typensystem sind, festzuhalten und zu trennen. Jeder Interzeptor kann Aufrufe jedes Java Typs abfangen. Dies macht ihn perfekt für die Lösung technischer Probleme wie etwa Transaktionsmanagement und Sicherheit."
-"Jedoch sind Interzeptoren ihrem Wesen nach nicht der tatsächlichen Semantik der Ereignisse gewahr, die sie abfangen. Interzeptoren sind daher nicht die geeigneten Tools zur Separierung von unternehmensbezogenen Problemen."
+"<emphasis>orthogonal</emphasis> zum Typensystem sind, festzuhalten und zu "
+"trennen. Jeder Interzeptor kann Aufrufe jedes Java Typs abfangen. Dies macht "
+"ihn perfekt für die Lösung technischer Probleme wie etwa "
+"Transaktionsmanagement und Sicherheit.Jedoch sind Interzeptoren ihrem Wesen "
+"nach nicht der tatsächlichen Semantik der Ereignisse gewahr, die sie "
+"abfangen. Interzeptoren sind daher nicht die geeigneten Tools zur "
+"Separierung von unternehmensbezogenen Problemen."
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
+#: decorators.xml:15
+#, fuzzy, no-c-format
 msgid ""
 "The reverse is true of <emphasis>decorators</emphasis>. A decorator "
 "intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
 msgstr ""
-"Das Gegenteil gilt für <emphasis>Dekoratoren</emphasis>. Ein Dekorator fängt Aufrufe nur für ein bestimmtes Java-Interface ab und kennt daher die zu diesem Interface gehörende Semantik. "
-"Dadurch sind Dekoratoren das perfekte Tool zur Bearbeitung einige unternehmensbezogener Probleme. Es bedeutet auch, dass Dekoratoren nicht diesselbe Allgemeingültigkeit wie Interzeptoren besitzen. Dekoratoren können keine technischen Probleme lösen, die sich über viele disparate Typen verteilen."
+"Das Gegenteil gilt für <emphasis>Dekoratoren</emphasis>. Ein Dekorator fängt "
+"Aufrufe nur für ein bestimmtes Java-Interface ab und kennt daher die zu "
+"diesem Interface gehörende Semantik. Dadurch sind Dekoratoren das perfekte "
+"Tool zur Bearbeitung einige unternehmensbezogener Probleme. Es bedeutet "
+"auch, dass Dekoratoren nicht diesselbe Allgemeingültigkeit wie Interzeptoren "
+"besitzen. Dekoratoren können keine technischen Probleme lösen, die sich über "
+"viele disparate Typen verteilen."
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "Nehmen wir an, wir besitzen ein Konten repräsentierendes Interface:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -76,51 +89,70 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
+#: decorators.xml:28
+#, fuzzy, no-c-format
 msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
 msgstr ""
-"Mehrere verschiedene Web Beans in unserem System implementieren das <literal>Account</"
-"literal>-Interface. Es existiert allerdings eine gängige legale Voraussetzung die besagt, dass für jede Art von Konto, große Transaktionen vom System in einem besonderen Protokoll gespeichert werden müssen. Dies ist die perfekte Aufgabe für einen Dekorator."
+"Mehrere verschiedene Web Beans in unserem System implementieren das "
+"<literal>Account</literal>-Interface. Es existiert allerdings eine gängige "
+"legale Voraussetzung die besagt, dass für jede Art von Konto, große "
+"Transaktionen vom System in einem besonderen Protokoll gespeichert werden "
+"müssen. Dies ist die perfekte Aufgabe für einen Dekorator."
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
+#: decorators.xml:34
+#, fuzzy, no-c-format
 msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
-msgstr "Ein Dekorator ist ein einfaches Web Bean, das den Typ das es dekoriert implementiert und <literal>@Decorator</literal> annotiert ist."
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"Ein Dekorator ist ein einfaches Web Bean, das den Typ das es dekoriert "
+"implementiert und <literal>@Decorator</literal> annotiert ist."
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -148,147 +180,247 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
+#: decorators.xml:47
+#, fuzzy, no-c-format
 msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
-msgstr "Anders als andere einfache Web Beans, kann ein Dekorator eine abstrakte Klasse sein. Falls es nichts besonderes ist, dass der Dekorator für eine bestimmte Methode des dekorierten Interface tun muss, so brauchen Sie diese Methode nicht zu implementieren."
+msgstr ""
+"Anders als andere einfache Web Beans, kann ein Dekorator eine abstrakte "
+"Klasse sein. Falls es nichts besonderes ist, dass der Dekorator für eine "
+"bestimmte Methode des dekorierten Interface tun muss, so brauchen Sie diese "
+"Methode nicht zu implementieren."
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"Interzeptoren für eine Methode werden aufgerufen vor den Dekoratoren an "
+"dieser Methode angewendet werden."
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "\"Delegate\" Attribute"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
 msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
 msgstr ""
-"Alle Dekoratoren besitzen ein <emphasis>\"Delegate\" Attribut</emphasis>. Typ und "
-"Binding-Typen des \"Delegate\" Attribut bestimmen, an welche Web Beans der "
-"Dekorator gebunden wird. Der Typ des \"Delegate\" Attributs muss alle vom Dekorator implementierten Interfaces implementieren oder erweitern."
 
-#. Tag: para
-#: decorators.xml:50
+#. Tag: programlisting
+#: decorators.xml:65
 #, no-c-format
 msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
-msgstr "Dieses \"Delegate\" Attribut legt fest, dass der Dekorator an alle <literal>Account</literal> implementierenden Web Beans gebunden wird:"
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
+#. Tag: para
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
+msgstr "Ein Dekorator wird an ein beliebiges Web Bean gebunden, das:"
+
+#. Tag: para
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr "den Typ des \"Delegate\" Attributs als einen API-Typ hat und "
+
+#. Tag: para
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+"alle Binding-Typen besitzt die durch das \"Delegate\" Attribut deklariert "
+"werden."
+
+#. Tag: para
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"Dieses \"Delegate\" Attribut legt fest, dass der Dekorator an alle "
+"<literal>Account</literal> implementierenden Web Beans gebunden wird:"
+
 #. Tag: programlisting
-#: decorators.xml:53
-#, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
 msgstr "<![CDATA[@Decorates Account account;]]>"
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
+#: decorators.xml:85
+#, fuzzy, no-c-format
 msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
 msgstr ""
-"Ein \"Delegate\" Attribut kann eine Binding-Annotation festlegen. Dann wird der Dekorator "
-"nur an Web Beans mit demselben Binding gebunden."
+"Ein \"Delegate\" Attribut kann eine Binding-Annotation festlegen. Dann wird "
+"der Dekorator nur an Web Beans mit demselben Binding gebunden."
 
 #. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
 msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
 
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
-msgstr "Ein Dekorator wird an ein beliebiges Web Bean gebunden, das:"
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"Der Dekorator kann das \"Delegate\" Attribut aufrufen, was eine sehr "
+"ähnliche Wirkung wie der Aufruf von <literal>InvocationContext.proceed()</"
+"literal> von einem Interzeptor hat."
 
-#. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
-msgstr "den Typ des \"Delegate\" Attributs als einen API-Typ hat und "
-
-#. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
-msgstr "alle Binding-Typen besitzt die durch das \"Delegate\" Attribut deklariert werden."
-
-#. Tag: para
-#: decorators.xml:71
-#, no-c-format
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
-msgstr "Der Dekorator kann das \"Delegate\" Attribut aufrufen, was eine sehr ähnliche Wirkung wie der Aufruf von <literal>InvocationContext.proceed()</literal> von einem Interzeptor hat."
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "Aktivierung von Dekoratoren"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
 msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
 msgstr ""
-"Wir müssen unseren Dekorator in <literal>web-beans."
-"xml</literal> <emphasis>aktivieren</emphasis>."
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
+#: decorators.xml:113
+#, fuzzy, no-c-format
 msgid ""
 "This declaration serves the same purpose for decorators that the "
-"<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
 msgstr ""
-"Diese Deklaration dient demselben Zweck für Dekoratoren, den die"
-"<literal>&lt;Interceptors&gt;</literal>-Deklaration für Interzeptoren erfüllt:"
+"Diese Deklaration dient demselben Zweck für Dekoratoren, den die<literal>&lt;"
+"Interceptors&gt;</literal>-Deklaration für Interzeptoren erfüllt:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
 "ensuring deterministic behavior, and"
-msgstr "es ermöglicht uns eine gesamte Ordnung für alle Dekoratoren in unserem System festzulegen, wodurch deterministisches Verhalten gewährleistet wird und"
+msgstr ""
+"es ermöglicht uns eine gesamte Ordnung für alle Dekoratoren in unserem "
+"System festzulegen, wodurch deterministisches Verhalten gewährleistet wird "
+"und"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "es gestattet uns, Dekorator-Klassen zum Deplyment-Zeitpunkt zu aktivieren oder zu deaktivieren."
+msgstr ""
+"es gestattet uns, Dekorator-Klassen zum Deplyment-Zeitpunkt zu aktivieren "
+"oder zu deaktivieren."
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr "Interzeptoren für eine Methode werden aufgerufen vor den Dekoratoren an dieser Methode angewendet werden."
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "Alle Dekoratoren besitzen ein <emphasis>\"Delegate\" Attribut</emphasis>. "
+#~ "Typ und Binding-Typen des \"Delegate\" Attribut bestimmen, an welche Web "
+#~ "Beans der Dekorator gebunden wird. Der Typ des \"Delegate\" Attributs "
+#~ "muss alle vom Dekorator implementierten Interfaces implementieren oder "
+#~ "erweitern."
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "Wir müssen unseren Dekorator in <literal>web-beans.xml</literal> "
+#~ "<emphasis>aktivieren</emphasis>."

Added: doc/trunk/reference/de-DE/dependencies.po
===================================================================
--- doc/trunk/reference/de-DE/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/de-DE/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language de-DE translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/de-DE/ee.po
===================================================================
--- doc/trunk/reference/de-DE/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ee\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-09 20:55+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -23,47 +23,95 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
 msgstr ""
-"Web Beans sind voll in die Java EE Umgebung integriert. Web Beans besitzen Zugriff auf Java EE Resourcen und JPA Persistenzkontexte. Sie können in Unified EL Ausdrücken in JSF- und JSP-Seiten verwendet werden. Sie können sogar in einige Objekte eingespeist werden, etwa Servlets and Message-Driven Beans, die keine "
-"Web Beans sind."
+"Web Beans sind voll in die Java EE Umgebung integriert. Web Beans besitzen "
+"Zugriff auf Java EE Resourcen und JPA Persistenzkontexte. Sie können in "
+"Unified EL Ausdrücken in JSF- und JSP-Seiten verwendet werden. Sie können "
+"sogar in einige Objekte eingespeist werden, etwa Servlets and Message-Driven "
+"Beans, die keine Web Beans sind."
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Einspeisung von Java EE Ressourcen in ein Web Bean"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
 msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:22
+#, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
+msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Einspeisung von Java EE Ressourcen in ein Web Bean"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
 "examples of this, though we didn't pay much attention at the time:"
 msgstr ""
-"Alle einfachen wie auch Enterprise Web Beans können die Java EE \"Dependency\"-Einspeisung mittels <literal>@Resource</literal>, <literal>@EJB</literal> und "
-"<literal>@PersistenceContext</literal> verwenden. Wir haben bereits einige Beispiele hierfür gesehen, obwohl wir diesen zum damaligen Zeitpunkt nicht viel Beachtung geschenkt haben:"
+"Alle einfachen wie auch Enterprise Web Beans können die Java EE \"Dependency"
+"\"-Einspeisung mittels <literal>@Resource</literal>, <literal>@EJB</literal> "
+"und <literal>@PersistenceContext</literal> verwenden. Wir haben bereits "
+"einige Beispiele hierfür gesehen, obwohl wir diesen zum damaligen Zeitpunkt "
+"nicht viel Beachtung geschenkt haben:"
 
 #. Tag: programlisting
-#: ee.xml:19
-#, no-c-format
+#: ee.xml:56
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -77,17 +125,14 @@
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -101,70 +146,69 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
+#: ee.xml:60
+#, fuzzy, no-c-format
 msgid ""
 "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
 msgstr ""
 "Die Java EE <literal>@PostConstruct</literal> und <literal>@PreDestroy</"
-"literal> Callbacks werden ebenfalls für alle einfachen wie auch Enterprise Web "
-"Beans unterstützt. Die <literal>@PostConstruct</literal>-Methode wird nach Durchführung "
-"<emphasis>aller</emphasis> Einspeisungen aufgerufen."
+"literal> Callbacks werden ebenfalls für alle einfachen wie auch Enterprise "
+"Web Beans unterstützt. Die <literal>@PostConstruct</literal>-Methode wird "
+"nach Durchführung <emphasis>aller</emphasis> Einspeisungen aufgerufen."
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
 msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
 msgstr ""
-"Es gilt eine Einschränkung hier: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> wird nicht für einfache Web Beans unterstützt."
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Aufruf eines Web Bean von einem Servlet"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
+#: ee.xml:76
+#, fuzzy, no-c-format
 msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
 msgstr ""
-"In Java EE 6 ist die Verwendung eines Web Beans von einem Servlet ganz einfach. Speisen Sie einfach das "
-"Web Bean mittels Web Beans Field oder Initialisierungsmethodeneinspeisung (sog. \"Initializer Method Injection\") ein."
+"In Java EE 6 ist die Verwendung eines Web Beans von einem Servlet ganz "
+"einfach. Speisen Sie einfach das Web Bean mittels Web Beans Field oder "
+"Initialisierungsmethodeneinspeisung (sog. \"Initializer Method Injection\") "
+"ein."
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse "
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
 "response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -189,52 +233,54 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
+#: ee.xml:83
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
-msgstr "Der Web Beans Client Proxy kümmert sich um Aufrufe der Routing-Methode vom Servlet, um die Instanzen von <literal>Credentials</literal> und <literal>Login</literal> für die aktuelle Anfrage und HTTP-Session zu korrigieren."
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Der Web Beans Client Proxy kümmert sich um Aufrufe der Routing-Methode vom "
+"Servlet, um die Instanzen von <literal>Credentials</literal> und "
+"<literal>Login</literal> für die aktuelle Anfrage und HTTP-Session zu "
+"korrigieren."
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Aufruf eines Web Beans von einem Message-Driven Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
 msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
-msgstr "Einspeisung von Web Beans gilt für alle EJBs, selbst wenn sie nicht der Steuerung des Web Bean Manager s unterliegen (wenn sie etwa durch direkten JNDI-Lookup oder Einspeisung mittels <literal>@EJB</literal> erworben wurden). Insbesondere Web Beans Einspeisung in Message-Driven Beans, die nicht als Web Beans angesehen werden, da sie nicht eingespeist werden können."
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Sie können sogar Web Beans Interzeptor-Bindings für Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Sie können sogar Web Beans Interzeptor-Bindings für Message-Driven Beans."
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -249,31 +295,34 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
+#: ee.xml:103
+#, fuzzy, no-c-format
 msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
 msgstr ""
-"Daher ist der Empfang von Nachrichten in einer Web Beans Umgebung sehr einfach. Seien Sie sich aber dessen bewusst, dass bei Lieferung einer Nachricht an ein Message-Driven Bean keine Session oder Konversationskontext verfügbar ist. Es sind nur <literal>@RequestScoped</"
-"literal> und <literal>@ApplicationScoped</literal> Web Beans verfügbar."
+"Daher ist der Empfang von Nachrichten in einer Web Beans Umgebung sehr "
+"einfach. Seien Sie sich aber dessen bewusst, dass bei Lieferung einer "
+"Nachricht an ein Message-Driven Bean keine Session oder Konversationskontext "
+"verfügbar ist. Es sind nur <literal>@RequestScoped</literal> und "
+"<literal>@ApplicationScoped</literal> Web Beans verfügbar."
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "Es ist ebenfalls ganz einfach mittels Web Beans Nachrichten zu versenden."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "JMS Endpunkte"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
 msgid ""
 "Sending messages using JMS can be quite complex, because of the number of "
@@ -286,87 +335,96 @@
 "literal>. Each of these objects has its own lifecycle and threading model "
 "that we need to worry about."
 msgstr ""
-"Das Versenden von Nachrichten unter Verwendung von JMS kann aufgrund der Anzahl verschiedener Objekte mit denen Sie zu tun haben recht komplex sein. Für Warteschlangen haben wir <literal>Queue</"
-"literal>, <literal>QueueConnectionFactory</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> und "
-"<literal>QueueSender</literal>. Für Topics haben wir <literal>Topic</literal>, "
+"Das Versenden von Nachrichten unter Verwendung von JMS kann aufgrund der "
+"Anzahl verschiedener Objekte mit denen Sie zu tun haben recht komplex sein. "
+"Für Warteschlangen haben wir <literal>Queue</literal>, "
+"<literal>QueueConnectionFactory</literal>, <literal>QueueConnection</"
+"literal>, <literal>QueueSession</literal> und <literal>QueueSender</"
+"literal>. Für Topics haben wir <literal>Topic</literal>, "
 "<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
 "literal>, <literal>TopicSession</literal> und <literal>TopicPublisher</"
-"literal>. Jedes dieser Objekte besitzt einen eigenen Lebenszyklus und ein eigenes Threading-Modell, das unsere Aufmerksamkeit erfordert."
+"literal>. Jedes dieser Objekte besitzt einen eigenen Lebenszyklus und ein "
+"eigenes Threading-Modell, das unsere Aufmerksamkeit erfordert."
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
 msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
-msgstr "Web Beans übernehmen all das für uns. Das Einzige, was wir tun müssen ist unsere Warteschlange oder unser Topic in <literal>web-beans.xml</literal> zu deklarieren und einen assoziierten Binding-Typ und eine Connection-Factory festzulegen."
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
-msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
 msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
 msgstr ""
-"Jetzt können wir einfach <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> oder "
-"<literal>QueueSender</literal> für eine Warteschlange oder aber <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> oder "
-"<literal>TopicPublisher</literal> für ein Topic einspeisen."
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -377,64 +435,148 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
-msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-
 #. Tag: para
-#: ee.xml:100
-#, no-c-format
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
 "The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
-msgstr "Der Lebenszyklus der eingespeisten JMS-Objekte wird komplett durch den Web Bean Manager gesteuert."
+"container."
+msgstr ""
+"Der Lebenszyklus der eingespeisten JMS-Objekte wird komplett durch den Web "
+"Bean Manager gesteuert."
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "Packen und Deployment"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
+#: ee.xml:153
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
 msgstr ""
-"Web Beans definiert kein spezielles Deployment-Archiv. Sie können Web "
-"Beans in JARs, EJB-JARs oder WARs &#151; verpacken, jedem Deployment Speicherort im Klassenpfad der Anwendung. Allerdings muss jedes Web Beans enthaltene Archiv eine Datei namens <literal>web-beans.xml</literal> im <literal>META-"
-"INF</literal> oder <literal>WEB-INF</literal>-Verzeichnis enthalten. Die Datei kann leer sein. Web Beans die in Archiven deployt werden, die keine <literal>web-beans."
-"xml</literal>-Datei enthalten, sind nicht für die Verwendung in der Anwendung verfügbar."
+"Web Beans definiert kein spezielles Deployment-Archiv. Sie können Web Beans "
+"in JARs, EJB-JARs oder WARs &#151; verpacken, jedem Deployment Speicherort "
+"im Klassenpfad der Anwendung. Allerdings muss jedes Web Beans enthaltene "
+"Archiv eine Datei namens <literal>web-beans.xml</literal> im <literal>META-"
+"INF</literal> oder <literal>WEB-INF</literal>-Verzeichnis enthalten. Die "
+"Datei kann leer sein. Web Beans die in Archiven deployt werden, die keine "
+"<literal>web-beans.xml</literal>-Datei enthalten, sind nicht für die "
+"Verwendung in der Anwendung verfügbar."
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
+#: ee.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
 msgstr ""
-"Für die Java SE Ausführung können Web Beans an einem beliebigen Speicherort deployt werden, in welchem "
-"EJBs zur Ausführung durch den einbettbaren EJB Lite Container deployt werden können. "
-"Auch hier muss jeder Speicherort eine <literal>web-beans.xml</literal>-Datei enthalten."
+"Für die Java SE Ausführung können Web Beans an einem beliebigen Speicherort "
+"deployt werden, in welchem EJBs zur Ausführung durch den einbettbaren EJB "
+"Lite Container deployt werden können. Auch hier muss jeder Speicherort eine "
+"<literal>web-beans.xml</literal>-Datei enthalten."
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "Es gilt eine Einschränkung hier: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> wird nicht für einfache Web Beans unterstützt."
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Einspeisung von Web Beans gilt für alle EJBs, selbst wenn sie nicht der "
+#~ "Steuerung des Web Bean Manager s unterliegen (wenn sie etwa durch "
+#~ "direkten JNDI-Lookup oder Einspeisung mittels <literal>@EJB</literal> "
+#~ "erworben wurden). Insbesondere Web Beans Einspeisung in Message-Driven "
+#~ "Beans, die nicht als Web Beans angesehen werden, da sie nicht eingespeist "
+#~ "werden können."
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr ""
+#~ "Es ist ebenfalls ganz einfach mittels Web Beans Nachrichten zu versenden."
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Web Beans übernehmen all das für uns. Das Einzige, was wir tun müssen ist "
+#~ "unsere Warteschlange oder unser Topic in <literal>web-beans.xml</literal> "
+#~ "zu deklarieren und einen assoziierten Binding-Typ und eine Connection-"
+#~ "Factory festzulegen."
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "Jetzt können wir einfach <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> oder "
+#~ "<literal>QueueSender</literal> für eine Warteschlange oder aber "
+#~ "<literal>Topic</literal>, <literal>TopicConnection</literal>, "
+#~ "<literal>TopicSession</literal> oder <literal>TopicPublisher</literal> "
+#~ "für ein Topic einspeisen."
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/de-DE/environments.po
===================================================================
--- doc/trunk/reference/de-DE/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/de-DE/events.po
===================================================================
--- doc/trunk/reference/de-DE/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-13 08:17+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -25,101 +25,144 @@
 #: events.xml:6
 #, no-c-format
 msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
 msgstr ""
-"Die Web Beans Ereignisbenachrichtigungs-Facility gestattet es Web Beans auf eine völlig abgekoppelte "
-"Weise zu interagieren. Ereignis <emphasis>Producer</emphasis> bringen Ereignisse auf, die dann vom Web Bean Manager an Ereignis <emphasis>Observer</emphasis> geliefert werden. Dieses schlichte Schema klingt zwar etwas nach dem bekannten Observer/observierbar Muster, aber es gibt ein paar Ãœberraschungen:"
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
 msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:18
+#, no-c-format
+msgid ""
 "not only are event producers decoupled from observers; observers are "
 "completely decoupled from producers,"
-msgstr "nicht nur sind Ereignis-Producer von Observern abgekoppelt, Observer sind auch komplett von Producern abgekoppelt, "
+msgstr ""
+"nicht nur sind Ereignis-Producer von Observern abgekoppelt, Observer sind "
+"auch komplett von Producern abgekoppelt, "
 
 #. Tag: para
-#: events.xml:18
+#: events.xml:22
 #, no-c-format
 msgid ""
 "observers can specify a combination of \"selectors\" to narrow the set of "
 "event notifications they will receive, and"
-msgstr "Observer können eine Kombination von \"Selektoren\" festlegen, um den Satz von Ereignisbenachrichtigungen einzugrenzen, die sie erhalten und "
+msgstr ""
+"Observer können eine Kombination von \"Selektoren\" festlegen, um den Satz "
+"von Ereignisbenachrichtigungen einzugrenzen, die sie erhalten und "
 
 #. Tag: para
-#: events.xml:22
-#, no-c-format
+#: events.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
-msgstr "Observer können sofort benachrichtigt werden oder sie können festlegen, dass die Lieferung des Ereignisses bis zum Abschluss der aktuellen Transaktion verschoben wird "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"Observer können sofort benachrichtigt werden oder sie können festlegen, dass "
+"die Lieferung des Ereignisses bis zum Abschluss der aktuellen Transaktion "
+"verschoben wird "
 
-#. Tag: title
-#: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "Ereignis-Observer"
-
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
 msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
-msgstr "Eine <emphasis>Observer-Methode</emphasis> ist eine Methode eines Web Beans mit einem Parameter, der <literal>@Observes</literal> annotiert ist."
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "Ereignis-Producer"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
 msgstr ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
 msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
 msgstr ""
-"Der annotierte Parameter heißt <emphasis>Ereignisparameter</emphasis>. "
-"Der Typ des Ereignisparameter ist der beobachtete <emphasis>Ereignistyp</"
-"emphasis>. Observer-Methoden können auch \"Selektoren\" festlegen, die nur Instanzen von von Web Beans Binding-Typen sind. Wird ein Binding-Typ als Ereignis-Selektor verwendet, so wird dies als <emphasis>Ereignis Binding-Typ</emphasis>."
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
+#. Tag: title
+#: events.xml:57
+#, no-c-format
+msgid "Event observers"
+msgstr "Ereignis-Observer"
+
 #. Tag: para
-#: events.xml:43
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"Eine <emphasis>Observer-Methode</emphasis> ist eine Methode eines Web Beans "
+"mit einem Parameter, der <literal>@Observes</literal> annotiert ist."
+
+#. Tag: programlisting
+#: events.xml:64
 #, no-c-format
 msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
-msgstr "Wir legen die Ereignis-Bindings der Observer-Methode durch Annotation des Ereignisparameters fest:"
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
+#. Tag: para
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"Der annotierte Parameter heißt <emphasis>Ereignisparameter</emphasis>. Der "
+"Typ des Ereignisparameter ist der beobachtete <emphasis>Ereignistyp</"
+"emphasis>. Observer-Methoden können auch \"Selektoren\" festlegen, die nur "
+"Instanzen von von Web Beans Binding-Typen sind. Wird ein Binding-Typ als "
+"Ereignis-Selektor verwendet, so wird dies als <emphasis>Ereignis Binding-"
+"Typ</emphasis>."
+
 #. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:72 events.xml:240
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -129,25 +172,31 @@
 "document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:48
-#, no-c-format
+#: events.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"An observer method need not specify any event bindings &#151; in this case it "
-"is interested in <emphasis>all</emphasis> events of a particular type. If it "
-"does specify event bindings, it is only interested in events which also have "
-"those event bindings."
-msgstr "Eine Observer-Methode muss keine Ereignis-Bindings &#151; festlegen, in diesem Fall interessiert sie sich für <emphasis>alle</emphasis> Ereignisse eines bestimmten Typs. Legt sie Ereignis-Bindings fest, so interessiert sie sich nur für Ereignisse, die diese Ereignis-Bindings besitzen."
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"Eine Observer-Methode muss keine Ereignis-Bindings &#151; festlegen, in "
+"diesem Fall interessiert sie sich für <emphasis>alle</emphasis> Ereignisse "
+"eines bestimmten Typs. Legt sie Ereignis-Bindings fest, so interessiert sie "
+"sich nur für Ereignisse, die diese Ereignis-Bindings besitzen."
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
+#: events.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
-msgstr "Die Observer-Methode kann zusätzliche Parameter besitzen, die gemäß der üblichen Einspeisungssemantik Web Beans Methodenparameter eingespeist werden:"
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"Die Observer-Methode kann zusätzliche Parameter besitzen, die gemäß der "
+"üblichen Einspeisungssemantik Web Beans Methodenparameter eingespeist werden:"
 
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -157,231 +206,236 @@
 "document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "Ereignis-Producer"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
 msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
-msgstr "Der Ereignis-Producer kann ein <emphasis>Ereignisbenachrichtigungs</emphasis>-Objekt durch Einspeisung erhalten:"
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
+#: events.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
 msgstr ""
-"Die <literal>@Observable</literal>-Annotation definiert implizit ein Web Bean "
-"mit Geltungsbereich <literal>@Dependent</literal> und Deployment-Typ "
-"<literal>@Standard</literal> mit einer durch den Web Bean Manager bereitgestellten Implementierung."
+"Ein Producer bringt durch Aufruf der <literal>fire()</literal>-Methode des "
+"<literal>Event</literal>-Interface Ereignisse auf, wobei ein "
+"<emphasis>Ereignisobjekt</emphasis> weitergegeben wird:"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid ""
-"A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
-msgstr "Ein Producer bringt durch Aufruf der <literal>fire()</literal>-Methode des <literal>Event</literal>-Interface Ereignisse auf, wobei ein <emphasis>Ereignisobjekt</emphasis> weitergegeben wird:"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "Das Ereignis wird an jede Observer-Methode geliefert, die:"
+
+#. Tag: para
+#: events.xml:111
+#, fuzzy, no-c-format
 msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
-msgstr "Ein Ereignis-Objekt kann eine Instanz einer beliebigen Java-Klasse sein, die keine Typ-Variablen oder Platzhalter-Typenparameter besitzt. Das Ereignis wird an jede Observer-Methode geliefert, die:"
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
+msgstr ""
+"einen Ereignisparameter besitzt, dem das Ereignisobjekt zugeschrieben werden "
+"kann und "
 
 #. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
-msgstr "einen Ereignisparameter besitzt, dem das Ereignisobjekt zugeschrieben werden kann und "
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
+msgstr "keine Ereignis-Bindings festlegt."
 
 #. Tag: para
-#: events.xml:86
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Der Web Bean Manager ruft einfach alle Observer-Methoden auf und gibt das "
+"Ereignis-Objekt als den Wert des Ereignisparameters weiter. Meldet eine "
+"Observer-Methode eine Ausnahme, so stoppt der Web Bean Manager den Aufruf "
+"von Observer-Methoden und die Ausnahme wird durch die <literal>fire()</"
+"literal>-Methode erneut gemeldet."
+
+#. Tag: para
+#: events.xml:125
 #, no-c-format
-msgid "specifies no event bindings."
-msgstr "keine Ereignis-Bindings festlegt."
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: events.xml:90
+#: events.xml:131
 #, no-c-format
-msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Der Web Bean Manager ruft einfach alle Observer-Methoden auf und gibt das Ereignis-Objekt als den Wert des Ereignisparameters weiter. Meldet eine Observer-Methode eine Ausnahme, so stoppt der Web Bean Manager den Aufruf von Observer-Methoden und die Ausnahme wird durch die <literal>fire()</literal>-Methode erneut gemeldet."
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:134
 #, no-c-format
 msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
-msgstr "Um einen \"Selektor\" festzulegen kann der Ereignis-Producer eine Instanz des Ereignis-Binding-Typs an die <literal>fire()</literal>-Methode weitergeben:"
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:138
 #, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
 msgstr ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:100
-#, no-c-format
+#: events.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
-msgstr "Die Helferklasse <literal>AnnotationLiteral</literal> ermöglicht die Instanziierung der Binding-Typen inline, da es andernfalls schwierig ist, die in Java zu tun."
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"Dann besitzt jedes über diese Instanz abgegebene Ereignis das "
+"<literal>Event</literal> annotierte Ereignis-Binding. Das Ereignis wird an "
+"jede Observer-Methode geliefert, die: "
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:151
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "Das Ereignis wird an jede Observer-Methode geliefert, die:"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr ""
+"einen Ereignisparameter besitzt, dem das Ereignisobjekt zugeschrieben werden "
+"kann und "
 
 #. Tag: para
-#: events.xml:110
-#, no-c-format
+#: events.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
 msgstr ""
 "kein Ereignis-Binding festlegt <emphasis>außer</emphasis> für die an "
 "<literal>fire()</literal> weitergegebenen Ereignis-Bindings."
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:161
 #, no-c-format
 msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
-msgstr "Alternativ können Ereignis-Bindings durch Festlegen des Einspeisungspunkts der Ereignisbenachrichtigung festgelegt werden:"
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-
-#. Tag: para
-#: events.xml:120
-#, no-c-format
+#: events.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
-msgstr "Dann besitzt jedes über diese Instanz abgegebene Ereignis das <literal>Event</literal> annotierte Ereignis-Binding. Das Ereignis wird an jede Observer-Methode geliefert, die: "
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
 
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
-msgstr "Kein Ereignis-Binding festlegt <emphasis>außer</emphasis> für die an <literal>fire()</literal> oder die annotierten Ereignis-Bindings des Einspeisungspunkts für Ereignisbenachrichtigungen weitergegebenen."
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
-#, no-c-format
-msgid "Registering observers dynamically"
-msgstr "Dynamische Registrierung von Observern"
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "Transaktionale Observer"
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:180
 #, no-c-format
 msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
-msgstr "Es ist oft hilfreich, einen Ereignis-Observer dynamisch zu registrieren. Die Anwendung kann das <literal>Observer</literal>-Interface implementieren und eine Instanz mit einer Ereignisbenachrichtigung registrieren, indem die <literal>observe()</literal>-Methode aufgerufen wird."
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:144
+#. Tag: para
+#: events.xml:186
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
 
-#. Tag: para
-#: events.xml:146
-#, no-c-format
+#. Tag: programlisting
+#: events.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
 msgstr ""
-"Typen von Ereignis-Bindings können durch den Einspeisungspunkt für Ereignisbenachrichtigungen oder Weitergabe von Instanzen von Typen von Ereignis-Bindings an die <literal>observe()</"
-"literal>-Methode festgelegt werden:"
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
-#. Tag: programlisting
-#: events.xml:149
+#. Tag: para
+#: events.xml:193
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "Ereignis-Bindings mit Mitgliedern"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "Ein Ereignis-Binding-Typ kann Annotationsmitglieder besitzen:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -392,13 +446,16 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "Der Mitgliederwert dient der Eingrenzung von an den Observer gelieferten Nachrichten: "
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"Der Mitgliederwert dient der Eingrenzung von an den Observer gelieferten "
+"Nachrichten: "
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
 msgid ""
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
@@ -408,78 +465,87 @@
 "{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
+#: events.xml:210
+#, fuzzy, no-c-format
 msgid ""
-"Event binding type members may be specified statically by the event "
+"Event qualifier type members may be specified statically by the event "
 "producer, via annotations at the event notifier injection point:"
-msgstr "Typenmitglieder von Ereignis-Bindings können durch den Ereignis-Producer statisch festgelegt werden - dies erfolgt über Annotationen am Einspeisungspunkt der Ereignisbenachrichtigungen:"
+msgstr ""
+"Typenmitglieder von Ereignis-Bindings können durch den Ereignis-Producer "
+"statisch festgelegt werden - dies erfolgt über Annotationen am "
+"Einspeisungspunkt der Ereignisbenachrichtigungen:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
+#: events.xml:217
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
-msgstr "Alternativ kann der Wert des Typenmitglieds des Ereignis-Bindings dynamisch durch den Ereignis-Producer bestimmt werden. Wir beginnen durch Schreiben einer abstrakten Unterklasse von <literal>AnnotationLiteral</literal>:"
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"Alternativ kann der Wert des Typenmitglieds des Ereignis-Bindings dynamisch "
+"durch den Ereignis-Producer bestimmt werden. Wir beginnen durch Schreiben "
+"einer abstrakten Unterklasse von <literal>AnnotationLiteral</literal>:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
+#: events.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
+"The event producer passes an instance of this class to <literal>select()</"
 "literal>:"
-msgstr "Der Ereignis-Producer gibt eine Instanz dieser Klasse an <literal>fire()</literal> weiter:"
+msgstr ""
+"Der Ereignis-Producer gibt eine Instanz dieser Klasse an <literal>fire()</"
+"literal> weiter:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
+#: events.xml:226
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
 msgstr ""
 "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
 "() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "Multiple Ereignis-Bindings"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "Typen von Ereignis-Bindings können kombiniert werden, zum Beispiel:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
@@ -487,15 +553,17 @@
 "AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
 msgid ""
 "When this event occurs, all of the following observer methods will be "
 "notified:"
-msgstr "Findet dieses Ereignis statt, so werden alle folgenden Observer-Methoden benachrichtigt:"
+msgstr ""
+"Findet dieses Ereignis statt, so werden alle folgenden Observer-Methoden "
+"benachrichtigt:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
@@ -505,7 +573,7 @@
 "document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
@@ -515,7 +583,7 @@
 "{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
@@ -525,13 +593,13 @@
 "{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "Transaktionale Observer"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
 msgid ""
 "Transactional observers receive their event notifications during the before "
@@ -539,95 +607,121 @@
 "For example, the following observer method needs to refresh a query result "
 "set that is cached in the application context, but only when transactions "
 "that update the <literal>Category</literal> tree succeed:"
-msgstr "Transaktionale Observers erhalten ihre Ereignisbenachrichtigungen vor oder nach der Abschlussphase der Transaktion während derer das Ereignis aufgegekommen ist. Zum Beispiel muss die folgende Observer-Methode einen Satz von Abfrageergebnissen neu laden, der im Applikationskontext gecacht ist, jedoch nur dann, wenn die den  <literal>Category</literal>-Baum aktualisierenden Transaktionen erfolgreich sind: "
+msgstr ""
+"Transaktionale Observers erhalten ihre Ereignisbenachrichtigungen vor oder "
+"nach der Abschlussphase der Transaktion während derer das Ereignis "
+"aufgegekommen ist. Zum Beispiel muss die folgende Observer-Methode einen "
+"Satz von Abfrageergebnissen neu laden, der im Applikationskontext gecacht "
+"ist, jedoch nur dann, wenn die den  <literal>Category</literal>-Baum "
+"aktualisierenden Transaktionen erfolgreich sind: "
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
+#: events.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
 "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
 "CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "Es gibt drei Arten von transaktionalen Observern:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
-msgstr "<literal>@AfterTransactionSuccess</literal>-Observers werden während der Abschlussphase der Transaktion aufgerufen, jedoch nur bei erfolgreichem Abschluss der Transaktion"
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
+#: events.xml:265
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
-msgstr "<literal>@AfterTransactionFailure</literal>-Observer werden während der Abschlussphase der Transaktion aufgerufen, jedoch nur, wenn der erfolgreiche Abschluss der Transaktion fehlschlägt"
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"<literal>@AfterTransactionSuccess</literal>-Observers werden während der "
+"Abschlussphase der Transaktion aufgerufen, jedoch nur bei erfolgreichem "
+"Abschluss der Transaktion"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
+#: events.xml:271
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
-msgstr "<literal>@AfterTransactionCompletion</literal>-Observer werden während der Nach-Abschlussphase der Transaktion aufgerufen "
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"<literal>@AfterTransactionFailure</literal>-Observer werden während der "
+"Abschlussphase der Transaktion aufgerufen, jedoch nur, wenn der erfolgreiche "
+"Abschluss der Transaktion fehlschlägt"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
+#: events.xml:277
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
-msgstr "<literal>@BeforeTransactionCompletion</literal>-Observer werden während der Vor-Abschlussphase der Transaktion aufgerufen"
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@AfterTransactionCompletion</literal>-Observer werden während der "
+"Nach-Abschlussphase der Transaktion aufgerufen "
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
+#: events.xml:283
+#, fuzzy, no-c-format
 msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
 msgstr ""
-"Transaktional Observer sind in einem \"stateful\" Objektmodell wie "
-"Web Beans sehr wichtig, da der Status oft länger bestehen bleibt als eine einzelne atomare Transaktion."
+"<literal>@BeforeTransactionCompletion</literal>-Observer werden während der "
+"Vor-Abschlussphase der Transaktion aufgerufen"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"Transaktional Observer sind in einem \"stateful\" Objektmodell wie Web Beans "
+"sehr wichtig, da der Status oft länger bestehen bleibt als eine einzelne "
+"atomare Transaktion."
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "Stellen wir uns vor, wir besitzen einen gecachten Satz von JPA-Abfrageergebnissen im Geltungsbereich der Anwendung:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"Stellen wir uns vor, wir besitzen einen gecachten Satz von JPA-"
+"Abfrageergebnissen im Geltungsbereich der Anwendung:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -651,45 +745,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
 msgid ""
 "From time to time, a <literal>Product</literal> is created or deleted. When "
 "this occurs, we need to refresh the <literal>Product</literal> catalog. But "
 "we should wait until <emphasis>after</emphasis> the transaction completes "
 "successfully before performing this refresh!"
-msgstr "Von Zeit zu Zeit wird ein <literal>Product</literal> erstellt oder gelöscht. Ist dies der Fall, so müssen wir den <literal>Product</literal>-Katalog neu laden. Wir sollten damit aber bis <emphasis>nach</emphasis> dem erfolgreichen Abschluss der Transaktion warten!"
+msgstr ""
+"Von Zeit zu Zeit wird ein <literal>Product</literal> erstellt oder gelöscht. "
+"Ist dies der Fall, so müssen wir den <literal>Product</literal>-Katalog neu "
+"laden. Wir sollten damit aber bis <emphasis>nach</emphasis> dem "
+"erfolgreichen Abschluss der Transaktion warten!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
+#: events.xml:305
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
-msgstr "Das Web Bean, das <literal>Product</literal>s erstellt oder löscht könnte Ereignisse aufrufen, zum Beispiel:"
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"Das Web Bean, das <literal>Product</literal>s erstellt oder löscht könnte "
+"Ereignisse aufrufen, zum Beispiel:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -713,32 +812,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
 msgid ""
 "And now <literal>Catalog</literal> can observe the events after successful "
 "completion of the transaction:"
-msgstr "Und jetzt kann <literal>Catalog</literal> die Ereignisse nach erfolgreichem Abschluss der Transaktion beobachten:"
+msgstr ""
+"Und jetzt kann <literal>Catalog</literal> die Ereignisse nach erfolgreichem "
+"Abschluss der Transaktion beobachten:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
 "product) {\n"
-"        products.add(product);\n"
-"    }\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
 "product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -758,3 +856,126 @@
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Die Web Beans Ereignisbenachrichtigungs-Facility gestattet es Web Beans "
+#~ "auf eine völlig abgekoppelte Weise zu interagieren. Ereignis "
+#~ "<emphasis>Producer</emphasis> bringen Ereignisse auf, die dann vom Web "
+#~ "Bean Manager an Ereignis <emphasis>Observer</emphasis> geliefert werden. "
+#~ "Dieses schlichte Schema klingt zwar etwas nach dem bekannten Observer/"
+#~ "observierbar Muster, aber es gibt ein paar Ãœberraschungen:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "Wir legen die Ereignis-Bindings der Observer-Methode durch Annotation des "
+#~ "Ereignisparameters fest:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "Der Ereignis-Producer kann ein <emphasis>Ereignisbenachrichtigungs</"
+#~ "emphasis>-Objekt durch Einspeisung erhalten:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "Die <literal>@Observable</literal>-Annotation definiert implizit ein Web "
+#~ "Bean mit Geltungsbereich <literal>@Dependent</literal> und Deployment-Typ "
+#~ "<literal>@Standard</literal> mit einer durch den Web Bean Manager "
+#~ "bereitgestellten Implementierung."
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Ein Ereignis-Objekt kann eine Instanz einer beliebigen Java-Klasse sein, "
+#~ "die keine Typ-Variablen oder Platzhalter-Typenparameter besitzt. Das "
+#~ "Ereignis wird an jede Observer-Methode geliefert, die:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "Um einen \"Selektor\" festzulegen kann der Ereignis-Producer eine Instanz "
+#~ "des Ereignis-Binding-Typs an die <literal>fire()</literal>-Methode "
+#~ "weitergeben:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "Die Helferklasse <literal>AnnotationLiteral</literal> ermöglicht die "
+#~ "Instanziierung der Binding-Typen inline, da es andernfalls schwierig ist, "
+#~ "die in Java zu tun."
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "Alternativ können Ereignis-Bindings durch Festlegen des "
+#~ "Einspeisungspunkts der Ereignisbenachrichtigung festgelegt werden:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "Kein Ereignis-Binding festlegt <emphasis>außer</emphasis> für die an "
+#~ "<literal>fire()</literal> oder die annotierten Ereignis-Bindings des "
+#~ "Einspeisungspunkts für Ereignisbenachrichtigungen weitergegebenen."
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "Dynamische Registrierung von Observern"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "Es ist oft hilfreich, einen Ereignis-Observer dynamisch zu registrieren. "
+#~ "Die Anwendung kann das <literal>Observer</literal>-Interface "
+#~ "implementieren und eine Instanz mit einer Ereignisbenachrichtigung "
+#~ "registrieren, indem die <literal>observe()</literal>-Methode aufgerufen "
+#~ "wird."
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "Typen von Ereignis-Bindings können durch den Einspeisungspunkt für "
+#~ "Ereignisbenachrichtigungen oder Weitergabe von Instanzen von Typen von "
+#~ "Ereignis-Bindings an die <literal>observe()</literal>-Methode festgelegt "
+#~ "werden:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/de-DE/example.po
===================================================================
--- doc/trunk/reference/de-DE/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: example\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-28 07:53+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -23,23 +23,23 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Let's illustrate these ideas with a full example. We're going to implement "
 "user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
+"request-scoped bean to hold the username and password entered during login:"
 msgstr ""
-"Illustrieren wir diese Ideen an einem vollständigen Beispiel. Wir werden einen Benutzer "
-"Login/Logout für eine JSF verwendende Anwendung implementieren. Zunächst definieren wir ein "
-"Web Bean das den während des Logins eingegebenen Benutzernamen und das Passwort verwahrt:"
+"Illustrieren wir diese Ideen an einem vollständigen Beispiel. Wir werden "
+"einen Benutzer Login/Logout für eine JSF verwendende Anwendung "
+"implementieren. Zunächst definieren wir ein Web Bean das den während des "
+"Logins eingegebenen Benutzernamen und das Passwort verwahrt:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -48,7 +48,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -67,24 +66,25 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Dieses Web Bean ist an den Login-Prompt in folgendem JSF-Formular gebunden:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"Dieses Web Bean ist an den Login-Prompt in folgendem JSF-Formular gebunden:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
 "login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
@@ -103,53 +103,55 @@
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
 msgstr ""
-"Die eigentliche Arbeit wird durch ein Session-begrenztes Web Bean übernommen, dass Informationen zum aktuell eingeloggten Benutzer verwahrt und anderen Web Beans die "
-"<literal>User</literal>-Entity offenlegt:"
+"Die eigentliche Arbeit wird durch ein Session-begrenztes Web Bean "
+"übernommen, dass Informationen zum aktuell eingeloggten Benutzer verwahrt "
+"und anderen Web Beans die <literal>User</literal>-Entity offenlegt:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -191,19 +193,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "Natürlich handelt es sich bei <literal>@LoggedIn</literal> um eine \"Binding\"-Annotation:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -211,26 +229,45 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "Jetzt kann jedes andere Web Bean den aktuellen Benutzer auf leichte Weise einspeisen:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"Jetzt kann jedes andere Web Bean den aktuellen Benutzer auf leichte Weise "
+"einspeisen:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -247,11 +284,32 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
 msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
-msgstr "Wir hoffen, dass Ihnen dieses Beispiel einen Vorgeschmack auf das Web Bean Programmiermodell gegeben hat. Im nächsten Kapitel sehen wir uns die Web Beans Dependency-Einspeisung näher an."
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
 
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"Wir hoffen, dass Ihnen dieses Beispiel einen Vorgeschmack auf das Web Bean "
+"Programmiermodell gegeben hat. Im nächsten Kapitel sehen wir uns die Web "
+"Beans Dependency-Einspeisung näher an."
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr ""
+#~ "Natürlich handelt es sich bei <literal>@LoggedIn</literal> um eine "
+#~ "\"Binding\"-Annotation:"

Modified: doc/trunk/reference/de-DE/extend.po
===================================================================
--- doc/trunk/reference/de-DE/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: extend\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-14 06:59+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,318 +16,294 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Erweiterung von Web Beans"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
+#: extend.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
-msgstr "Web Beans sind als Plattform für Frameworks, Erweiterungen und Integration mit anderer Technologie vorgesehen. Web Beans bieten daher einen Satz von SPIs für den Gebrauch durch Entwickler übertragbarer Erweiterungen zu Web Beans. Die folgenden Arten von Erweiterungen zum Beispiel wurden von den Designern von Web Beans vorgesehen:"
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beans sind als Plattform für Frameworks, Erweiterungen und Integration "
+"mit anderer Technologie vorgesehen. Web Beans bieten daher einen Satz von "
+"SPIs für den Gebrauch durch Entwickler übertragbarer Erweiterungen zu Web "
+"Beans. Die folgenden Arten von Erweiterungen zum Beispiel wurden von den "
+"Designern von Web Beans vorgesehen:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "Integration mit Business Process Management Engines,"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
 msgid ""
 "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
 "and"
-msgstr "Integration mit den Frameworks Dritter, wie etwa Spring, Seam, GWT oder Wicket und"
+msgstr ""
+"Integration mit den Frameworks Dritter, wie etwa Spring, Seam, GWT oder "
+"Wicket und"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "neue, auf dem Web Beans Programmiermodell basierende Technologie."
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
 msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
 "object."
-msgstr "Der zentrale Kern zur Erweiterung von Web Beans ist das <literal>Manager</literal>-Objekt."
+msgstr ""
+"Der zentrale Kern zur Erweiterung von Web Beans ist das <literal>Manager</"
+"literal>-Objekt."
 
 #. Tag: title
-#: extend.xml:29
-#, no-c-format
-msgid "The <literal>Manager</literal> object"
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
 msgstr "Das <literal>Manager</literal>-Objekt"
 
 #. Tag: para
-#: extend.xml:31
-#, no-c-format
+#: extend.xml:64
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
 msgstr ""
-"Das <literal>Manager</literal>-Interface die programmatische Registrierung und den Erhalt von Web "
-"Beans, Interzeptoren, Dekoratoren, Observern und Kontexten."
+"Das <literal>Manager</literal>-Interface die programmatische Registrierung "
+"und den Erhalt von Web Beans, Interzeptoren, Dekoratoren, Observern und "
+"Kontexten."
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "Wir können eine Instanz von <literal>Manager</literal> via Einspeisung erhalten:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"Wir können eine Instanz von <literal>Manager</literal> via Einspeisung "
+"erhalten:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager Manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "Die <literal>Bean</literal>-Klasse"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
+#: extend.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
 msgstr ""
-"Instanzen der abstrakten Klasse <literal>Bean</literal> repräsentieren Web Beans. "
-"Für jedes Web Bean in der Anwendung wird eine Instanz von <literal>Bean</literal> mit dem "
-"<literal>Manager</literal>-Objekt registriert."
+"Der zentrale Kern zur Erweiterung von Web Beans ist das <literal>Manager</"
+"literal>-Objekt."
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "Das <literal>Context</literal>-Interface"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"Instanzen der abstrakten Klasse <literal>Bean</literal> repräsentieren Web "
+"Beans. Für jedes Web Bean in der Anwendung wird eine Instanz von "
+"<literal>Bean</literal> mit dem <literal>Manager</literal>-Objekt "
+"registriert."
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
+#: extend.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
-msgstr "Es ist möglich, die <literal>Bean</literal>-Klasse zu erweitern und Instanzen durch Aufruf von <literal>Manager.addBean()</literal> zu registrieren, um Support für neue Arten von Web Beans zu bieten, neben denen, die durch die Web Beans Spezifikation definiert sind (einfache und Enterprise Web Beans, Producer Methoden und JMS Endpunkte). Zum Beispiel könnten wir die <literal>Bean</literal>-Klasse verwenden, um zu ermöglichen, dass durch ein anderes Framework gemanagte Objekte in Web Beans eingespeist werden."
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"Es ist möglich, die <literal>Bean</literal>-Klasse zu erweitern und "
+"Instanzen durch Aufruf von <literal>Manager.addBean()</literal> zu "
+"registrieren, um Support für neue Arten von Web Beans zu bieten, neben "
+"denen, die durch die Web Beans Spezifikation definiert sind (einfache und "
+"Enterprise Web Beans, Producer Methoden und JMS Endpunkte). Zum Beispiel "
+"könnten wir die <literal>Bean</literal>-Klasse verwenden, um zu ermöglichen, "
+"dass durch ein anderes Framework gemanagte Objekte in Web Beans eingespeist "
+"werden."
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
+#: extend.xml:104
+#, fuzzy, no-c-format
 msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
 "specification: <literal>Interceptor</literal> and <literal>Decorator</"
 "literal>."
-msgstr "Durch die Web Beans Spezifikation werden zwei Unterklassen von <literal>Bean</literal> definiert: <literal>Interceptor</literal> und <literal>Decorator</literal>."
+msgstr ""
+"Durch die Web Beans Spezifikation werden zwei Unterklassen von "
+"<literal>Bean</literal> definiert: <literal>Interceptor</literal> und "
+"<literal>Decorator</literal>."
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "Das <literal>Context</literal>-Interface"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
+#: extend.xml:114
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
-msgstr "Das <literal>Context</literal>-Interface unterstützt die Hinzufügung neuer Geltungsbereiche zu Web Beans oder die Erweiterung eingebauter Geltungsbereiche zu neuen Umgebungen."
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"Das <literal>Context</literal>-Interface unterstützt die Hinzufügung neuer "
+"Geltungsbereiche zu Web Beans oder die Erweiterung eingebauter "
+"Geltungsbereiche zu neuen Umgebungen."
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -340,11 +316,194 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
+#: extend.xml:121
+#, fuzzy, no-c-format
 msgid ""
 "For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
-msgstr "Wir könnten zum Beispiel <literal>Context</literal> implementieren, um den Geltungsbereich eines Business Prozesses zu Web Beans oder Support für den Konversationsgeltungsbereich einer Wickets verwendenen Anwendung hinzuzufügen."
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"Wir könnten zum Beispiel <literal>Context</literal> implementieren, um den "
+"Geltungsbereich eines Business Prozesses zu Web Beans oder Support für den "
+"Konversationsgeltungsbereich einer Wickets verwendenen Anwendung "
+"hinzuzufügen."
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Erweiterung von Web Beans"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "Die <literal>Bean</literal>-Klasse"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/de-DE/extensions.po
===================================================================
--- doc/trunk/reference/de-DE/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/de-DE/gettingstarted.po
===================================================================
--- doc/trunk/reference/de-DE/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ri\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-27 15:36+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,2247 +16,2176 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
-#, fuzzy, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "Die Web Beans Referenzimplementierung"
+#: gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Weld"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
-#, fuzzy, no-c-format
+#: gettingstarted.xml:7
+#, no-c-format
 msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
-"Die Web Beans Referenzimplementierung wird unter <ulink url=\"http://"
-"seamframework.org/WebBeans\">das Seam Projekt</ulink> entwickelt. Sie können "
-"die aktuellste Entwickler-Release von Web Beans von der <ulink url=\"http://"
-"seamframework.org/Download\">Downloads Seite</ulink> herunterladen."
 
 #. Tag: para
-#: gettingstarted.xml:13
-#, fuzzy, no-c-format
+#: gettingstarted.xml:16
+#, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
-"Die Web Beans RI kommt mit zwei deploybaren Beispielanwendungen: "
-"<literal>webbeans-numberguess</literal>, ein war-Beispiel, das nur einfache "
-"Beans enthält und <literal>webbeans-translator</literal>, ein ear-Beispiel, "
-"dasEnterprise Beans enthält. Um Beispiele auszuführen benötigen Sie "
-"folgendes:"
 
+#. Tag: title
+#: gettingstarted.xml:22
+#, no-c-format
+msgid "Prerequisites"
+msgstr ""
+
 #. Tag: para
-#: gettingstarted.xml:25
-#, fuzzy, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "die aktuellste Release der Web Beans RI,"
+#: gettingstarted.xml:24
+#, no-c-format
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:30
 #, fuzzy, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.0.GA und"
+msgid "the latest release of Weld, which contains the examples"
+msgstr "die aktuellste Release der Web Beans RI,"
 
 #. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:34
+#: gettingstarted.xml:36
 #, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0."
+msgid "a supported runtime environment (minimum versions shown)"
+msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: gettingstarted.xml:39
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid ""
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
-#, fuzzy, no-c-format
-msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+#: gettingstarted.xml:42
+#, no-c-format
+msgid "GlassFish 3.0,"
 msgstr ""
-"Momentan läuft die Web Beans RI nur auf JBoss Application Server 5. Sie "
-"werden JBoss AS 5.0.0.GA unter <ulink url=\"http://www.jboss.org/jbossas/"
-"downloads/\">jboss.org</ulink> herunterladen und es unzippen müssen. Zum "
-"Beispiel:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#. Tag: para
+#: gettingstarted.xml:45
+#, no-c-format
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
-#, fuzzy, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+#: gettingstarted.xml:48
+#, no-c-format
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"Anschließend laden Sie die Web Beans RI unter <ulink url=\"http://"
-"seamframework.org/Download\">seamframework.org</ulink> herunter und "
-"entzippen diese. Zum Beispiel "
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
+#. Tag: para
+#: gettingstarted.xml:53
 #, no-c-format
 msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
 
 #. Tag: para
 #: gettingstarted.xml:58
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
-"Als nächstes müssen wir Web Beans mitteilen, wo JBoss sich befindet. "
-"Editieren Sie <literal>jboss-as/build.properties</literal> und setzen Sie "
-"die <literal>jboss.home</literal>-Property. Zum Beispiel:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, fuzzy, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
-#, fuzzy, no-c-format
+#: gettingstarted.xml:64
+#, no-c-format
 msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
-"Um das Update zu installieren, muss Ant 1.7.0 installiert und die "
-"<literal>ANT_HOME</literal> Umgebungsvariable gesetzt sein. Zum Beispiel:"
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:76
 #, no-c-format
 msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
-#. Tag: para
-#: gettingstarted.xml:80
-#, fuzzy, no-c-format
-msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
-msgstr ""
-"Dann können Sie das Update installieren. Das Update-Skript verwendet Maven, "
-"um die Web Beans und EJB3 automatisch herunterzuladen."
-
-#. Tag: programlisting
-#: gettingstarted.xml:85
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+msgid "Deploying to JBoss AS"
 msgstr ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
 
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:83
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "Jetzt können Sie Ihr erstes Beispiel deployen!"
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, fuzzy, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
 msgstr ""
-"Die Build-Skripte für die Beispiele bieten zahlreiche Ziele, diese sind:"
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
 msgstr ""
-"<literal>ant restart</literal> - Deployment des Beispiels in ausgeklapptem "
-"Format"
 
-#. Tag: para
-#: gettingstarted.xml:104
+#. Tag: programlisting
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"<literal>ant explode</literal> - Aktualisierung eines ausgeklappten "
-"Beispiels ohne Neustart des Deployments"
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:101
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
-"<literal>ant deploy</literal> - Deployment des Beispiels in komprimiertem "
-"jar-Format"
 
-#. Tag: para
-#: gettingstarted.xml:115
-#, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - das Beispiel vom Server entfernen"
+#. Tag: programlisting
+#: gettingstarted.xml:108
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
-#: gettingstarted.xml:120
-#, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - Das Beispiel bereinigen"
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "Jetzt können Sie Ihr erstes Beispiel deployen!"
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:114
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "Um das numberguess Beispiel zu deployen:"
+msgid ""
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:131
-#, no-c-format
+#: gettingstarted.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/numberguess\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:121
 #, no-c-format
-msgid "Start JBoss AS:"
-msgstr "JBoss AS starten:"
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:125
 #, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-
-#. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
+msgid ""
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
-"Falls Sie Windows verwenden, verwenden Sie das <literal>run.bat</literal>-"
-"Skript."
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+msgid "a Windows command window:"
 msgstr ""
-"Deployen Sie die Anwendung und genießen Sie stundenlangen Spaß unter <ulink "
-"url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
 
-#. Tag: para
-#: gettingstarted.xml:150
-#, fuzzy, no-c-format
-msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
-msgstr ""
-"Die Web Beans RI enthält ein zweites einfaches Beispiel, das Ihren Text ins "
-"Lateinische übersetzt. Beim numberguess Beispiel handelt es sich um ein war-"
-"Beispiel und es verwendet nur einfache Beans; das translator-Beispiel ist "
-"ein ear-Beispiel, das in einem EJB-Modul verpackte Enterprise Beans "
-"enthält . Um dies auszuprobieren:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:131
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
-"Warten Sie, bis die Anwendung deployt ist und besuchen Sie <ulink url="
-"\"http://localhost:8080/webbeans-translator\"></ulink>!"
 
-#. Tag: title
-#: gettingstarted.xml:167
-#, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:169
-#, fuzzy, no-c-format
+#: gettingstarted.xml:138
+#, no-c-format
 msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
-"Anschließend laden Sie die Web Beans RI unter <ulink url=\"http://"
-"seamframework.org/Download\">seamframework.org</ulink> herunter und "
-"entzippen diese. Zum Beispiel "
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
-
 #. Tag: para
-#: gettingstarted.xml:185
-#, fuzzy, no-c-format
+#: gettingstarted.xml:145
+#, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
-"Als nächstes müssen wir Web Beans mitteilen, wo JBoss sich befindet. "
-"Editieren Sie <literal>jboss-as/build.properties</literal> und setzen Sie "
-"die <literal>jboss.home</literal>-Property. Zum Beispiel:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
-#, fuzzy, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:194
-#, fuzzy, no-c-format
+#: gettingstarted.xml:152
+#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
-"Die Build-Skripte für die Beispiele bieten zahlreiche Ziele, diese sind:"
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:158
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
 "<literal>ant restart</literal> - Deployment des Beispiels in ausgeklapptem "
 "Format"
 
 #. Tag: para
-#: gettingstarted.xml:206
-#, fuzzy, no-c-format
+#: gettingstarted.xml:163
+#, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"<literal>ant explode</literal> - update an exploded example, without "
 "restarting the deployment"
 msgstr ""
 "<literal>ant explode</literal> - Aktualisierung eines ausgeklappten "
 "Beispiels ohne Neustart des Deployments"
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
 "<literal>ant deploy</literal> - Deployment des Beispiels in komprimiertem "
 "jar-Format"
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
-msgstr ""
-"<literal>ant deploy</literal> - Deployment des Beispiels in komprimiertem "
-"jar-Format"
-
-#. Tag: para
-#: gettingstarted.xml:222
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr "<literal>ant undeploy</literal> - das Beispiel vom Server entfernen"
 
 #. Tag: para
-#: gettingstarted.xml:227
-#, fuzzy, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#: gettingstarted.xml:178
+#, no-c-format
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr "<literal>ant clean</literal> - Das Beispiel bereinigen"
 
 #. Tag: para
-#: gettingstarted.xml:234
-#, fuzzy, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "Um das numberguess Beispiel zu deployen:"
+#: gettingstarted.xml:185
+#, no-c-format
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
+#: gettingstarted.xml:191
 #, fuzzy, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/translator\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "Start Tomcat:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
-#, fuzzy, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:200
 #, fuzzy, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
 msgstr ""
-"Falls Sie Windows verwenden, verwenden Sie das <literal>run.bat</literal>-"
-"Skript."
+"Hier setzen wir den Kontextpfad, der uns eine schöne url liefert (<ulink url="
+"\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>)."
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:206
 #, no-c-format
-msgid "TODO"
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:266
+#: gettingstarted.xml:213
 #, no-c-format
-msgid "The numberguess example"
-msgstr "Das numberguess-Beispiel"
-
-#. Tag: para
-#: gettingstarted.xml:268
-#, no-c-format
-msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+msgid "Deploying to GlassFish"
 msgstr ""
-"In der numberguess-Anwendung haben Sie 10 Versuche, eine Zahl zwischen 1 und "
-"100 zu erraten. Nach jedem Versuch wird Ihnen mitgeteilt, ob Sie zu hoch "
-"oder zu niedrig liegen."
 
 #. Tag: para
-#: gettingstarted.xml:274
+#: gettingstarted.xml:215
 #, no-c-format
 msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
-"Das numberguess-Beispiel besteht aus einer Reihe von Web Beans, "
-"Konfigurationsdateien und Facelet JSF-Seiten, die als eine war verpackt "
-"sind. Fangen wir mit den Konfigurationsdateien an."
 
 #. Tag: para
-#: gettingstarted.xml:280
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
-"Alle Konfigurationsdateien für dieses Beispiel befinden sich in <literal>WEB-"
-"INF/</literal>, das in <literal>WebContent</literal> im Quell-Baum "
-"gespeichert ist. Zunächst haben wir <literal>faces-config.xml</literal>, in "
-"dem wir JSF anweisen, Facelets zu verwenden:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:231
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
-"Es existiert eine leere <literal>web-beans.xml</literal>-Datei, die diese "
-"Anwendung als Web Beans Applikation kennzeichnet."
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:240
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "Und schließlich gibt es noch <literal>web.xml</literal>:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, fuzzy, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
-"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"the Web Beans RI with any Servlet based web framework. </para> </note> "
-"<para> Let's take a look at the Facelet view: </para> <programlistingco> "
-"<areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords="
-"\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords="
-"\"25\"/> <area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords="
-"\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//"
-"W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/"
-"xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
 
-#. Tag: para
-#: gettingstarted.xml:399
+#. Tag: programlisting
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"Das Beispiel besteht aus 4 Klassen, wobei die ersten beiden Binding-Typen "
-"sind. Zunächst gibt es den <literal>@Random</literal> Binding-Typ, der zur "
-"Einspeisung einer zufälligen Zahl dient:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:405
+#. Tag: para
+#: gettingstarted.xml:248
 #, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
-"Es gibt außerdem den <literal>@MaxNumber</literal> Binding-Typ, der zur "
-"Einspeisung der maximalen Zahl, die eingespeist werden kann, verwendet wird:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:412
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
 
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
-"Die <literal>Generator</literal>-Klasse ist verantwortlich für die "
-"Erstellung der zufälligen Zahl via einer  Producer-Methode. Sie legt auch "
-"die mögliche Maximalzahl via einer maximum Producer-Methode offen:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:420
+#. Tag: para
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
-#. Tag: para
-#: gettingstarted.xml:422
+#. Tag: title
+#: gettingstarted.xml:285
 #, no-c-format
-msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+msgid "Deploying to Apache Tomcat"
 msgstr ""
-"Sie werden feststellen, dass der <literal>Generator</literal> "
-"anwendungsbegrenzt ist; daher erhalten wir nicht jedes Mal ein anderes "
-"Zufallsergebnis."
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:287
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
-"Das letzte Web Bean in der Anwendung ist das sessionbegrenzte <literal>Game</"
-"literal>."
 
 #. Tag: para
-#: gettingstarted.xml:432
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
-"Sie werden bemerken, dass wir die <literal>@Named</literal>-Annotation "
-"verwendet haben, damit wir das Bean durch EL in der JSF-Seite verwenden "
-"können. Zu guter Letzt haben wir Konstruktor-Einspeisung zur Initialisierung "
-"des Spiels mit Zufallszahl verwendet. Und natürlich müssen wir dem Spieler "
-"mitteilen, wenn er gewonnen hat, daher bieten wir Feedback mittels einer "
-"<literal>FacesMessage</literal>."
 
-#. Tag: programlisting
-#: gettingstarted.xml:440
-#, no-c-format
+#. Tag: para
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"Anschließend laden Sie die Web Beans RI unter <ulink url=\"http://"
+"seamframework.org/Download\">seamframework.org</ulink> herunter und "
+"entzippen diese. Zum Beispiel "
 
-#. Tag: title
-#: gettingstarted.xml:443
+#. Tag: programlisting
+#: gettingstarted.xml:302
 #, fuzzy, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "Das numberguess-Beispiel"
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
+msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:454
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
-#, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
-msgstr ""
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
-#. Tag: title
-#: gettingstarted.xml:472
+#. Tag: para
+#: gettingstarted.xml:323
 #, fuzzy, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "Das numberguess-Beispiel"
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "Um das numberguess Beispiel zu deployen:"
 
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:482
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
+"<literal>ant restart</literal> - Deployment des Beispiels in ausgeklapptem "
+"Format"
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:507
-#, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
+#: gettingstarted.xml:346
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
+"<literal>ant explode</literal> - Aktualisierung eines ausgeklappten "
+"Beispiels ohne Neustart des Deployments"
 
 #. Tag: para
-#: gettingstarted.xml:513
-#, no-c-format
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
+"<literal>ant deploy</literal> - Deployment des Beispiels in komprimiertem "
+"jar-Format"
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
+#. Tag: para
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - das Beispiel vom Server entfernen"
 
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+#. Tag: programlisting
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "Understanding the code"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:576
+#: gettingstarted.xml:396
 #, no-c-format
 msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:403
 #, no-c-format
-msgid "Differences are:"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:586
-#, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:599
-#, no-c-format
-msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:605
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:612
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
-#, fuzzy, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "Das numberguess-Beispiel"
-
-#. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+msgid "Deploying to Jetty"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
-#, fuzzy, no-c-format
-msgid "To run this example:"
-msgstr "Das translator-Beispiel"
-
-#. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:457
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:679
+#: gettingstarted.xml:464
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:684
-#, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:690
+#: gettingstarted.xml:470
 #, no-c-format
-msgid "execute the following command"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:693
-#, no-c-format
-msgid "mvn -Drun"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:699
-#, fuzzy, no-c-format
 msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
-"Es existiert eine leere <literal>web-beans.xml</literal>-Datei, die diese "
-"Anwendung als Web Beans Applikation kennzeichnet."
 
 #. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
+#. Tag: programlisting
+#: gettingstarted.xml:485
 #, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "Das translator-Beispiel"
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
-"Beim translator-Beispiel werden die von Ihnen eingegebenen Sätze ins "
-"Lateinische übersetzt."
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"Das translator-Beispiel ist eine ear und enthält EJBs. Als Folge ist seine "
-"Struktur komplexer als die desnumberguess-Beispiels."
 
-#. Tag: para
-#: gettingstarted.xml:930
+#. Tag: programlisting
+#: gettingstarted.xml:501
 #, no-c-format
-msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
-"EJB 3.1 und Jave EE 6 gestatten es Ihnen EJBs in eine war zu verpacken, "
-"wodurch diese Struktur wesentlich einfacher wird!"
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"Werfen wir zunächst einen Blick auf den ear-Aggregator, das sich im "
-"<literal>webbeans-translator-ear</literal>-Modul befindet. Maven generiert "
-"automatisch die <literal>application.xml</literal> für uns:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:942
-#, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
-"Hier setzen wir den Kontextpfad, der uns eine schöne url liefert (<ulink url="
-"\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
 
 #. Tag: para
-#: gettingstarted.xml:950
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+msgid "First, initialize the Eclipse project:"
 msgstr ""
-"Falls Sie zur Generierung dieser Dateien nicht Maven verwendet haben, "
-"benötigen Sie <literal>META-INF/application.xml</literal>:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:520
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"<![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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
-#, fuzzy, no-c-format
-msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr ""
-"Als nächstes schauen wir uns die war an. Genau wie im numberguess Beispiel "
-"haben wir eine <literal>faces-config.xml</literal> (zur Aktivierung von "
-"Facelets) und eine <literal>web.xml</literal> (zur Aktivierung von JSF) in "
-"<literal>WebContent/WEB-INF</literal>."
-
-#. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:522
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
-"Interessanter ist das zur Ãœbersetzung des Texts verwendete Facelet. Ganz wie "
-"im numberguess-Beispiel besitzen wir eine Vorlage, die das Formular umgibt "
-"(hier der Kürze wegen weggelassen):"
 
 #. Tag: programlisting
-#: gettingstarted.xml:971
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
-"Der Benutzer kann Text im Textbereich links eingeben und dann die translate-"
-"Schaltfläche drücken (zur Übersetzung), um auf der rechten Seite das "
-"Ergebnis zu sehen."
 
 #. Tag: para
-#: gettingstarted.xml:978
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"Sehen wir uns schließlich noch das ejb-Modul <literal>webbeans-translator-"
-"ejb</literal> an. In <literal>src/main/resources/META-INF</literal> "
-"existiert nur eine leere <literal>web-beans.xml</literal>, die dazu dient "
-"das Archiv als Web Beans enthaltend zu markieren."
 
-#. Tag: para
-#: gettingstarted.xml:986
-#, no-c-format
-msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
-msgstr ""
-"Wir haben uns das Interessanteste bis zuletzt aufgehoben, nämlich den Code! "
-"Das Projekt besitzt zwei einfache Beans, <literal>SentenceParser</literal> "
-"und <literal>TextTranslator</literal> und zwei Enterprise Beans, "
-"<literal>TranslatorControllerBean</literal> und <literal>SentenceTranslator</"
-"literal>. Sie sind wahrscheinlich schon weitehend vertraut damit, wie Web "
-"Bean aussehen, daher gehen wir hier nur auf die interessantesten Aspekte ein."
+#, fuzzy
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "Die Web Beans Referenzimplementierung"
 
-#. Tag: para
-#: gettingstarted.xml:996
-#, no-c-format
-msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
-msgstr ""
-"Sowohl bei <literal>SentenceParser</literal> als auch bei "
-"<literal>TextTranslator</literal> handelt es sich um abhängige Beans und "
-"<literal>TextTranslator</literal> verwendet Konstruktor-Initialisierung :"
+#, fuzzy
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "Die Web Beans Referenzimplementierung wird unter <ulink url=\"http://"
+#~ "seamframework.org/WebBeans\">das Seam Projekt</ulink> entwickelt. Sie "
+#~ "können die aktuellste Entwickler-Release von Web Beans von der <ulink url="
+#~ "\"http://seamframework.org/Download\">Downloads Seite</ulink> "
+#~ "herunterladen."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "Die Web Beans RI kommt mit zwei deploybaren Beispielanwendungen: "
+#~ "<literal>webbeans-numberguess</literal>, ein war-Beispiel, das nur "
+#~ "einfache Beans enthält und <literal>webbeans-translator</literal>, ein "
+#~ "ear-Beispiel, dasEnterprise Beans enthält. Um Beispiele auszuführen "
+#~ "benötigen Sie folgendes:"
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
-msgstr ""
-"<literal>TextTranslator</literal> ist ein stateless Bean (mit einem lokalen "
-"Business-Interface), wo alles passiert - natürlich konnten wir keinen "
-"kompletten Übersetzer entwickeln,, aber wir haben uns Mühe gegeben!"
+#, fuzzy
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.0.GA und"
 
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
-msgstr ""
-"Schließlich gibt es noch den UI-orientierten Kontroller, der den Text vom "
-"Benutzer nimmt und ihn an den translator (Ãœbersetzer) weitergibt. Hierbei "
-"handelt es sich um ein anfragenbegrenztes, benanntes, stateful Session Bean, "
-"das den translator einspeist."
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "Momentan läuft die Web Beans RI nur auf JBoss Application Server 5. Sie "
+#~ "werden JBoss AS 5.0.0.GA unter <ulink url=\"http://www.jboss.org/jbossas/"
+#~ "downloads/\">jboss.org</ulink> herunterladen und es unzippen müssen. Zum "
+#~ "Beispiel:"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr "Das Bean besitzt auch Getter und Setter für alle Felder auf der Seite."
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr ""
-"Da es sich um ein stateful Session Bean handelt, müssen wir eine remove-"
-"Methode besitzen:"
+#, fuzzy
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "Anschließend laden Sie die Web Beans RI unter <ulink url=\"http://"
+#~ "seamframework.org/Download\">seamframework.org</ulink> herunter und "
+#~ "entzippen diese. Zum Beispiel "
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
-msgstr ""
-"Der Web Beans Manager ruft die remove-Methode für Sie auf, wenn das Bean "
-"gelöscht wird, in diesem Fall am Ende der Anfrage."
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Als nächstes müssen wir Web Beans mitteilen, wo JBoss sich befindet. "
+#~ "Editieren Sie <literal>jboss-as/build.properties</literal> und setzen Sie "
+#~ "die <literal>jboss.home</literal>-Property. Zum Beispiel:"
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, fuzzy, no-c-format
-msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
-msgstr ""
-"Dies beendet unsere kurze Tour von Web Beans RI Beispielen. Falls Sie "
-"weitere Informationen zur RI wünschen oder falls Sie helfen möchten, "
-"besuchen SIe bitte <ulink url=\"http://www.seamframework.org/WebBeans/"
-"Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
+#, fuzzy
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "Um das Update zu installieren, muss Ant 1.7.0 installiert und die "
+#~ "<literal>ANT_HOME</literal> Umgebungsvariable gesetzt sein. Zum Beispiel:"
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""
-"Wir brauche Unterstützung auf allen Gebieten - Fehlerbehebung, Schreiben "
-"neuer Features, Schreiben neuer Beispiele und bei der Ãœbersetzung dieses "
-"Referenzhandbuchs."
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #, fuzzy
 #~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "Dann können Sie das Update installieren. Das Update-Skript verwendet "
+#~ "Maven, um die Web Beans und EJB3 automatisch herunterzuladen."
+
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "Die Build-Skripte für die Beispiele bieten zahlreiche Ziele, diese sind:"
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "Um das numberguess Beispiel zu deployen:"
+
+#~ msgid "Start JBoss AS:"
+#~ msgstr "JBoss AS starten:"
+
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+
+#~ msgid "If you use Windows, use the <literal>run.bat</literal>script."
+#~ msgstr ""
+#~ "Falls Sie Windows verwenden, verwenden Sie das <literal>run.bat</literal>-"
+#~ "Skript."
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "Deployen Sie die Anwendung und genießen Sie stundenlangen Spaß unter "
+#~ "<ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Die Web Beans RI enthält ein zweites einfaches Beispiel, das Ihren Text "
+#~ "ins Lateinische übersetzt. Beim numberguess Beispiel handelt es sich um "
+#~ "ein war-Beispiel und es verwendet nur einfache Beans; das translator-"
+#~ "Beispiel ist ein ear-Beispiel, das in einem EJB-Modul verpackte "
+#~ "Enterprise Beans enthält . Um dies auszuprobieren:"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "Warten Sie, bis die Anwendung deployt ist und besuchen Sie <ulink url="
+#~ "\"http://localhost:8080/webbeans-translator\"></ulink>!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Als nächstes müssen wir Web Beans mitteilen, wo JBoss sich befindet. "
+#~ "Editieren Sie <literal>jboss-as/build.properties</literal> und setzen Sie "
+#~ "die <literal>jboss.home</literal>-Property. Zum Beispiel:"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "Die Build-Skripte für die Beispiele bieten zahlreiche Ziele, diese sind:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant deploy</literal> - Deployment des Beispiels in komprimiertem "
+#~ "jar-Format"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr "<literal>ant undeploy</literal> - das Beispiel vom Server entfernen"
+
+#, fuzzy
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant clean</literal> - Das Beispiel bereinigen"
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/translator\n"
+#~ "ant deploy"
+
+#, fuzzy
+#~ msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#~ msgstr ""
+#~ "Falls Sie Windows verwenden, verwenden Sie das <literal>run.bat</literal>-"
+#~ "Skript."
+
+#~ msgid "The numberguess example"
+#~ msgstr "Das numberguess-Beispiel"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "In der numberguess-Anwendung haben Sie 10 Versuche, eine Zahl zwischen 1 "
+#~ "und 100 zu erraten. Nach jedem Versuch wird Ihnen mitgeteilt, ob Sie zu "
+#~ "hoch oder zu niedrig liegen."
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "Das numberguess-Beispiel besteht aus einer Reihe von Web Beans, "
+#~ "Konfigurationsdateien und Facelet JSF-Seiten, die als eine war verpackt "
+#~ "sind. Fangen wir mit den Konfigurationsdateien an."
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "Alle Konfigurationsdateien für dieses Beispiel befinden sich in "
+#~ "<literal>WEB-INF/</literal>, das in <literal>WebContent</literal> im "
+#~ "Quell-Baum gespeichert ist. Zunächst haben wir <literal>faces-config.xml</"
+#~ "literal>, in dem wir JSF anweisen, Facelets zu verwenden:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Es existiert eine leere <literal>web-beans.xml</literal>-Datei, die diese "
+#~ "Anwendung als Web Beans Applikation kennzeichnet."
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "Und schließlich gibt es noch <literal>web.xml</literal>:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.jsf</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use the Web Beans RI with any Servlet based web framework. "
+#~ "</para> </note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> "
+#~ "<area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/> "
+#~ "<area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "Das Beispiel besteht aus 4 Klassen, wobei die ersten beiden Binding-Typen "
+#~ "sind. Zunächst gibt es den <literal>@Random</literal> Binding-Typ, der "
+#~ "zur Einspeisung einer zufälligen Zahl dient:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "Es gibt außerdem den <literal>@MaxNumber</literal> Binding-Typ, der zur "
+#~ "Einspeisung der maximalen Zahl, die eingespeist werden kann, verwendet "
+#~ "wird:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "Die <literal>Generator</literal>-Klasse ist verantwortlich für die "
+#~ "Erstellung der zufälligen Zahl via einer  Producer-Methode. Sie legt auch "
+#~ "die mögliche Maximalzahl via einer maximum Producer-Methode offen:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "Sie werden feststellen, dass der <literal>Generator</literal> "
+#~ "anwendungsbegrenzt ist; daher erhalten wir nicht jedes Mal ein anderes "
+#~ "Zufallsergebnis."
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "Das letzte Web Bean in der Anwendung ist das sessionbegrenzte "
+#~ "<literal>Game</literal>."
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "Sie werden bemerken, dass wir die <literal>@Named</literal>-Annotation "
+#~ "verwendet haben, damit wir das Bean durch EL in der JSF-Seite verwenden "
+#~ "können. Zu guter Letzt haben wir Konstruktor-Einspeisung zur "
+#~ "Initialisierung des Spiels mit Zufallszahl verwendet. Und natürlich "
+#~ "müssen wir dem Spieler mitteilen, wenn er gewonnen hat, daher bieten wir "
+#~ "Feedback mittels einer <literal>FacesMessage</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "Das numberguess-Beispiel"
+
+#, fuzzy
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "Das numberguess-Beispiel"
+
+#, fuzzy
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "Das numberguess-Beispiel"
+
+#, fuzzy
+#~ msgid "To run this example:"
+#~ msgstr "Das translator-Beispiel"
+
+#, fuzzy
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Es existiert eine leere <literal>web-beans.xml</literal>-Datei, die diese "
+#~ "Anwendung als Web Beans Applikation kennzeichnet."
+
+#~ msgid "The translator example"
+#~ msgstr "Das translator-Beispiel"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr ""
+#~ "Beim translator-Beispiel werden die von Ihnen eingegebenen Sätze ins "
+#~ "Lateinische übersetzt."
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "Das translator-Beispiel ist eine ear und enthält EJBs. Als Folge ist "
+#~ "seine Struktur komplexer als die desnumberguess-Beispiels."
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 und Jave EE 6 gestatten es Ihnen EJBs in eine war zu verpacken, "
+#~ "wodurch diese Struktur wesentlich einfacher wird!"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "Werfen wir zunächst einen Blick auf den ear-Aggregator, das sich im "
+#~ "<literal>webbeans-translator-ear</literal>-Modul befindet. Maven "
+#~ "generiert automatisch die <literal>application.xml</literal> für uns:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "Falls Sie zur Generierung dieser Dateien nicht Maven verwendet haben, "
+#~ "benötigen Sie <literal>META-INF/application.xml</literal>:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "Als nächstes schauen wir uns die war an. Genau wie im numberguess "
+#~ "Beispiel haben wir eine <literal>faces-config.xml</literal> (zur "
+#~ "Aktivierung von Facelets) und eine <literal>web.xml</literal> (zur "
+#~ "Aktivierung von JSF) in <literal>WebContent/WEB-INF</literal>."
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "Interessanter ist das zur Ãœbersetzung des Texts verwendete Facelet. Ganz "
+#~ "wie im numberguess-Beispiel besitzen wir eine Vorlage, die das Formular "
+#~ "umgibt (hier der Kürze wegen weggelassen):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "Der Benutzer kann Text im Textbereich links eingeben und dann die "
+#~ "translate-Schaltfläche drücken (zur Übersetzung), um auf der rechten "
+#~ "Seite das Ergebnis zu sehen."
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "Sehen wir uns schließlich noch das ejb-Modul <literal>webbeans-translator-"
+#~ "ejb</literal> an. In <literal>src/main/resources/META-INF</literal> "
+#~ "existiert nur eine leere <literal>web-beans.xml</literal>, die dazu dient "
+#~ "das Archiv als Web Beans enthaltend zu markieren."
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "Wir haben uns das Interessanteste bis zuletzt aufgehoben, nämlich den "
+#~ "Code! Das Projekt besitzt zwei einfache Beans, <literal>SentenceParser</"
+#~ "literal> und <literal>TextTranslator</literal> und zwei Enterprise Beans, "
+#~ "<literal>TranslatorControllerBean</literal> und "
+#~ "<literal>SentenceTranslator</literal>. Sie sind wahrscheinlich schon "
+#~ "weitehend vertraut damit, wie Web Bean aussehen, daher gehen wir hier nur "
+#~ "auf die interessantesten Aspekte ein."
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "Sowohl bei <literal>SentenceParser</literal> als auch bei "
+#~ "<literal>TextTranslator</literal> handelt es sich um abhängige Beans und "
+#~ "<literal>TextTranslator</literal> verwendet Konstruktor-Initialisierung :"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> ist ein stateless Bean (mit einem "
+#~ "lokalen Business-Interface), wo alles passiert - natürlich konnten wir "
+#~ "keinen kompletten Übersetzer entwickeln,, aber wir haben uns Mühe gegeben!"
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "Schließlich gibt es noch den UI-orientierten Kontroller, der den Text vom "
+#~ "Benutzer nimmt und ihn an den translator (Ãœbersetzer) weitergibt. Hierbei "
+#~ "handelt es sich um ein anfragenbegrenztes, benanntes, stateful Session "
+#~ "Bean, das den translator einspeist."
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr ""
+#~ "Das Bean besitzt auch Getter und Setter für alle Felder auf der Seite."
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "Da es sich um ein stateful Session Bean handelt, müssen wir eine remove-"
+#~ "Methode besitzen:"
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "Der Web Beans Manager ruft die remove-Methode für Sie auf, wenn das Bean "
+#~ "gelöscht wird, in diesem Fall am Ende der Anfrage."
+
+#, fuzzy
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "Dies beendet unsere kurze Tour von Web Beans RI Beispielen. Falls Sie "
+#~ "weitere Informationen zur RI wünschen oder falls Sie helfen möchten, "
+#~ "besuchen SIe bitte <ulink url=\"http://www.seamframework.org/WebBeans/"
+#~ "Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "Wir brauche Unterstützung auf allen Gebieten - Fehlerbehebung, Schreiben "
+#~ "neuer Features, Schreiben neuer Beispiele und bei der Ãœbersetzung dieses "
+#~ "Referenzhandbuchs."
+
+#, fuzzy
+#~ msgid ""
 #~ "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss "
 #~ "AS. This adds supports for Web Bean archives to JBoss AS, and allows the "
 #~ "Web Beans RI to query the EJB3 container and discover which EJBs are "

Modified: doc/trunk/reference/de-DE/injection.po
===================================================================
--- doc/trunk/reference/de-DE/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: injection\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-15 15:56+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -17,34 +17,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "Dependency-Einspeisung"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans unterstützt drei primäre Mechanismen für \"Dependency\"-Einspeisung:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Konstruktorparameter-Einspeisung:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>Initializer</emphasis>-Methode Parameter-Einspeisung:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -60,23 +78,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>Initializer</emphasis>-Methode Parameter-Einspeisung:"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -92,18 +116,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "Und direkte Feldeinspeisung:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -114,74 +147,92 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
-msgstr "Dependency-Einspeisung findet stets bei der ersten Instantiierung der Web Bean Instanz statt."
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
+#: injection.xml:56
+#, fuzzy, no-c-format
 msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
-msgstr "Zuerst ruft der Web Bean Manager den Web Bean Konstruktor auf, um eine Instanz des Web Beans zu erhalten."
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"Dependency-Einspeisung findet stets bei der ersten Instantiierung der Web "
+"Bean Instanz statt."
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
+#: injection.xml:63
+#, fuzzy, no-c-format
 msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
-msgstr "Als nächstes initialisiert der Web Bean Manager die Werte aller eingespeisten Felder des Web Beans."
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"Zuerst ruft der Web Bean Manager den Web Bean Konstruktor auf, um eine "
+"Instanz des Web Beans zu erhalten."
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "Anschließend ruft der Web Bean Manager alle Initialisierermethoden des Web Beans auf."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"Als nächstes initialisiert der Web Bean Manager die Werte aller "
+"eingespeisten Felder des Web Beans."
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
+#: injection.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
-msgstr "Zuletzt wird die <literal>@PostConstruct</literal>-Methode des Web Bean, falls vorhanden, aufgerufen."
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"Anschließend ruft der Web Bean Manager alle Initialisierermethoden des Web "
+"Beans auf."
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"Zuletzt wird die <literal>@PostConstruct</literal>-Methode des Web Bean, "
+"falls vorhanden, aufgerufen."
+
+#. Tag: para
+#: injection.xml:86
 #, no-c-format
 msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
 msgstr ""
-"Die Einspeisung von Konstruktorparametern wird für EJB-Beans nicht unterstützt, da das "
-"EJB durch den EJB-Container und nicht den Web Bean Manager instantiiert wird."
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
 msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
 msgstr ""
-"Parameter von Konstruktoren und Initialisierermethoden müssen nicht explizit annotiert werden, wenn der standardmäßige Binding-Typ <literal>@Current</literal> gilt."
-"Eingespeiste Felder jedoch <emphasis>müssen</emphasis> einen Binding-Typ festlegen, selbst wenn der standardmäßige Binding-Typ gilt. Legt das Feld keinen standardmäßige Binding-Typ fest, so wird es nicht eingespeist."
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "Producer-Methoden unterstützen Parametereinspeisung ebenfalls:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -193,98 +244,130 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
 msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
 msgstr ""
-"Observer-Methoden (auf die wir in <xref linkend=\"events\"/> näher eingehen), "
-"\"Disposal\"-Methoden und \"Destructor\"-Methoden unterstützen allesamt die Parametereinspeisung."
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:58
-#, no-c-format
+#: injection.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
-"<literal>AmbiguousDependencyException</literal>."
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
 msgstr ""
-"Die Web Beans Spezifikation definiert eine Prozedur namens <emphasis>typesicherer Auflösungsalgorithmus</emphasis> (sog. typesafe resolution algorithm), den der Web Bean "
-"Manager bei der Identifizierung des an einem Einspeisungspunkt einzuspeisenden Web Beans folgt. Dieser  Algorithmus sieht auf den ersten Blick recht komplex aus, ist es aber nach kurzer Eingewöhnung nicht. Typensichere Auflösung wird zum Initialisierungszeitpunkt des Systems durchgeführt, was bedeutet, dass der Manager den Benutzer sofort darüber informiert, falls die Abhängigkeiten eines Web Beans nicht erfüllt werden können - dies erfolgt durch Meldung von <literal>UnsatisfiedDependencyException</literal> oder "
+"Die Web Beans Spezifikation definiert eine Prozedur namens "
+"<emphasis>typesicherer Auflösungsalgorithmus</emphasis> (sog. typesafe "
+"resolution algorithm), den der Web Bean Manager bei der Identifizierung des "
+"an einem Einspeisungspunkt einzuspeisenden Web Beans folgt. Dieser  "
+"Algorithmus sieht auf den ersten Blick recht komplex aus, ist es aber nach "
+"kurzer Eingewöhnung nicht. Typensichere Auflösung wird zum "
+"Initialisierungszeitpunkt des Systems durchgeführt, was bedeutet, dass der "
+"Manager den Benutzer sofort darüber informiert, falls die Abhängigkeiten "
+"eines Web Beans nicht erfüllt werden können - dies erfolgt durch Meldung von "
+"<literal>UnsatisfiedDependencyException</literal> oder "
 "<literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
+#: injection.xml:120
+#, fuzzy, no-c-format
 msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
-msgstr "Der Zweck dieses Algorithmus ist es, mehreren Web Beans die Einspeisung desselben API-Typs zu gestatten und entweder:"
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"Der Zweck dieses Algorithmus ist es, mehreren Web Beans die Einspeisung "
+"desselben API-Typs zu gestatten und entweder:"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
+#: injection.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
-msgstr "Dem Client mittels <emphasis>Binding-Annotationen</emphasis> zu gestatten auszuwählen, welche Implemetierung er benötigt, "
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"Dem Client mittels <emphasis>Binding-Annotationen</emphasis> zu gestatten "
+"auszuwählen, welche Implemetierung er benötigt, "
 
 #. Tag: para
-#: injection.xml:77
-#, no-c-format
+#: injection.xml:131
+#, fuzzy, no-c-format
 msgid ""
 "allow the application deployer to select which implementation is appropriate "
 "for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
-msgstr "Dem Anwendungs-Deployer durch Aktivierung oder Deaktivierung von <emphasis>Deployment-Typen</emphasis> gestatten auszuwählen, welche Implementierung die passende für eine bestimmte Umgebung ist, ohne dass es zu Änderungen am Client kommt oder "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"Dem Anwendungs-Deployer durch Aktivierung oder Deaktivierung von "
+"<emphasis>Deployment-Typen</emphasis> gestatten auszuwählen, welche "
+"Implementierung die passende für eine bestimmte Umgebung ist, ohne dass es "
+"zu Änderungen am Client kommt oder "
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:137
 #, no-c-format
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:143
+#, no-c-format
 msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
 msgstr ""
-"Einer Implementierung eines API mittels <emphasis>Deployment-Typ Präzedenz</emphasis> (\"Deployment Type Precedence\") gestatten, zum Deployment-Zeitpunkt eine andere Implementerung desselben API außer Kraft zu setzen, ohne dass dies zu Änderungen am Client führt."
-"."
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Schauen wir uns jetzt näher an, wie der Web Beans Manager ein einzuspeisendes Web Bean bestimmt."
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "Binding-Annotationen"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
+#: injection.xml:159
+#, fuzzy, no-c-format
 msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
 "<literal>PaymentProcessor</literal>:"
-msgstr "Falls mehr als ein Web Bean existiert, das einen bestimmten API-Typ implementiert, so kann der Einspeisungspunkt genau festlegen welches Web Bean eingespeist wird mittels Binding-Annotation. Zum Beispiel können zwei Implementierungen von <literal>PaymentProcessor</literal> vorhanden sein:"
+msgstr ""
+"Falls mehr als ein Web Bean existiert, das einen bestimmten API-Typ "
+"implementiert, so kann der Einspeisungspunkt genau festlegen welches Web "
+"Bean eingespeist wird mittels Binding-Annotation. Zum Beispiel können zwei "
+"Implementierungen von <literal>PaymentProcessor</literal> vorhanden sein:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -293,35 +376,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
+#: injection.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
-msgstr "Wo <literal>@PayByCheque</literal> und <literal>@PayByCreditCard</literal> Binding-Annotationen sind:"
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"Wo <literal>@PayByCheque</literal> und <literal>@PayByCreditCard</literal> "
+"Binding-Annotationen sind:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -329,60 +414,62 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
+#: injection.xml:177
+#, fuzzy, no-c-format
 msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
-msgstr "Ein Client Web Bean Entwickler verwendet die Binding-Annotation um genau festzulegen, welches Web Bean eingespeist werden sollte."
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"Ein Client Web Bean Entwickler verwendet die Binding-Annotation um genau "
+"festzulegen, welches Web Bean eingespeist werden sollte."
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "Verwendung der Feldeinspeisung:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "Verwendung der Initialisierermethoden-Einspeisung:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
@@ -395,15 +482,22 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "Oder Verwendung der Konstruktoreinspeisung:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
 "                @PayByCreditCard PaymentProcessor "
@@ -411,36 +505,85 @@
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor "
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
 "creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "Binding-Annotationen mit Mitgliedern"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "Binding-Annotationen können Mitglieder besitzen:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -451,830 +594,746 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "Wobei in diesem Fall der Mitgliederwert von Bedeutung ist:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
+#: injection.xml:232
+#, fuzzy, no-c-format
 msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
-msgstr "Sie können den Web Bean Manager anweisen, ein Mitglied eines Binding-Annotationstyps zu ignorieren, indem Sie das Mitglied mit <literal>@NonBinding</literal> annotieren."
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"Sie können den Web Bean Manager anweisen, ein Mitglied eines Binding-"
+"Annotationstyps zu ignorieren, indem Sie das Mitglied mit "
+"<literal>@NonBinding</literal> annotieren."
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "Kombinationen von Binding-Annnotationen"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
-msgstr "Ein Einspeisungspunkt kann sogar mehrere Binding-Annotationen festlegen:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
+msgstr ""
+"Ein Einspeisungspunkt kann sogar mehrere Binding-Annotationen festlegen:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
+#: injection.xml:250
+#, fuzzy, no-c-format
 msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
-msgstr "In diesem Fall würde nur ein Web Bean mit <emphasis>beiden</emphasis> Binding-Annotationen eingespeist."
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"In diesem Fall würde nur ein Web Bean mit <emphasis>beiden</emphasis> "
+"Binding-Annotationen eingespeist."
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "Binding-Annotationen und Producer-Methoden"
-
-#. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "Sogar Producer-Methoden können Binding-Annotationen festlegen:"
-
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:260
 #, no-c-format
-msgid "The default binding type"
-msgstr "Der standardmäßige Binding-Typ"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:262
 #, no-c-format
 msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
-msgstr "Web Beans definiert einen Binding-Typ <literal>@Current</literal>, der der standardmäßige Binding-Typ für jeden Einspeisungspunkt oder Web Bean ist, der nicht explizit einen  Binding-Typ festlegt."
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:266
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: para
-#: injection.xml:168
+#: injection.xml:268
 #, no-c-format
 msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
-msgstr "Es existieren zwei gängige Umstände, bei denen es notwendig ist, <literal>@Current</literal> festzulegen:"
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:173
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
-msgstr "An einem Feld, um es als eingespeistes Feld zu deklarieren mit dem standardmäßigen Binding-Typ und "
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:177
+#: injection.xml:276
 #, no-c-format
 msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
-msgstr "an einem Web Bean, das neben dem standardmäßigen Binding-Type einen weiteren Binding-Typ besitzt."
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "Deployment Typen"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "Unbefriedigende Abhängigkeiten beheben"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
+#: injection.xml:287
+#, fuzzy, no-c-format
 msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
-msgstr "Alle Web Beans besitzen einen <emphasis>Deployment-Typ</emphasis>. Jeder Deployment-Typ identifiziert einen Satz von Web Beans mit Vorbehalt in einigen Deployments des Systems installiert werden sollten."
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"Der typensichere Auflösungsalgorithmus schlägt fehl, wenn - nach Betrachtung "
+"der Binding-Annotationen und der Deployment-Typen aller den API-Typ "
+"implementierender Web Beans eines Einspeisungspunktes - der Web Bean Manager "
+"nicht dazu in der Lage ist, ein einzuspeisendes Web Bean zu identifizieren."
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
-msgstr "Zum Beispiel könnten wir einen Deployment-Typ namens <literal>@Mock</literal> definieren, der Web Beans identifiziert, die nur installiert werden sollen, wenn das System innerhalb einer Integrationstestumgebung ausgeführt wird:"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:197
+#. Tag: para
+#: injection.xml:298
 #, no-c-format
-msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
-msgstr "Nehmen wir an, wir hätten ein Web Bean, das mit einem externen System interagiert, um Zahlungen zu bearbeiten:"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:309
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
-msgstr "Da dieses Web Bean nicht explizit einen Deployment-Typ festlegt gilt der standardmäßige Deployment-Typ <literal>@Production</literal>."
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:321
 #, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
-msgstr "Für Integration oder das Testen von Einheiten ist das externe System langsam oder nicht verfügbar. Daher würden wir ein \"Mock\"-Objekt erstellen:"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:332
 #, no-c-format
 msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
-msgstr "Wie aber bestimmt der Web Bean Manager, welche Implementierung in einem bestimmten Deployment verwendet werden soll?"
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "Aktivierung von Deployment-Typen"
-
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:337
 #, no-c-format
 msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
 msgstr ""
-"Web Beans definieren zwei eingebaute Deployment-Typen: <literal>@Production</"
-"literal> und <literal>@Standard</literal>. Standardmäßig sind nur Web Beans mit den eingebauten Deployment-Typen bei Deployment des Systems aktiviert. Wir können weitere Deployment-Typen identifizieren, die bei einem bestimmten Deployment aktiviert werden sollen, indem wir diese in <literal>web-beans.xml</literal> aufführen."
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
-msgstr "Kehren wir zu unserem Beispiel zurück, wenn wir Integrationsstests deployen und wir möchten, dass alle unsere <literal>@Mock</literal>-Objekte installiert werden:"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:350
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:358
 #, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
-msgstr "Jetzt identifiziert und installiert der Web Bean Manager alle mit <literal>@Production</literal>, <literal>@Standard</literal> oder <literal>@Mock</literal> annotierten Web Beans zum Zeitpunkt des Deployments."
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:361
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
 msgstr ""
-"Der Deployment-Typ <literal>@Standard</literal> wird nur für bestimmte, spezielle "
-"durch die Web Beans Spezifikation definierte Web Beans verwendet. Wir können ihn nicht für unsere eigenen Web Beans benutzen und wir können ihn nicht deaktivieren."
 
 #. Tag: para
-#: injection.xml:237
-#, no-c-format
+#: injection.xml:366
+#, fuzzy, no-c-format
 msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
-msgstr "Der Deployment-Typ <literal>@Production</literal> ist der standardmäßige Deployment-Typ für Web Beans, die keinen expliziten Deployment-Typ festlegen oder deaktiviert sind."
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
+"Es gibt eine weitere Sache, derer man sich bei der Verwendung von "
+"\"Dependency\"-Einspeisung in Web Beans gewahr sein sollte."
 
 #. Tag: title
-#: injection.xml:244
+#: injection.xml:373
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "Deployment-Typ Präzedenz"
+msgid "Client proxies"
+msgstr "Client-Proxies"
 
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
+#: injection.xml:375
+#, fuzzy, no-c-format
 msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation &#151; <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider "
-"what happens when the manager encounters this injection point:"
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
 msgstr ""
-"Wenn Sie aufgepasst haben, fragen Sie sich jetzt wahrscheinlich, wie der Web Bean "
-"Manager entscheidet, welche Implementierung &#151; <literal>ExternalPaymentProcessor</"
-"literal> oder <literal>MockPaymentProcessor</literal> &#151; er wählt. Überlegen Sie sich, was passiert, wenn der Manager auf diesen Einspeisungspunkt trifft:"
+"Clients eines eingespeisten Web Beans enthalten in der Regel keinen direkten "
+"Verweis an eine Web Bean Instanz."
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
+#: injection.xml:380
+#, fuzzy, no-c-format
 msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
-msgstr "Es gibt jetzt zwei Web Beans, die den <literal>PaymentProcessor</literal>-Vertrag erfüllen. Natürlich können wir keine Binding-Annotation zur eindeutig Machung verwenden, da Binding-Annotationen in die Quelle am Einspeisungspunkt hardcodiert und wir wollen, dass der Manager zum Deployment-Zeotpunkt entscheiden können soll!"
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"Stellen wir uns vor, ein an den Geltungsbereich der Anwendung gebundenes Web "
+"Bean hielte einen direkten Verweis auf ein an den Geltungsbereich der "
+"Anfrage gebundenes Web Bean. Das an den Geltungsbereich der Anwendung "
+"gebundene Web Bean wird von vielen verschiedenen Anfragen geteilt. Jedoch "
+"sollte jede Anfrage eine andere Instanz des an den Geltungsbereich der "
+"Anfrage gebundenen Web Beans sehen!"
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
+#: injection.xml:386
+#, fuzzy, no-c-format
 msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
-msgstr "Die Lösung dieses Problems ist, dass jeder Deployment-Typ eine andere <emphasis>Präzendenz</emphasis> besitzt. Die Präzendenz der Deployment-Typen wird durch die Reihenfolge, in der sie in <literal>web-beans.xml</literal> erscheinen, festgelegt. In unserem Beispiel erscheint <literal>@Mock</literal> später als <literal>@Production</literal>, so dass es eine höhere Präzendenz besitzt."
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"Stellen Sie sich nun vor das an den Geltungsbereich der Session gebundene "
+"Web Bean hielte einen direkten Verweis auf ein an den Geltungsbereich der "
+"Anwendung gebundenes Web Bean. FVon Zeit zu Zeit wird der Session Kontext "
+"auf Disk serialisiert, um den Speicher effizienter zu nutzen. Die durch den "
+"Geltungsbereich der Anwendung begrenzte Instanz des Web Beans sollte jedoch "
+"nicht mit dem durch den Geltungsbereich der Session begrenzetn Web Bean "
+"serialisiert werden!"
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
+#: injection.xml:393
+#, fuzzy, no-c-format
 msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
-msgstr "Findet der Manager mehr als ein Web Bean, das den von einem Einspeisungspunkt festgelegten Vertrag erfüllt (API-Typ plus Binding-Annotationen), so gilt die relative Präzedenz der Web Beans. Besitzt eines eine höhere Präzedenz als andere, so wird es für die Einspeisung gewählt. In unserem Beispiel speist der Web Bean Manager also <literal>MockPaymentProcessor</literal> bei der Ausführung unserer Integrationstestumgebung aus (und das ist es auch, was wir möchten)."
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"Daher muss der Web Bean Manageralle eingespeisten Verweise auf das Web Bean "
+"durch ein Proxy-Objekt einleiten, wenn das Web Bean nicht den Standard-"
+"Geltungsbereich <literal>@Dependent</literal> besitzt. Dieser "
+"<emphasis>Client-Proxy</emphasis> ist verantwortlich dafür sicher zu "
+"stellen, dass die einen Methodenaufruf erhaltende Web Bean Instanz, die mit "
+"dem aktuellen Kontext assoziierte ist. Der Client-Proxy gestattet außerdem "
+"die Serialisierung auf Disk von an Kontexte gebundenen Web Beans, ohne "
+"dassrekursiv andere eingespeiste Web Beans serialisiert werden."
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
+#: injection.xml:401
+#, fuzzy, no-c-format
 msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
 msgstr ""
-"Es ist interessant dies mit den heutzutage beliebten Manager Architekturen zu vergleichen. Verschiedene \"leichtgewichtige\" Container gestatten uns auch das bedingte Deployment von im Klassenpfad existierenden Klassen, aber Klassen, die deployt werden sollen müssen explizit, individuell im Konfigurationscode oder einer XML-Konfigurationsdatei aufgeführt sein. Web Beans unterstützt die Web Bean "
-"Definition und Konfiguration via XML, aber im gängigen Fall, in dem keine komplexe Konfiguration erforderlich ist, gestatten Deployment-Types die Aktivierung eines gesamten Satzes von Web Beans mittels einer einzigen XML-Zeile. Währenddessen kann ein den Code durchsehender Entwickler leicht einsehen, in welchen Deployment-Szenarien das Web Bean eingesetzt wird."
+"Leider können aufgrund von Einschränkungen von Java einige Java-Typen nicht "
+"vom Web Bean Manager geproxiet werden. Daher meldet der Web Bean Manager "
+"eine <literal>UnproxyableDependencyException</literal>, wenn der Typ eines "
+"Einspeisungspunkts nicht geproxiet werden kann."
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "Beispiel Deployment-Typen"
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "Deployment-Typen sind hilfreich für allerlei Dinge, hier sind ein paar Beispiele: "
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr ""
+"Die folgenden Java-Typen können nicht durch den Web Bean Manager geproxiet "
+"werden:"
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
+#: injection.xml:411
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
-msgstr "<literal>@Mock</literal> und <literal>@Staging</literal> Deployment-Typen zu Testzwecken "
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr ""
+"Klassen, die keinen nicht-privaten Konstruktor ohne Parameter besitzen sowie "
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "<literal>@AustralianTaxLaw</literal> für site-spezifische Web Beans"
-
-#. Tag: para
-#: injection.xml:297
-#, no-c-format
 msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
-msgstr "<literal>@SeamFramework</literal>, <literal>@Guice</literal> für Frameworks Dritter, die auf Web Beans bauen"
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"Als <literal>final</literal> deklarierte Klassen oder die eine "
+"<literal>final</literal>-Methode besitzen,"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
-msgstr "<literal>@Standard</literal> für standardmäßige, durch die Web Beans Spezifikation definierte Web Beans "
+msgid "arrays and primitive types."
+msgstr "Arrays und primitive Typen."
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "Ihnen fallen sicher noch andere Anwendungen ein..."
-
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "Unbefriedigende Abhängigkeiten beheben"
-
-#. Tag: para
-#: injection.xml:315
-#, no-c-format
+#: injection.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
-msgstr "Der typensichere Auflösungsalgorithmus schlägt fehl, wenn - nach Betrachtung der Binding-Annotationen und der Deployment-Typen aller den API-Typ implementierender Web Beans eines Einspeisungspunktes - der Web Bean Manager nicht dazu in der Lage ist, ein einzuspeisendes Web Bean zu identifizieren."
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"Es ist in der Regel ganz leicht eine "
+"<literal>UnproxyableDependencyException</literal> zu beheben. Fügen Sie der "
+"eingespeisten Klasse einfach einen Konstruktor ohne Parameters hinzu, führen "
+"Sie ein Interface ein oder ändern Sie den Gelstungsbereich des eingespeisten "
+"Web Bean zu <literal>@Dependent</literal>."
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:430
 #, no-c-format
 msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
 msgstr ""
-"Es ist in der Regel einfach, Probleme mit einer <literal>UnsatisfiedDependencyException</"
-"literal> oder <literal>AmbiguousDependencyException</literal> zu beheben."
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:437
 #, no-c-format
 msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point &#151; or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
-msgstr "Um eine <literal>UnsatisfiedDependencyException</literal> zu beheben, stellen Sie einfach ein Web Bean bereit, das den API-Typ implementiert und die Binding-Typen des Einspeisungspunkts besitzt&#151; oder aktivieren Sie den Deployment-Typ eines Web Beans, das den API-Typ bereits implementiert und die Binding-Typen besitzt."
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:442
 #, no-c-format
 msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
-msgstr "Um eine <literal>AmbiguousDependencyException</literal> zu beheben, führen Sie einen Binding-Typ ein, um zwischen den beiden Implementierungen des API-Typs zu unterscheiden oder ändern Sie den Deployment-Typ einer der Implementierungen damit der Web Bean Manager Deployment-Typ Präzedenz zur Auswahl zwischen den beiden verwenden kann. Eine <literal>AmbiguousDependencyException</literal> kann nur vorkommen, wenn zwei Web Beans sich einen Binding-Typ teilen und genau denselben Deployment-Typ besitzen."
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:448
 #, no-c-format
-msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
-msgstr "Es gibt eine weitere Sache, derer man sich bei der Verwendung von \"Dependency\"-Einspeisung in Web Beans gewahr sein sollte."
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "Client-Proxies"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "Erhalt eines Web Beans durch programmatsichen \"Lookup\""
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
 msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
 msgstr ""
-"Clients eines eingespeisten Web Beans enthalten in der Regel keinen direkten Verweis an eine "
-"Web Bean Instanz."
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
-msgstr "Stellen wir uns vor, ein an den Geltungsbereich der Anwendung gebundenes Web Bean hielte einen direkten Verweis auf ein an den Geltungsbereich der Anfrage gebundenes Web Bean. Das an den Geltungsbereich der Anwendung gebundene Web Bean wird von vielen verschiedenen Anfragen geteilt. Jedoch sollte jede Anfrage eine andere Instanz des an den Geltungsbereich der Anfrage gebundenen Web Beans sehen!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
 msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
-msgstr "Stellen Sie sich nun vor das an den Geltungsbereich der Session gebundene Web Bean hielte einen direkten Verweis auf ein an den Geltungsbereich der Anwendung gebundenes Web Bean. FVon Zeit zu Zeit wird der Session Kontext auf Disk serialisiert, um den Speicher effizienter zu nutzen. Die durch den Geltungsbereich der Anwendung begrenzte Instanz des Web Beans sollte jedoch nicht mit dem durch den Geltungsbereich der Session begrenzetn Web Bean serialisiert werden!"
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
+msgid "we would like to iterate over all beans of a certain type."
 msgstr ""
-"Daher muss der Web Bean Manageralle eingespeisten Verweise auf das Web Bean durch ein Proxy-Objekt einleiten, wenn das Web Bean nicht den Standard-Geltungsbereich <literal>@Dependent</"
-"literal> besitzt. Dieser <emphasis>Client-Proxy</emphasis> ist verantwortlich dafür sicher zu stellen, dass die einen Methodenaufruf erhaltende Web Bean Instanz, die mit dem aktuellen Kontext assoziierte ist. Der "
-"Client-Proxy gestattet außerdem die Serialisierung auf Disk von an Kontexte gebundenen Web Beans, ohne dass"
-"rekursiv andere eingespeiste Web Beans serialisiert werden."
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
+#: injection.xml:482
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
-msgstr "Leider können aufgrund von Einschränkungen von Java einige Java-Typen nicht vom Web Bean Manager geproxiet werden. Daher meldet der Web Bean Manager eine <literal>UnproxyableDependencyException</literal>, wenn der Typ eines Einspeisungspunkts nicht geproxiet werden kann."
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"Die Anwendung kann durch Einspeisung eine Instanz des Interface "
+"<literal>Manager</literal> erhalten:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "Die folgenden Java-Typen können nicht durch den Web Bean Manager geproxiet werden:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
+#: injection.xml:489
+#, fuzzy, no-c-format
 msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
-msgstr "Als <literal>final</literal> deklarierte Klassen oder die eine <literal>final</literal>-Methode besitzen,"
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"<literal>@Mock</literal> und <literal>@Staging</literal> Deployment-Typen zu "
+"Testzwecken "
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "Klassen, die keinen nicht-privaten Konstruktor ohne Parameter besitzen sowie "
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "Arrays und primitive Typen."
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
+#: injection.xml:504
+#, fuzzy, no-c-format
 msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
-"Es ist in der Regel ganz leicht eine <literal>UnproxyableDependencyException</"
-"literal> zu beheben. Fügen Sie der eingespeisten Klasse einfach einen Konstruktor ohne Parameters hinzu, "
-"führen Sie ein Interface ein oder ändern Sie den Gelstungsbereich des eingespeisten Web Bean zu "
-"<literal>@Dependent</literal>."
+"Einfache Web Beans unterstützen nur die <literal>@PostConstruct</literal> "
+"und <literal>@PreDestroy</literal> Callbacks."
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "Erhalt eines Web Beans durch programmatsichen \"Lookup\""
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
-msgstr "Die Anwendung kann durch Einspeisung eine Instanz des Interface <literal>Manager</literal> erhalten:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
-msgstr "Das <literal>Manager</literal>-Objekt liefert einen Satz von Methoden zum programmatischen Erhalt einer Web Bean Instanz."
-
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
 msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
-msgstr "Binding-Annotationen können durch Subklassifizierung der Helferklasse <literal>AnnotationLiteral</literal> festgelegt werden, da es ansonsten schwierig ist, einen Annotationstyp in Java zu instantiieren."
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to "
-"create a named subclass:"
-msgstr "Besitzt der Binding-Typ ein Annotationsmitglied, so können wir keine anonyme Unterklasse von <literal>AnnotationLiteral</literal> &#151; verwenden - stattdessen werden wir eine benannte Unterklasse erstellen müssen:"
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
 "class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
+#. Tag: para
+#: injection.xml:542
 #, no-c-format
 msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
-"Lebenszyklus-Callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"und <literal>@PersistenceContext</literal>"
 
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:547
 #, no-c-format
 msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
-msgstr "Enterprise Web Beans unterstützen alle durch die EJB-Spezifikation definierten Lebenszyklus-Callbacks: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> und <literal>@PostActivate</literal>."
-
-#. Tag: para
-#: injection.xml:426
-#, no-c-format
-msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
 msgstr ""
-"Einfache Web Beans unterstützen nur die <literal>@PostConstruct</literal> und "
-"<literal>@PreDestroy</literal> Callbacks."
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
 msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
 msgstr ""
-"Sowohl Enterprise als auch einfache Web Beans unterstützen den Gebrauch von <literal>@Resource</"
-"literal>, <literal>@EJB</literal> und <literal>@PersistenceContext</literal> "
-"zur Einspeisung von Java EE Ressourcen bzw. EJBs und JPA-Persistenzkontexten. Einfache Web Beans unterstützen den Gebrauch von <literal>@PersistenceContext(type=EXTENDED)</literal> nicht."
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
-msgstr "Der <literal>@PostConstruct</literal>-Callback erfolgt immer, nachdem alle Abhängigkeiten eingespeist wurden."
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "Das <literal>InjectionPoint</literal>-Objekt"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
+#: injection.xml:558
+#, fuzzy, no-c-format
 msgid ""
-"There are certain kinds of dependent objects &#151; Web Beans with scope "
-"<literal>@Dependent</literal> &#151; that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
 msgstr ""
-"Es gibt bestimmte Arten abhängiger Objekte &#151; Web Beans mit Geltungsbereich "
-"<literal>@Dependent</literal> &#151; die etwas über das Objekt oder den Einspeisungspunkt in die sie eingespeist werden wissen müssen, um ihre Aufgabe zu erledigen. Zum Beispiel: "
+"Es gibt bestimmte Arten abhängiger Objekte &#151; Web Beans mit "
+"Geltungsbereich <literal>@Dependent</literal> &#151; die etwas über das "
+"Objekt oder den Einspeisungspunkt in die sie eingespeist werden wissen "
+"müssen, um ihre Aufgabe zu erledigen. Zum Beispiel: "
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
 msgid ""
 "The log category for a <literal>Logger</literal> depends upon the class of "
 "the object that owns it."
-msgstr "Die Protokollkategorie für einen <literal>Logger</literal> hängt von der Klasse des sie besitzenden Objekts ab."
+msgstr ""
+"Die Protokollkategorie für einen <literal>Logger</literal> hängt von der "
+"Klasse des sie besitzenden Objekts ab."
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
 msgid ""
 "Injection of a HTTP parameter or header value depends upon what parameter or "
 "header name was specified at the injection point."
-msgstr "Die Einspeisung eines HTTP-Parameters oder Header-Werts hängt davon ab, welcher Parameter oder Header-Name am Einspeisungspunkt festgelegt wurde."
+msgstr ""
+"Die Einspeisung eines HTTP-Parameters oder Header-Werts hängt davon ab, "
+"welcher Parameter oder Header-Name am Einspeisungspunkt festgelegt wurde."
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
 msgid ""
 "Injection of the result of an EL expression evaluation depends upon the "
 "expression that was specified at the injection point."
-msgstr "Einspeisung als Ergebnis der Evaluierung eines EL-Ausdrucks hängt von vom am Einspeisungspunkt festgelegten Ausdruck ab."
+msgstr ""
+"Einspeisung als Ergebnis der Evaluierung eines EL-Ausdrucks hängt von vom am "
+"Einspeisungspunkt festgelegten Ausdruck ab."
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
+#: injection.xml:577
+#, fuzzy, no-c-format
 msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
 "injection point to which it belongs."
-msgstr "Ein Web Bean mit Geltungsbereich <literal>@Dependent</literal> kann eine Instanz von <literal>InjectionPoint</literal> einspeisen und auf Metadaten zugreifen, die mit dem zugehörigen Einspeisungspunkt zu tun haben."
+msgstr ""
+"Ein Web Bean mit Geltungsbereich <literal>@Dependent</literal> kann eine "
+"Instanz von <literal>InjectionPoint</literal> einspeisen und auf Metadaten "
+"zugreifen, die mit dem zugehörigen Einspeisungspunkt zu tun haben."
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
 msgid ""
 "Let's look at an example. The following code is verbose, and vulnerable to "
 "refactoring problems:"
-msgstr "Sehen wir uns ein Beispiel an. Der folgende Code ist umfangreich und empfänglich für Refaktorierungsprobleme:"
+msgstr ""
+"Sehen wir uns ein Beispiel an. Der folgende Code ist umfangreich und "
+"empfänglich für Refaktorierungsprobleme:"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
 msgid ""
 "This clever little producer method lets you inject a JDK <literal>Logger</"
 "literal> without explicitly specifying the log category:"
 msgstr ""
-"Diese schlaue kleine Producer-Methode gestattet die Einspeisung eines JDK <literal>Logger</"
-"literal>, ohne dass explizit eine Protokollkategorie festgelegt werden müsste:"
+"Diese schlaue kleine Producer-Methode gestattet die Einspeisung eines JDK "
+"<literal>Logger</literal>, ohne dass explizit eine Protokollkategorie "
+"festgelegt werden müsste:"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
@@ -1296,27 +1355,30 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "Wir können jetzt schreiben:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
+#: injection.xml:595
+#, fuzzy, no-c-format
 msgid ""
 "Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
-msgstr "Sie sind noch nicht ganz überzeugt? Dann sehen Sie sich ein weiteres Beispiel an. Zur Einspeisung von HTTP-Parametern müssen wir einen Binding-Typ festlegen:"
+"need to define a qualifier type:"
+msgstr ""
+"Sie sind noch nicht ganz überzeugt? Dann sehen Sie sich ein weiteres "
+"Beispiel an. Zur Einspeisung von HTTP-Parametern müssen wir einen Binding-"
+"Typ festlegen:"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1334,13 +1396,14 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
-msgstr "Wir würden diesen Binding-Typ an Einspeisungspunkten wie folgt verwenden:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
+msgstr ""
+"Wir würden diesen Binding-Typ an Einspeisungspunkten wie folgt verwenden:"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1350,13 +1413,13 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "Die folgende Producer-Methode erledigt die Arbeit:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
@@ -1380,26 +1443,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
+#: injection.xml:608
+#, fuzzy, no-c-format
 msgid ""
 "(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
+"literal> annotation is ignored by the container since it is annotated "
 "<literal>@NonBinding.</literal>)"
 msgstr ""
-"(Beachten Sie, dass das <literal>value()</literal>-Mitglied der <literal>HttpParam</"
-"literal>-Annotation vom Web Bean Manager wird, da es mit <literal>@NonBinding.</literal> annotiert ist)"
+"(Beachten Sie, dass das <literal>value()</literal>-Mitglied der "
+"<literal>HttpParam</literal>-Annotation vom Web Bean Manager wird, da es mit "
+"<literal>@NonBinding.</literal> annotiert ist)"
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
+#: injection.xml:611
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
+"The container provides a built-in bean that implements the "
 "<literal>InjectionPoint</literal> interface:"
-msgstr "Der Web Bean Manager liefert ein eingebautes Web Bean, das das <literal>InjectionPoint</literal>-Interface implementiert:"
+msgstr ""
+"Der Web Bean Manager liefert ein eingebautes Web Bean, das das "
+"<literal>InjectionPoint</literal>-Interface implementiert:"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1418,3 +1484,573 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr ""
+#~ "Web Beans unterstützt drei primäre Mechanismen für \"Dependency\"-"
+#~ "Einspeisung:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Konstruktorparameter-Einspeisung:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "Die Einspeisung von Konstruktorparametern wird für EJB-Beans nicht "
+#~ "unterstützt, da das EJB durch den EJB-Container und nicht den Web Bean "
+#~ "Manager instantiiert wird."
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "Parameter von Konstruktoren und Initialisierermethoden müssen nicht "
+#~ "explizit annotiert werden, wenn der standardmäßige Binding-Typ "
+#~ "<literal>@Current</literal> gilt.Eingespeiste Felder jedoch "
+#~ "<emphasis>müssen</emphasis> einen Binding-Typ festlegen, selbst wenn der "
+#~ "standardmäßige Binding-Typ gilt. Legt das Feld keinen standardmäßige "
+#~ "Binding-Typ fest, so wird es nicht eingespeist."
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "Producer-Methoden unterstützen Parametereinspeisung ebenfalls:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "Observer-Methoden (auf die wir in <xref linkend=\"events\"/> näher "
+#~ "eingehen), \"Disposal\"-Methoden und \"Destructor\"-Methoden unterstützen "
+#~ "allesamt die Parametereinspeisung."
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "Einer Implementierung eines API mittels <emphasis>Deployment-Typ "
+#~ "Präzedenz</emphasis> (\"Deployment Type Precedence\") gestatten, zum "
+#~ "Deployment-Zeitpunkt eine andere Implementerung desselben API außer Kraft "
+#~ "zu setzen, ohne dass dies zu Änderungen am Client führt.."
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Schauen wir uns jetzt näher an, wie der Web Beans Manager ein "
+#~ "einzuspeisendes Web Bean bestimmt."
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "Binding-Annotationen mit Mitgliedern"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "Binding-Annotationen können Mitglieder besitzen:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "Wobei in diesem Fall der Mitgliederwert von Bedeutung ist:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "Kombinationen von Binding-Annnotationen"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "Binding-Annotationen und Producer-Methoden"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "Sogar Producer-Methoden können Binding-Annotationen festlegen:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "Der standardmäßige Binding-Typ"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beans definiert einen Binding-Typ <literal>@Current</literal>, der "
+#~ "der standardmäßige Binding-Typ für jeden Einspeisungspunkt oder Web Bean "
+#~ "ist, der nicht explizit einen  Binding-Typ festlegt."
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "Es existieren zwei gängige Umstände, bei denen es notwendig ist, "
+#~ "<literal>@Current</literal> festzulegen:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "An einem Feld, um es als eingespeistes Feld zu deklarieren mit dem "
+#~ "standardmäßigen Binding-Typ und "
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "an einem Web Bean, das neben dem standardmäßigen Binding-Type einen "
+#~ "weiteren Binding-Typ besitzt."
+
+#~ msgid "Deployment types"
+#~ msgstr "Deployment Typen"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "Alle Web Beans besitzen einen <emphasis>Deployment-Typ</emphasis>. Jeder "
+#~ "Deployment-Typ identifiziert einen Satz von Web Beans mit Vorbehalt in "
+#~ "einigen Deployments des Systems installiert werden sollten."
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "Zum Beispiel könnten wir einen Deployment-Typ namens <literal>@Mock</"
+#~ "literal> definieren, der Web Beans identifiziert, die nur installiert "
+#~ "werden sollen, wenn das System innerhalb einer Integrationstestumgebung "
+#~ "ausgeführt wird:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "Nehmen wir an, wir hätten ein Web Bean, das mit einem externen System "
+#~ "interagiert, um Zahlungen zu bearbeiten:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "Da dieses Web Bean nicht explizit einen Deployment-Typ festlegt gilt der "
+#~ "standardmäßige Deployment-Typ <literal>@Production</literal>."
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "Für Integration oder das Testen von Einheiten ist das externe System "
+#~ "langsam oder nicht verfügbar. Daher würden wir ein \"Mock\"-Objekt "
+#~ "erstellen:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "Wie aber bestimmt der Web Bean Manager, welche Implementierung in einem "
+#~ "bestimmten Deployment verwendet werden soll?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "Aktivierung von Deployment-Typen"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beans definieren zwei eingebaute Deployment-Typen: "
+#~ "<literal>@Production</literal> und <literal>@Standard</literal>. "
+#~ "Standardmäßig sind nur Web Beans mit den eingebauten Deployment-Typen bei "
+#~ "Deployment des Systems aktiviert. Wir können weitere Deployment-Typen "
+#~ "identifizieren, die bei einem bestimmten Deployment aktiviert werden "
+#~ "sollen, indem wir diese in <literal>web-beans.xml</literal> aufführen."
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "Kehren wir zu unserem Beispiel zurück, wenn wir Integrationsstests "
+#~ "deployen und wir möchten, dass alle unsere <literal>@Mock</literal>-"
+#~ "Objekte installiert werden:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "Jetzt identifiziert und installiert der Web Bean Manager alle mit "
+#~ "<literal>@Production</literal>, <literal>@Standard</literal> oder "
+#~ "<literal>@Mock</literal> annotierten Web Beans zum Zeitpunkt des "
+#~ "Deployments."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "Der Deployment-Typ <literal>@Standard</literal> wird nur für bestimmte, "
+#~ "spezielle durch die Web Beans Spezifikation definierte Web Beans "
+#~ "verwendet. Wir können ihn nicht für unsere eigenen Web Beans benutzen und "
+#~ "wir können ihn nicht deaktivieren."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "Der Deployment-Typ <literal>@Production</literal> ist der standardmäßige "
+#~ "Deployment-Typ für Web Beans, die keinen expliziten Deployment-Typ "
+#~ "festlegen oder deaktiviert sind."
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Deployment-Typ Präzedenz"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "Wenn Sie aufgepasst haben, fragen Sie sich jetzt wahrscheinlich, wie der "
+#~ "Web Bean Manager entscheidet, welche Implementierung &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> oder "
+#~ "<literal>MockPaymentProcessor</literal> &#151; er wählt. Überlegen Sie "
+#~ "sich, was passiert, wenn der Manager auf diesen Einspeisungspunkt trifft:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "Es gibt jetzt zwei Web Beans, die den <literal>PaymentProcessor</literal>-"
+#~ "Vertrag erfüllen. Natürlich können wir keine Binding-Annotation zur "
+#~ "eindeutig Machung verwenden, da Binding-Annotationen in die Quelle am "
+#~ "Einspeisungspunkt hardcodiert und wir wollen, dass der Manager zum "
+#~ "Deployment-Zeotpunkt entscheiden können soll!"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "Die Lösung dieses Problems ist, dass jeder Deployment-Typ eine andere "
+#~ "<emphasis>Präzendenz</emphasis> besitzt. Die Präzendenz der Deployment-"
+#~ "Typen wird durch die Reihenfolge, in der sie in <literal>web-beans.xml</"
+#~ "literal> erscheinen, festgelegt. In unserem Beispiel erscheint "
+#~ "<literal>@Mock</literal> später als <literal>@Production</literal>, so "
+#~ "dass es eine höhere Präzendenz besitzt."
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "Findet der Manager mehr als ein Web Bean, das den von einem "
+#~ "Einspeisungspunkt festgelegten Vertrag erfüllt (API-Typ plus Binding-"
+#~ "Annotationen), so gilt die relative Präzedenz der Web Beans. Besitzt "
+#~ "eines eine höhere Präzedenz als andere, so wird es für die Einspeisung "
+#~ "gewählt. In unserem Beispiel speist der Web Bean Manager also "
+#~ "<literal>MockPaymentProcessor</literal> bei der Ausführung unserer "
+#~ "Integrationstestumgebung aus (und das ist es auch, was wir möchten)."
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "Es ist interessant dies mit den heutzutage beliebten Manager "
+#~ "Architekturen zu vergleichen. Verschiedene \"leichtgewichtige\" Container "
+#~ "gestatten uns auch das bedingte Deployment von im Klassenpfad "
+#~ "existierenden Klassen, aber Klassen, die deployt werden sollen müssen "
+#~ "explizit, individuell im Konfigurationscode oder einer XML-"
+#~ "Konfigurationsdatei aufgeführt sein. Web Beans unterstützt die Web Bean "
+#~ "Definition und Konfiguration via XML, aber im gängigen Fall, in dem keine "
+#~ "komplexe Konfiguration erforderlich ist, gestatten Deployment-Types die "
+#~ "Aktivierung eines gesamten Satzes von Web Beans mittels einer einzigen "
+#~ "XML-Zeile. Währenddessen kann ein den Code durchsehender Entwickler "
+#~ "leicht einsehen, in welchen Deployment-Szenarien das Web Bean eingesetzt "
+#~ "wird."
+
+#~ msgid "Example deployment types"
+#~ msgstr "Beispiel Deployment-Typen"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "Deployment-Typen sind hilfreich für allerlei Dinge, hier sind ein paar "
+#~ "Beispiele: "
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr "<literal>@AustralianTaxLaw</literal> für site-spezifische Web Beans"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> für "
+#~ "Frameworks Dritter, die auf Web Beans bauen"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal> für standardmäßige, durch die Web Beans "
+#~ "Spezifikation definierte Web Beans "
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "Ihnen fallen sicher noch andere Anwendungen ein..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "Es ist in der Regel einfach, Probleme mit einer "
+#~ "<literal>UnsatisfiedDependencyException</literal> oder "
+#~ "<literal>AmbiguousDependencyException</literal> zu beheben."
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "Um eine <literal>UnsatisfiedDependencyException</literal> zu beheben, "
+#~ "stellen Sie einfach ein Web Bean bereit, das den API-Typ implementiert "
+#~ "und die Binding-Typen des Einspeisungspunkts besitzt&#151; oder "
+#~ "aktivieren Sie den Deployment-Typ eines Web Beans, das den API-Typ "
+#~ "bereits implementiert und die Binding-Typen besitzt."
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "Um eine <literal>AmbiguousDependencyException</literal> zu beheben, "
+#~ "führen Sie einen Binding-Typ ein, um zwischen den beiden "
+#~ "Implementierungen des API-Typs zu unterscheiden oder ändern Sie den "
+#~ "Deployment-Typ einer der Implementierungen damit der Web Bean Manager "
+#~ "Deployment-Typ Präzedenz zur Auswahl zwischen den beiden verwenden kann. "
+#~ "Eine <literal>AmbiguousDependencyException</literal> kann nur vorkommen, "
+#~ "wenn zwei Web Beans sich einen Binding-Typ teilen und genau denselben "
+#~ "Deployment-Typ besitzen."
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "Das <literal>Manager</literal>-Objekt liefert einen Satz von Methoden zum "
+#~ "programmatischen Erhalt einer Web Bean Instanz."
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "Binding-Annotationen können durch Subklassifizierung der Helferklasse "
+#~ "<literal>AnnotationLiteral</literal> festgelegt werden, da es ansonsten "
+#~ "schwierig ist, einen Annotationstyp in Java zu instantiieren."
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "Besitzt der Binding-Typ ein Annotationsmitglied, so können wir keine "
+#~ "anonyme Unterklasse von <literal>AnnotationLiteral</literal> &#151; "
+#~ "verwenden - stattdessen werden wir eine benannte Unterklasse erstellen "
+#~ "müssen:"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "Lebenszyklus-Callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> und <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "Enterprise Web Beans unterstützen alle durch die EJB-Spezifikation "
+#~ "definierten Lebenszyklus-Callbacks: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> und "
+#~ "<literal>@PostActivate</literal>."
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "Sowohl Enterprise als auch einfache Web Beans unterstützen den Gebrauch "
+#~ "von <literal>@Resource</literal>, <literal>@EJB</literal> und "
+#~ "<literal>@PersistenceContext</literal> zur Einspeisung von Java EE "
+#~ "Ressourcen bzw. EJBs und JPA-Persistenzkontexten. Einfache Web Beans "
+#~ "unterstützen den Gebrauch von <literal>@PersistenceContext(type=EXTENDED)"
+#~ "</literal> nicht."
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "Der <literal>@PostConstruct</literal>-Callback erfolgt immer, nachdem "
+#~ "alle Abhängigkeiten eingespeist wurden."

Modified: doc/trunk/reference/de-DE/interceptors.po
===================================================================
--- doc/trunk/reference/de-DE/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: interceptors\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-15 19:11+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,65 +16,68 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "Interzeptoren"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
+#: interceptors.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
-msgstr "Web Beans verwenden die grundlegende Interzeptor-Architektur von EJB 3.0, wobei die Funktionalität in zwei Richtungen erweitert wird:"
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web Beans bieten eine fortgeschrittenere auf Annotationen basierende "
+"Vorgehensweise bei der Bindung von Interzeptoren an Web Beans."
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "Jedes Web Bean kann Interzeptoren besitzen, nicht nur Session Beans."
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
+#: interceptors.xml:12
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
-msgstr "Web Beans bieten eine fortgeschrittenere auf Annotationen basierende Vorgehensweise bei der Bindung von Interzeptoren an Web Beans."
+"The Interceptors specification defines two kinds of interception points:"
+msgstr ""
+"Die EJB-Spezifikation definiert zwei Arten von Abfangpunkten (sog. "
+"\"Interception Points\"):"
 
 #. Tag: para
-#: interceptors.xml:22
+#: interceptors.xml:18
 #, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
-msgstr "Die EJB-Spezifikation definiert zwei Arten von Abfangpunkten (sog. \"Interception Points\"):"
-
-#. Tag: para
-#: interceptors.xml:26
-#, no-c-format
 msgid "business method interception, and"
 msgstr "Business Methoden Interception und"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "Lebenszyklus-Callback Interception."
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr ""
+"Die EJB-Spezifikation definiert zwei Arten von Abfangpunkten (sog. "
+"\"Interception Points\"):"
+
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
-msgstr "Ein <emphasis>Business Methoden Interzeptor</emphasis> gilt für Aufrufe von Methoden des Web Beans durch Clients des Web Beans:"
+"methods of the bean by clients of the bean:"
+msgstr ""
+"Ein <emphasis>Business Methoden Interzeptor</emphasis> gilt für Aufrufe von "
+"Methoden des Web Beans durch Clients des Web Beans:"
 
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -84,20 +87,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
 "of lifecycle callbacks by the container:"
-msgstr "Ein <emphasis>Lebenszyklus Callback-Interzeptor</emphasis> gilt für Aufrufe von Lebenszyklus Callbacks durch den Container:"
+msgstr ""
+"Ein <emphasis>Lebenszyklus Callback-Interzeptor</emphasis> gilt für Aufrufe "
+"von Lebenszyklus Callbacks durch den Container:"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
@@ -111,28 +116,59 @@
 msgid ""
 "An interceptor class may intercept both lifecycle callbacks and business "
 "methods."
-msgstr "Eine Interzeptorklasse kann sowohl Lebenszyklus-Callbacks als auch Business-Methoden abfangen."
+msgstr ""
+"Eine Interzeptorklasse kann sowohl Lebenszyklus-Callbacks als auch Business-"
+"Methoden abfangen."
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"Ein <emphasis>Lebenszyklus Callback-Interzeptor</emphasis> gilt für Aufrufe "
+"von Lebenszyklus Callbacks durch den Container:"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "Interzeptor-Bindings"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
+#: interceptors.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "Nehmen wir an, wir wollten deklarieren, dass einige unserer Web Beans transaktional sind. Das erste, was wir benötigen ist eine <emphasis>Interzeptor bindende Annotation</emphasis>, um festzulegen, für welches Web Bean wir uns interessieren:"
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"Nehmen wir an, wir wollten deklarieren, dass einige unserer Web Beans "
+"transaktional sind. Das erste, was wir benötigen ist eine "
+"<emphasis>Interzeptor bindende Annotation</emphasis>, um festzulegen, für "
+"welches Web Bean wir uns interessieren:"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -143,15 +179,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
 "transactional object:"
-msgstr "Jetzt können wir ganz leicht unser <literal>ShoppingCart</literal> als ein transaktionales Objekt festlegen:"
+msgstr ""
+"Jetzt können wir ganz leicht unser <literal>ShoppingCart</literal> als ein "
+"transaktionales Objekt festlegen:"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -161,17 +199,19 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
-msgstr "Oder, falls uns das lieber ist, können wir festlegen, dass nur eine Methode transaktional ist:"
+msgstr ""
+"Oder, falls uns das lieber ist, können wir festlegen, dass nur eine Methode "
+"transaktional ist:"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -179,31 +219,33 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "Implementierung von Interzeptoren"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
+#: interceptors.xml:81
+#, fuzzy, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
 msgstr ""
-"Das ist toll, aber irgendwann müssen wir den den Managementaspekt dieser Transaktion liefert, implementieren. "
-"Wir müssen nur einen standardmäßigen EJB-Interzeptor erstellen und ihn mit "
-"<literal>@Interceptor</literal> und <literal>@Transactional</literal> annotieren."
+"Das ist toll, aber irgendwann müssen wir den den Managementaspekt dieser "
+"Transaktion liefert, implementieren. Wir müssen nur einen standardmäßigen "
+"EJB-Interzeptor erstellen und ihn mit <literal>@Interceptor</literal> und "
+"<literal>@Transactional</literal> annotieren."
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -214,23 +256,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
-msgstr "Bei allen Web Beans Interzeptoren handelt es sich um einfache Web Beans und sie können \"Dependency\"-Einspeisung und kontextuelles Lebenszyklus-Management nutzen."
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
@@ -246,116 +287,136 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
-msgstr "Mehrere Interzeptoren können denselben Interzeptor Binding-Typ verwenden."
+msgstr ""
+"Mehrere Interzeptoren können denselben Interzeptor Binding-Typ verwenden."
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "Interzeptoren aktivieren"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
-msgstr "Schließlich müssen wir unseren Interzeptor in <literal>web-beans.xml</literal> <emphasis>aktivieren</emphasis>."
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "Puh! Warum diese Suppe an Klammern?"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "Nun, die XML-Deklaration löst zwei Probleme:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
 "system, ensuring deterministic behavior, and"
-msgstr "Sie ermöglicht es uns, eine totale Reihenfolge für alle Interzeptoren in unserem System festzulegen, wodurch deterministisches Verhalten festgelegt wird und "
+msgstr ""
+"Sie ermöglicht es uns, eine totale Reihenfolge für alle Interzeptoren in "
+"unserem System festzulegen, wodurch deterministisches Verhalten festgelegt "
+"wird und "
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
-msgstr "Interzeptor-Klassen zum Zeitpunkt des Deployments aktiviert oder deaktiviert werden können."
+msgstr ""
+"Interzeptor-Klassen zum Zeitpunkt des Deployments aktiviert oder deaktiviert "
+"werden können."
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
+#: interceptors.xml:130
+#, fuzzy, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
+"transaction interceptor."
 msgstr ""
-"Zum Beispiel könnten wir festlegen, dass unser Sicherheitsinterzeptor vor unserem "
-"<literal>TransactionInterceptor</literal> ausgeführt wird."
+"Zum Beispiel könnten wir festlegen, dass unser Sicherheitsinterzeptor vor "
+"unserem <literal>TransactionInterceptor</literal> ausgeführt wird."
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "Oder wir könnten sie beide in unserer Testumgebung abschalten!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "Interzeptor-Bindings mit Mitgliedern"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
 "<literal>@Transactional</literal> annotation:"
-msgstr "Nehmen wir an, wir wollten unserer <literal>@Transactional</literal>-Annotation weitere Informationen hinzufügen:"
+msgstr ""
+"Nehmen wir an, wir wollten unserer <literal>@Transactional</literal>-"
+"Annotation weitere Informationen hinzufügen:"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -366,21 +427,26 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
+#: interceptors.xml:150
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beans verwendet den Wert von <literal>requiresNew</literal> zur Auswahl zwischen zwei verschiedenen Interzeptoren <literal>TransactionInterceptor</literal> und <literal>RequiresNewTransactionInterceptor</literal> auszuwählen."
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beans verwendet den Wert von <literal>requiresNew</literal> zur Auswahl "
+"zwischen zwei verschiedenen Interzeptoren <literal>TransactionInterceptor</"
+"literal> und <literal>RequiresNewTransactionInterceptor</literal> "
+"auszuwählen."
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -391,41 +457,48 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
 "this:"
-msgstr "Jetzt können wir <literal>RequiresNewTransactionInterceptor</literal> wie folgt verwenden:"
+msgstr ""
+"Jetzt können wir <literal>RequiresNewTransactionInterceptor</literal> wie "
+"folgt verwenden:"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
+#: interceptors.xml:163
+#, fuzzy, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
-msgstr "Was aber, wenn wir über nur einen Interzeptor verfügen und wir wollen, dass der Manager bei der Bindung der Interzeptoren den Wert von <literal>requiresNew</literal> ignoriert? Wir können die <literal>@NonBinding</literal>-Annotation verwenden:"
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"Was aber, wenn wir über nur einen Interzeptor verfügen und wir wollen, dass "
+"der Manager bei der Bindung der Interzeptoren den Wert von "
+"<literal>requiresNew</literal> ignoriert? Wir können die "
+"<literal>@NonBinding</literal>-Annotation verwenden:"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -436,25 +509,27 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "Multiple Interzeptor bindende Annotationen"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
+#: interceptors.xml:176
+#, fuzzy, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
 msgstr ""
-"In der Regel verwenden wir Kombinationen von Interzeptor-Binding-Typen, um mehrere Interzeptoren an ein Web Bean zu binden. Folgende Deklaration etwa würde verwendet, um <literal>TransactionInterceptor</literal> und "
+"In der Regel verwenden wir Kombinationen von Interzeptor-Binding-Typen, um "
+"mehrere Interzeptoren an ein Web Bean zu binden. Folgende Deklaration etwa "
+"würde verwendet, um <literal>TransactionInterceptor</literal> und "
 "<literal>SecurityInterceptor</literal> an dasselbe Web Bean zu binden:"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -464,15 +539,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
 "combination of interceptor binding types:"
-msgstr "In sehr komplexen Fällen aber kann ein Interzeptor selbst eine Kombination von Interzeptor-Binding-Typen festlegen:"
+msgstr ""
+"In sehr komplexen Fällen aber kann ein Interzeptor selbst eine Kombination "
+"von Interzeptor-Binding-Typen festlegen:"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -482,19 +559,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
 "method using any one of the following combinations:"
-msgstr "Dann könnte dieser Interzeptor an die <literal>checkout()</literal>-Methode gebunden werden, indem eine der folgenden Kombinationen verwendet wird:"
+msgstr ""
+"Dann könnte dieser Interzeptor an die <literal>checkout()</literal>-Methode "
+"gebunden werden, indem eine der folgenden Kombinationen verwendet wird:"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -502,12 +581,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -516,12 +595,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -530,12 +609,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -544,43 +623,53 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "Vererbung von Interzeptor-Binding-Typen"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
 "annotation inheritance. Really, annotations should have reuse built in, to "
 "allow this kind of thing to work:"
-msgstr "Eine Einschränkung des Java Sprach-Supports für Annotationen ist das Fehlen von Annotationsvererbung. Eigentlich sollten Annotationen eine eingebaute Wiederverwendung besitzen, damit diese Art von Sache funktioniert:"
+msgstr ""
+"Eine Einschränkung des Java Sprach-Supports für Annotationen ist das Fehlen "
+"von Annotationsvererbung. Eigentlich sollten Annotationen eine eingebaute "
+"Wiederverwendung besitzen, damit diese Art von Sache funktioniert:"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
+#: interceptors.xml:216
+#, fuzzy, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "Nun, zum Glück umgeht Web Beans dieses fehlende Feature von Java. Wir können einen Interzeptor Binding-Typ mit anderen Interzeptor Binding-Typen annotieren. Die Interzeptor-Bindings sind transitive &#151; jedes Web Bean mit demselben Interzeptor-Binding erbt die als Meta-Annotationen deklarierten Interzeptor-Bindings."
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"Nun, zum Glück umgeht Web Beans dieses fehlende Feature von Java. Wir können "
+"einen Interzeptor Binding-Typ mit anderen Interzeptor Binding-Typen "
+"annotieren. Die Interzeptor-Bindings sind transitive &#151; jedes Web Bean "
+"mit demselben Interzeptor-Binding erbt die als Meta-Annotationen "
+"deklarierten Interzeptor-Bindings."
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -592,40 +681,45 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
+#: interceptors.xml:225
+#, fuzzy, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
 msgstr ""
-"Jedes mit <literal>@Action</literal> annotierte Web Bean wird sowohl an <literal>TransactionInterceptor</literal> als auch <literal>SecurityInterceptor</"
-"literal> gebunden. (Und sogar an <literal>TransactionalSecureInterceptor</literal>, falls es existiert)."
+"Jedes mit <literal>@Action</literal> annotierte Web Bean wird sowohl an "
+"<literal>TransactionInterceptor</literal> als auch "
+"<literal>SecurityInterceptor</literal> gebunden. (Und sogar an "
+"<literal>TransactionalSecureInterceptor</literal>, falls es existiert)."
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "Verwendung von <literal>@Interceptors</literal>"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
+#: interceptors.xml:236
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
-msgstr "Die durch die EJB-Spezifikation definierte <literal>@Interceptors</literal>-Annotation wird sowohl für Enterprise als auch einfache Web Beans unterstützt, zum Beispiel:"
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"Die durch die EJB-Spezifikation definierte <literal>@Interceptors</literal>-"
+"Annotation wird sowohl für Enterprise als auch einfache Web Beans "
+"unterstützt, zum Beispiel:"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
@@ -635,34 +729,89 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "Allerdings besitzt diese Vorgehensweise folgende Nachteile:"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr "Die Interzeptorimplementierung ist im Business Code hardkodiert,"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
-msgstr "Interzeptoren können zum Deployment-Zeitpunkt nicht einfach deaktiviert werden und "
+msgstr ""
+"Interzeptoren können zum Deployment-Zeitpunkt nicht einfach deaktiviert "
+"werden und "
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
+#: interceptors.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "Die Interzeptorreihenfolge ist nicht allgemeingültig &#151; sie wird durch die Reihenfolge, in der Interzeptoren auf Klassenebene aufgeführt sind, festgelegt."
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"Die Interzeptorreihenfolge ist nicht allgemeingültig &#151; sie wird durch "
+"die Reihenfolge, in der Interzeptoren auf Klassenebene aufgeführt sind, "
+"festgelegt."
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
-msgstr "Daher empfehlen wir die Verwendung von Interzeptor-Bindings im Web Beans Stil."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
+msgstr ""
+"Daher empfehlen wir die Verwendung von Interzeptor-Bindings im Web Beans "
+"Stil."
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans verwenden die grundlegende Interzeptor-Architektur von EJB 3.0, "
+#~ "wobei die Funktionalität in zwei Richtungen erweitert wird:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr ""
+#~ "Jedes Web Bean kann Interzeptoren besitzen, nicht nur Session Beans."
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "Bei allen Web Beans Interzeptoren handelt es sich um einfache Web Beans "
+#~ "und sie können \"Dependency\"-Einspeisung und kontextuelles Lebenszyklus-"
+#~ "Management nutzen."
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Schließlich müssen wir unseren Interzeptor in <literal>web-beans.xml</"
+#~ "literal> <emphasis>aktivieren</emphasis>."
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "Oder wir könnten sie beide in unserer Testumgebung abschalten!"

Modified: doc/trunk/reference/de-DE/intro.po
===================================================================
--- doc/trunk/reference/de-DE/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: intro\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-22 13:52+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -18,63 +18,126 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Erste Schritte mit Web Beans"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
 msgstr ""
 "Können Sie es jetzt kaum erwarten Ihr erstes Web Bean zu schreiben? Oder "
-"sind Sie etwas skeptisch und fragen sich, welche Hürden Ihnen bei der Web Beans Spezifikation bevorstehen? Die gute Nachricht ist, dass Sie wahrscheinlich schon hunderte, wenn nicht tausende von Web Beans geschrieben haben. Vielleicht erinnern Sie sich nicht einmal an das erste Web Bean, das Sie je geschrieben haben."
+"sind Sie etwas skeptisch und fragen sich, welche Hürden Ihnen bei der Web "
+"Beans Spezifikation bevorstehen? Die gute Nachricht ist, dass Sie "
+"wahrscheinlich schon hunderte, wenn nicht tausende von Web Beans geschrieben "
+"haben. Vielleicht erinnern Sie sich nicht einmal an das erste Web Bean, das "
+"Sie je geschrieben haben."
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "Ihr erstes Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "Was ist ein Web Bean?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
 msgstr ""
-"Mit bestimmten, ganz besonderen Ausnahmen ist jede Java-Klasse mit einem Konstruktor, die keine Parameter akzeptiert ein Web Bean. Das beinhaltet jedes JavaBean. "
-"Desweiteren ist jedes EJB 3-artige Session Bean ein Web Bean. Sicher, die von Ihnen täglich geschriebenen "
-"JavaBeans und EJBs konnten die neuen, in der Web Beans Spezifikation definierten Dienste nicht nutzen, aber Sie werden diese allesamt benutzen können können, das Web Beans &#151; diese in andere "
-"Web Beans einspeisen, diese via der Web Beans XML-Konfigurationseinrichtung konfigurieren "
-"und diesen sogar Interzeptoren und Dekoratoren hinzufügen, ohne den bestehenden Code anzurühren."
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:27
+#, no-c-format
+msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
 "years in various applications. The first class parses a string into a list "
 "of sentences:"
-msgstr "Nehmen wir an, Sie besitzen zwei bestehende Java Klassen, die bis dato in verschiedenen Anwendungen verwendet wurden. Die erste Klasse parst einen String in eine Liste von Sätzen:"
+msgstr ""
+"Nehmen wir an, Sie besitzen zwei bestehende Java Klassen, die bis dato in "
+"verschiedenen Anwendungen verwendet wurden. Die erste Klasse parst einen "
+"String in eine Liste von Sätzen:"
 
 #. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
+#: intro.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -82,21 +145,24 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
 msgid ""
 "The second existing class is a stateless session bean front-end for an "
 "external system that is able to translate sentences from one language to "
 "another:"
-msgstr "Bei der zweiten bestehenden Klasse handelt es sich um das Front-End eines \"stateless Session Beans\" für ein externes System, das in der Lage ist Sätze von einer Sprache in eine andere zu übersetzen:"
+msgstr ""
+"Bei der zweiten bestehenden Klasse handelt es sich um das Front-End eines "
+"\"stateless Session Beans\" für ein externes System, das in der Lage ist "
+"Sätze von einer Sprache in eine andere zu übersetzen:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -105,18 +171,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "Wo <literal>Translator</literal> das lokale Interface ist:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -125,37 +191,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
+#: intro.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
-msgstr "Leider besitzen wir keine bereits bestehende Klasse die ganze Textdokumente übersetzt. Schreiben wir also ein Web Bean, das diesen Job übernimmt:"
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"Leider besitzen wir keine bereits bestehende Klasse die ganze Textdokumente "
+"übersetzt. Schreiben wir also ein Web Bean, das diesen Job übernimmt:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
 "sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -181,1043 +247,1037 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
+#: intro.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr "Wir erhalten eine Instanz von <literal>TextTranslator</literal> durch dessen Einspeisung in ein Web Bean, Servlet oder EJB:"
-
-#. Tag: programlisting
-#: intro.xml:49
-#, no-c-format
-msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"Aber warten Sie: <literal>TextTranslator</literal> besitzt keinen "
+"Konstruktor ohne Parameter! Handelt es sich noch um ein Web Bean? Nun, eine "
+"Klasse, die keinen Konstruktor ohne Parameter besitzt, kann nach wie vor Web "
+"Bean sein, falls es einen mit <literal>@Initializer</literal> annotierten "
+"Konstruktor besitzt."
 
 #. Tag: para
-#: intro.xml:51
-#, no-c-format
+#: intro.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr "Alternativ erhalten wir eine Instanz durch direkten Aufruf einer Methode des Web Bean Managers:"
-
-#. Tag: programlisting
-#: intro.xml:54
-#, no-c-format
-msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
 msgstr ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"Wie Sie wahrscheinlich bereits erraten haben, hat die <literal>@Initializer</"
+"literal>-Annotation etwas mit Dependency-Einspeisung zu tun! "
+"<literal>@Initializer</literal> kann am Konstruktor oder der Methode eines "
+"Web Beans angewendet werden und teilt dem Web Bean Manager mit, diesen "
+"Konstruktor oder diese Methode bei Instantiierung des Web Beans aufzurufen. "
+"Der Web Bean Manager speist andere Web Beans in die Parameter des "
+"Konstruktors oder der Methode ein."
 
 #. Tag: para
-#: intro.xml:56
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr "Aber warten Sie: <literal>TextTranslator</literal> besitzt keinen Konstruktor ohne Parameter! Handelt es sich noch um ein Web Bean? Nun, eine Klasse, die keinen Konstruktor ohne Parameter besitzt, kann nach wie vor Web Bean sein, falls es einen mit <literal>@Initializer</literal> annotierten Konstruktor besitzt."
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
 msgstr ""
-"Wie Sie wahrscheinlich bereits erraten haben, hat die <literal>@Initializer</literal>-Annotation etwas mit Dependency-Einspeisung zu tun! <literal>@Initializer</literal> "
-"kann am Konstruktor oder der Methode eines Web Beans angewendet werden und teilt dem Web "
-"Bean Manager mit, diesen Konstruktor oder diese Methode bei Instantiierung des Web Beans aufzurufen. Der Web Bean Manager speist andere Web Beans in die Parameter des Konstruktors oder der Methode ein."
 
-#. Tag: para
-#: intro.xml:68
+#. Tag: programlisting
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> "
-"available &#151; if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed &#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"Zum Zeitpunkt der Systeminitialisierung muss der Web Bean Manager validieren, dass genau ein "
-"Web Bean existiert, das jedem Einspeisungspunkt gerecht wird. Für unser Beispiel bedeutet das, wenn keine Implementierung von <literal>Translator</literal> verfügbar ist &#151; wenn der <literal>SentenceTranslator</literal> EJB nicht deployt wurde &#151; dass der Web Bean Manager eine <literal>UnsatisfiedDependencyException</literal> melden würde. Wäre mehr als eine Implementierung von <literal>Translator</literal> verfügbar, so würde der Web Bean "
-"Manager eine <literal>AmbiguousDependencyException</literal> melden."
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "Was ist ein Web Bean?"
-
 #. Tag: para
-#: intro.xml:82
-#, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "Was also <emphasis>genau</emphasis> ist ein Web Bean?"
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "Wo <literal>Translator</literal> das lokale Interface ist:"
 
 #. Tag: para
-#: intro.xml:84
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
-"Bei einem Web Bean handelt es sich um eine Anwendungsklasse, die Business Logik enthält. Ein Web Bean "
-"kann direkt von Java Code oder via Unified EL aufgerufen werden. "
-"Ein Web Bean kann auf transaktionale Ressourcen zugreifen. Abhängigkeiten zwischen Web "
-"Beans werden automatisch durch den Web Bean Manager verwaltet. Die meisten Web Beans sind "
-"<emphasis>stateful</emphasis> und <emphasis>kontextbezogen</emphasis>. Der Lebenszyklus eines Web Beans wird immer durch den Web Bean Manager verwaltet."
 
 #. Tag: para
-#: intro.xml:91
-#, no-c-format
+#: intro.xml:135
+#, fuzzy, no-c-format
 msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
 msgstr ""
-"Erinnern wir uns. Was genau bedeutet es, \"kontextuell\" zu sein? Da "
-"Web Beans \"stateful\" sein können, ist es relevant <emphasis>welche</emphasis> Bean-Instanz ich besitze. Anders als ein Komponentenmodell, das \"stateless\" ist (etwas \"stateless\" "
-"Session Beans) oder ein Singleton Komponentenmodell (wie Servlets oder "
-"Singleton Beans), sehen verschiedene Clients eines Web Beans das Web Bean in "
-"unterschiedlichen Stati. Der Client-sichtbare Status ist abhängig davon, auf welche Instanz des Web Beans der Client verweist (eine Referenz besitzt)."
+"Wir erhalten eine Instanz von <literal>TextTranslator</literal> durch dessen "
+"Einspeisung in ein Web Bean, Servlet oder EJB:"
 
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
 msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
 msgstr ""
-"Wie beim \"stateless\" oder \"singleton\" Modell <emphasis>anders</"
-"emphasis> jedoch als bei \"stateful\" Session Beans, steuert der Client den Lebenszyklus der Instanz nicht durch expliziertes Erstellen und Löschen. Stattdessen bestimmt der <emphasis>Geltungsbereich</emphasis> des Web Beans:"
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:105
+#: intro.xml:142
 #, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "der Lebenszyklus jeder Instanz des Web Beans und"
-
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "Welche Clients teilen sich eine Referenz zu einer bestimmten Instanz des Web Beans."
-
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
 msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
 msgstr ""
-"Für einen bestimmten Thread in einer Web Beans Anwendung kann ein "
-"<emphasis>aktiver Kontext</emphasis> mit dem Geltungsbereich des Web "
-"Beans assoziiert sein. Dieser Kontext kann eindeutig für den Thread sein (etwa wenn für die Web Bean "
-"Anfrage ein Geltungsbereich gilt) oder aber kann mit anderen Threads (etwa wenn für die Web Bean ein Session-Geltungsbereich gilt) oder gar allen Threads (falls ein Anwendungs-Geltungsbereich gilt) geteilt werden."
 
 #. Tag: para
-#: intro.xml:119
-#, no-c-format
+#: intro.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr "Clients (etwa andere Web Beans), die in demselben Kontext ausführen sehen dieselbe Instanz des Web Beans. Clients in einem anderen Kontext aber sehen eine andere Instanz."
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"Zum Zeitpunkt der Systeminitialisierung muss der Web Bean Manager "
+"validieren, dass genau ein Web Bean existiert, das jedem Einspeisungspunkt "
+"gerecht wird. Für unser Beispiel bedeutet das, wenn keine Implementierung "
+"von <literal>Translator</literal> verfügbar ist &#151; wenn der "
+"<literal>SentenceTranslator</literal> EJB nicht deployt wurde &#151; dass "
+"der Web Bean Manager eine <literal>UnsatisfiedDependencyException</literal> "
+"melden würde. Wäre mehr als eine Implementierung von <literal>Translator</"
+"literal> verfügbar, so würde der Web Bean Manager eine "
+"<literal>AmbiguousDependencyException</literal> melden."
 
 #. Tag: para
-#: intro.xml:123
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""
-"Ein großer Vorteil des kontextuellen Modells ist es, dass es uns gestattet, stateful Web "
-"Beans wie Dienste zu behandeln! Der Client muss sich keine Gedanken um das Management des Lebenszyklus des verwendeten Web Beans machen und <emphasis>muss nicht einmal wissen was der Lebenszyklus ist.</emphasis> Web Beans interagieren durch Weitergabe von Nachrichten und die Web Bean Implementierungen definieren den Lebenszyklus ihres eigenen Status. Die Web Beans sind lose gepaart, weil:"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "sie interagieren über gut definierte öffentliche APIs"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Erste Schritte mit Web Beans"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "ihre Lebenszyklen sind vollständig abgekuppelt"
+#~ msgid "Your first Web Bean"
+#~ msgstr "Ihr erstes Web Bean"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "Wir können ein Web Bean durch ein anderes Web Bean ersetzen, das dasselbe API und einen anderen Lebenszyklus (einen anderen Geltungsbereich) besitzt, ohne dass die übrige Web Bean Implementierung hiervon betroffen ist. Genau genommen definieren Web Beans eine raffinierte Einrichtung zur Außerkraftsetzung von Web Bean Implementierungen zum Zeitpunkt des Deployment wie wir in <xref linkend=\"deploymenttypes\"/> noch sehen werden."
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "Mit bestimmten, ganz besonderen Ausnahmen ist jede Java-Klasse mit einem "
+#~ "Konstruktor, die keine Parameter akzeptiert ein Web Bean. Das beinhaltet "
+#~ "jedes JavaBean. Desweiteren ist jedes EJB 3-artige Session Bean ein Web "
+#~ "Bean. Sicher, die von Ihnen täglich geschriebenen JavaBeans und EJBs "
+#~ "konnten die neuen, in der Web Beans Spezifikation definierten Dienste "
+#~ "nicht nutzen, aber Sie werden diese allesamt benutzen können können, das "
+#~ "Web Beans &#151; diese in andere Web Beans einspeisen, diese via der Web "
+#~ "Beans XML-Konfigurationseinrichtung konfigurieren und diesen sogar "
+#~ "Interzeptoren und Dekoratoren hinzufügen, ohne den bestehenden Code "
+#~ "anzurühren."
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr ""
-"Beachten Sie, dass es sich nicht bei allen Clients eines Web Beans um Web Beans handelt. Andere Objekte wie "
-"Servlets oder Message-Driven Beans &#151; die ihrem Wesen nach nicht einspeisbar sind, "
-"kontextuelle Objekte &#151; können durch Einspeisung ebenfalls Verweise auf ein Web Beans erhalten."
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "Alternativ erhalten wir eine Instanz durch direkten Aufruf einer Methode "
+#~ "des Web Bean Managers:"
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "Formeller gilt, gemäß der Spezifikation:"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Ein Web Bean besteht aus:"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "Was also <emphasis>genau</emphasis> ist ein Web Bean?"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "Einem (nicht leeren) Satz von API-Typen"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Bei einem Web Bean handelt es sich um eine Anwendungsklasse, die Business "
+#~ "Logik enthält. Ein Web Bean kann direkt von Java Code oder via Unified EL "
+#~ "aufgerufen werden. Ein Web Bean kann auf transaktionale Ressourcen "
+#~ "zugreifen. Abhängigkeiten zwischen Web Beans werden automatisch durch den "
+#~ "Web Bean Manager verwaltet. Die meisten Web Beans sind "
+#~ "<emphasis>stateful</emphasis> und <emphasis>kontextbezogen</emphasis>. "
+#~ "Der Lebenszyklus eines Web Beans wird immer durch den Web Bean Manager "
+#~ "verwaltet."
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "Einem (nicht leeren) Satz von bindenden Annotationstypen"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "Erinnern wir uns. Was genau bedeutet es, \"kontextuell\" zu sein? Da Web "
+#~ "Beans \"stateful\" sein können, ist es relevant <emphasis>welche</"
+#~ "emphasis> Bean-Instanz ich besitze. Anders als ein Komponentenmodell, das "
+#~ "\"stateless\" ist (etwas \"stateless\" Session Beans) oder ein Singleton "
+#~ "Komponentenmodell (wie Servlets oder Singleton Beans), sehen verschiedene "
+#~ "Clients eines Web Beans das Web Bean in unterschiedlichen Stati. Der "
+#~ "Client-sichtbare Status ist abhängig davon, auf welche Instanz des Web "
+#~ "Beans der Client verweist (eine Referenz besitzt)."
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "Einem Geltungsbereich"
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "Wie beim \"stateless\" oder \"singleton\" Modell <emphasis>anders</"
+#~ "emphasis> jedoch als bei \"stateful\" Session Beans, steuert der Client "
+#~ "den Lebenszyklus der Instanz nicht durch expliziertes Erstellen und "
+#~ "Löschen. Stattdessen bestimmt der <emphasis>Geltungsbereich</emphasis> "
+#~ "des Web Beans:"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "Einem Deployment-Typ"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "der Lebenszyklus jeder Instanz des Web Beans und"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "Optional einem Web Bean Namen"
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr ""
+#~ "Welche Clients teilen sich eine Referenz zu einer bestimmten Instanz des "
+#~ "Web Beans."
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "Ein Satz Interzeptor Binding-Typen"
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Für einen bestimmten Thread in einer Web Beans Anwendung kann ein "
+#~ "<emphasis>aktiver Kontext</emphasis> mit dem Geltungsbereich des Web "
+#~ "Beans assoziiert sein. Dieser Kontext kann eindeutig für den Thread sein "
+#~ "(etwa wenn für die Web Bean Anfrage ein Geltungsbereich gilt) oder aber "
+#~ "kann mit anderen Threads (etwa wenn für die Web Bean ein Session-"
+#~ "Geltungsbereich gilt) oder gar allen Threads (falls ein Anwendungs-"
+#~ "Geltungsbereich gilt) geteilt werden."
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "Einer Web Bean Implementierung"
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "Clients (etwa andere Web Beans), die in demselben Kontext ausführen sehen "
+#~ "dieselbe Instanz des Web Beans. Clients in einem anderen Kontext aber "
+#~ "sehen eine andere Instanz."
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "Sehen wir uns jetzt genauer an, was diese Begriffe für einen Entwickler von Web Beans bedeuten."
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "Ein großer Vorteil des kontextuellen Modells ist es, dass es uns "
+#~ "gestattet, stateful Web Beans wie Dienste zu behandeln! Der Client muss "
+#~ "sich keine Gedanken um das Management des Lebenszyklus des verwendeten "
+#~ "Web Beans machen und <emphasis>muss nicht einmal wissen was der "
+#~ "Lebenszyklus ist.</emphasis> Web Beans interagieren durch Weitergabe von "
+#~ "Nachrichten und die Web Bean Implementierungen definieren den "
+#~ "Lebenszyklus ihres eigenen Status. Die Web Beans sind lose gepaart, weil:"
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "API-Typen, Binding-Typen und Dependency-Einspeisung"
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "sie interagieren über gut definierte öffentliche APIs"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Web Beans erhalten Verweise auf andere Web Beans in der Regel via \"Dependency\"-Einspeisung. Jedes eingespeiste Attribut legt einen \"Vertrag\" fest, der vom einzuspeisenden Web Bean erfüllt sein muss. Der Vertrag lautet:"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "ihre Lebenszyklen sind vollständig abgekuppelt"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "ein API-Typ, zusammen mit "
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Wir können ein Web Bean durch ein anderes Web Bean ersetzen, das dasselbe "
+#~ "API und einen anderen Lebenszyklus (einen anderen Geltungsbereich) "
+#~ "besitzt, ohne dass die übrige Web Bean Implementierung hiervon betroffen "
+#~ "ist. Genau genommen definieren Web Beans eine raffinierte Einrichtung zur "
+#~ "Außerkraftsetzung von Web Bean Implementierungen zum Zeitpunkt des "
+#~ "Deployment wie wir in <xref linkend=\"deploymenttypes\"/> noch sehen "
+#~ "werden."
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "einem Satz von Binding-Typen."
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "Beachten Sie, dass es sich nicht bei allen Clients eines Web Beans um Web "
+#~ "Beans handelt. Andere Objekte wie Servlets oder Message-Driven Beans "
+#~ "&#151; die ihrem Wesen nach nicht einspeisbar sind, kontextuelle Objekte "
+#~ "&#151; können durch Einspeisung ebenfalls Verweise auf ein Web Beans "
+#~ "erhalten."
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr ""
-"Bei einem API handelt es sich um eine benutzerdefinierte Klasse oder Interface. (Falls es sich bei dem Web Bean um ein EJB Session Bean handelt, so ist der API-Typ das <literal>@Local</literal>-Interface oder "
-"Bean-Klasse lokale Ansicht). Ein Binding-Typ repräsentiert Client-sichtbare Semantik, die von einigen Implementierungen des API erfüllt wird, von anderen wiederum nicht."
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "Formeller gilt, gemäß der Spezifikation:"
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr "Binding-Typen werden durch benutzerdefinierte Annotationen repräsentiert, die ihrerseits mit <literal>@BindingType</literal> annotiert sind. Zum Beispiel besitzt der folgende Einspeisungspunkt den API-Typ <literal>PaymentProcessor</literal> und Binding-Typ <literal>@CreditCard</literal>:"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Ein Web Bean besteht aus:"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "Einem (nicht leeren) Satz von API-Typen"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
-msgstr "Wird an einem Einspeisungspunkt kein Binding-Typ explizit festgelegt, so wird vom standardmäßigen Binding-Typ <literal>@Current</literal> ausgegangen."
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "Einem (nicht leeren) Satz von bindenden Annotationstypen"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
-msgstr "Für jeden Einspeisungspunkt sucht der Web Bean Manager nach einem Web Bean, das den Vertrag erfüllt (das API implementiert und alle Binding-Typen besitzt) und speist dieses Web Bean ein."
+#~ msgid "A scope"
+#~ msgstr "Einem Geltungsbereich"
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr ""
-"Das folgende Web Bean besitzt den Binding-Typ <literal>@CreditCard</literal> "
-"und implementiert den API-Typ <literal>PaymentProcessor</literal>. Es könnte daher am Beispiel-Einspeisungspunkt eingespeist werden:"
+#~ msgid "A deployment type"
+#~ msgstr "Einem Deployment-Typ"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "Optional einem Web Bean Namen"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
-msgstr "Falls ein Web Bean nicht explizit einen Satz von Binding-Typen festlegt, so besitzt es genau einen Binding-Typ: den standardmäßigen Binding-Typ <literal>@Current</literal>."
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "Ein Satz Interzeptor Binding-Typen"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr "Web Beans definiert einen fortgeschrittenen aber intuitiven <emphasis>Auflösungsalgorithmus</emphasis>, der dem Container dabei hilft zu entscheiden was geschehen soll, wenn mehr als ein Web Bean einen bestimmten Vertrag erfüllt. Wir gehen in <xref linkend=\"injection\"/> näher darauf ein."
+#~ msgid "A Web Bean implementation"
+#~ msgstr "Einer Web Bean Implementierung"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "Deployment-Typen"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr ""
+#~ "Sehen wir uns jetzt genauer an, was diese Begriffe für einen Entwickler "
+#~ "von Web Beans bedeuten."
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr ""
-"<emphasis>Deployment-Typen</emphasis> gestatten die Klassifizierung unserer Web Beans mittels "
-"Deployment Szenario. Ein Deployment-Typ ist eine Annotation, die ein bestimmtes Deployment-Szenario repräsentiert, etwa <literal>@Mock</literal>, <literal>@Staging</literal> oder <literal>@AustralianTaxLaw</literal>. Wir setzen die Annotation bei Web Beans ein, die in diesem Szenario deployt werden sollten. Ein Deployment-Typ gestattet mit nur einer einzelnen Konfigurationszeile einem ganzen Satz von Web Beans unter Vorbehalt in diesem Szenario deployt zu werden."
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "API-Typen, Binding-Typen und Dependency-Einspeisung"
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr ""
-"Viele Web Beans verwenden nur den standardmäßigen Deployment-Typ <literal>@Production</"
-"literal>, in welchem Fall kein Deployment-Typ explizit festgelegt werden muss. Alle drei "
-"Web Beans in unserem Beispiel besitzen den Deployment-Typ <literal>@Production</literal>."
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "Web Beans erhalten Verweise auf andere Web Beans in der Regel via "
+#~ "\"Dependency\"-Einspeisung. Jedes eingespeiste Attribut legt einen "
+#~ "\"Vertrag\" fest, der vom einzuspeisenden Web Bean erfüllt sein muss. Der "
+#~ "Vertrag lautet:"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr ""
-"In einer Testumgebung können wir das "
-"<literal>SentenceTranslator</literal> Web Bean durch ein \"mock object\" ersetzen:"
+#~ msgid "an API type, together with"
+#~ msgstr "ein API-Typ, zusammen mit "
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid "a set of binding types."
+#~ msgstr "einem Satz von Binding-Typen."
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "Wir würden den Deployment-Typ <literal>@Mock</literal> in unserer Testumgebung aktivieren, um anzuzeigen, dass <literal>MockSentenceTranslator</literal> und ein beliebiges anderes mit <literal>@Mock</literal> annotiertes Web Bean verwendet werden sollen."
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "Bei einem API handelt es sich um eine benutzerdefinierte Klasse oder "
+#~ "Interface. (Falls es sich bei dem Web Bean um ein EJB Session Bean "
+#~ "handelt, so ist der API-Typ das <literal>@Local</literal>-Interface oder "
+#~ "Bean-Klasse lokale Ansicht). Ein Binding-Typ repräsentiert Client-"
+#~ "sichtbare Semantik, die von einigen Implementierungen des API erfüllt "
+#~ "wird, von anderen wiederum nicht."
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr ""
-"In <xref linkend="
-"\"deploymenttypes\"/> gehen wir näher auf dieses einzigartige und leistungsfähige Feature ein."
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "Binding-Typen werden durch benutzerdefinierte Annotationen repräsentiert, "
+#~ "die ihrerseits mit <literal>@BindingType</literal> annotiert sind. Zum "
+#~ "Beispiel besitzt der folgende Einspeisungspunkt den API-Typ "
+#~ "<literal>PaymentProcessor</literal> und Binding-Typ <literal>@CreditCard</"
+#~ "literal>:"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "Geltungsbereich"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr "Der <emphasis>Geltungsbereich</emphasis> definiert den Lebenszyklus und die Sichtbarkeit von Instanzen des Web Beans. Das Web Beans Kontextmodell ist erweiterbar, um arbiträre Geltungsbereiche zu ermöglichen. Jedoch sind bestimmte wichtige Geltungsbereiche in die Spezifikation eingebaut und werden vom Web Bean bereitgestellt. Ein Geltungsbereich wird durch einen Annotationstyp repräsentiert."
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "Wird an einem Einspeisungspunkt kein Binding-Typ explizit festgelegt, so "
+#~ "wird vom standardmäßigen Binding-Typ <literal>@Current</literal> "
+#~ "ausgegangen."
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr ""
-"Web-Anwendungen können zum Beispiel <emphasis>Session-begrenzte</"
-"emphasis> Web Beans besitzen:"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "Für jeden Einspeisungspunkt sucht der Web Bean Manager nach einem Web "
+#~ "Bean, das den Vertrag erfüllt (das API implementiert und alle Binding-"
+#~ "Typen besitzt) und speist dieses Web Bean ein."
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "Das folgende Web Bean besitzt den Binding-Typ <literal>@CreditCard</"
+#~ "literal> und implementiert den API-Typ <literal>PaymentProcessor</"
+#~ "literal>. Es könnte daher am Beispiel-Einspeisungspunkt eingespeist "
+#~ "werden:"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr "Eine Instanz eines sessionbegrenzten Web Beans wird an eine Benutzer-Session gebunden und wird von allen im Kontext dieser Session ausführenden Anfragen geteilt."
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr ""
-"Standardmäßig gehören Web Beans zu einem bestimmten Geltungsbereich namens "
-"<emphasis>abhängiger Pseudo-Geltungsbereich</emphasis> (sog. \"dependent pseudo-scope\"). Web Beans mit diesem Geltungsbereich sind reine abhängige Objekte von demjenigen Objekt, in das sie eingespeist werden und ihr Lebenszyklus ist an den Lebenszyklus eben dieses Objekts gebunden."
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Falls ein Web Bean nicht explizit einen Satz von Binding-Typen festlegt, "
+#~ "so besitzt es genau einen Binding-Typ: den standardmäßigen Binding-Typ "
+#~ "<literal>@Current</literal>."
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "In <xref linkend=\"scopescontexts\"/> gehen wir näher auf Geltungsbereiche ein."
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Beans definiert einen fortgeschrittenen aber intuitiven "
+#~ "<emphasis>Auflösungsalgorithmus</emphasis>, der dem Container dabei hilft "
+#~ "zu entscheiden was geschehen soll, wenn mehr als ein Web Bean einen "
+#~ "bestimmten Vertrag erfüllt. Wir gehen in <xref linkend=\"injection\"/> "
+#~ "näher darauf ein."
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Web Bean Namen und Unified EL"
+#~ msgid "Deployment types"
+#~ msgstr "Deployment-Typen"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr ""
-"Ein Web Bean kann einen <emphasis>Namen</emphasis> besitzen, wodurch es möglich ist, dieses in "
-"Unified EL Ausdrücken einzusetzen. Das Festlegen eines Namens für ein Web Bean ist ganz einfach:"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>Deployment-Typen</emphasis> gestatten die Klassifizierung "
+#~ "unserer Web Beans mittels Deployment Szenario. Ein Deployment-Typ ist "
+#~ "eine Annotation, die ein bestimmtes Deployment-Szenario repräsentiert, "
+#~ "etwa <literal>@Mock</literal>, <literal>@Staging</literal> oder "
+#~ "<literal>@AustralianTaxLaw</literal>. Wir setzen die Annotation bei Web "
+#~ "Beans ein, die in diesem Szenario deployt werden sollten. Ein Deployment-"
+#~ "Typ gestattet mit nur einer einzelnen Konfigurationszeile einem ganzen "
+#~ "Satz von Web Beans unter Vorbehalt in diesem Szenario deployt zu werden."
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "Viele Web Beans verwenden nur den standardmäßigen Deployment-Typ "
+#~ "<literal>@Production</literal>, in welchem Fall kein Deployment-Typ "
+#~ "explizit festgelegt werden muss. Alle drei Web Beans in unserem Beispiel "
+#~ "besitzen den Deployment-Typ <literal>@Production</literal>."
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "Jetzt können wir das Web Bean einfach in einer beliebigen JSF- oder JSP-Seite verwenden:"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "In einer Testumgebung können wir das <literal>SentenceTranslator</"
+#~ "literal> Web Bean durch ein \"mock object\" ersetzen:"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "Es ist sogar noch einfacher den Name vom Web Bean Manager standardisieren zu lassen:"
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "Wir würden den Deployment-Typ <literal>@Mock</literal> in unserer "
+#~ "Testumgebung aktivieren, um anzuzeigen, dass "
+#~ "<literal>MockSentenceTranslator</literal> und ein beliebiges anderes mit "
+#~ "<literal>@Mock</literal> annotiertes Web Bean verwendet werden sollen."
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "In <xref linkend=\"deploymenttypes\"/> gehen wir näher auf dieses "
+#~ "einzigartige und leistungsfähige Feature ein."
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "In diesem Fall wird der Name standardmäßig zu <literal>shoppingCart</literal> &#151; dem nicht vollständigen Klassennamen, wobei der erste Buchstabe klein geschrieben wird."
+#~ msgid "Scope"
+#~ msgstr "Geltungsbereich"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "Interzeptor Binding-Typen"
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "Der <emphasis>Geltungsbereich</emphasis> definiert den Lebenszyklus und "
+#~ "die Sichtbarkeit von Instanzen des Web Beans. Das Web Beans Kontextmodell "
+#~ "ist erweiterbar, um arbiträre Geltungsbereiche zu ermöglichen. Jedoch "
+#~ "sind bestimmte wichtige Geltungsbereiche in die Spezifikation eingebaut "
+#~ "und werden vom Web Bean bereitgestellt. Ein Geltungsbereich wird durch "
+#~ "einen Annotationstyp repräsentiert."
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr "Web Beans unterstützt die von EJB 3 definierte Interzeptor-Funktionalität nicht nur für EJB-Beans, sondern auch für einfache Java-Klassen. Desweiteren bietet Web Beans eine neue Herangehensweise bei der Bindung von Interzeptoren an EJB-Beans und andere Web-Beans."
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "Web-Anwendungen können zum Beispiel <emphasis>Session-begrenzte</"
+#~ "emphasis> Web Beans besitzen:"
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr "Es bleibt weiterhin möglich, die Interzeptorklasse mittels Verwendung der <literal>@Interceptors</literal>-Annotation direkt festzulegen:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "Eine Instanz eines sessionbegrenzten Web Beans wird an eine Benutzer-"
+#~ "Session gebunden und wird von allen im Kontext dieser Session "
+#~ "ausführenden Anfragen geteilt."
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "Es ist aber eleganter und generell besser das Interzeptor-Binding durch einen <emphasis>Interzeptor-Binding-Typ</emphasis> umzuleiten:"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "Standardmäßig gehören Web Beans zu einem bestimmten Geltungsbereich "
+#~ "namens <emphasis>abhängiger Pseudo-Geltungsbereich</emphasis> (sog. "
+#~ "\"dependent pseudo-scope\"). Web Beans mit diesem Geltungsbereich sind "
+#~ "reine abhängige Objekte von demjenigen Objekt, in das sie eingespeist "
+#~ "werden und ihr Lebenszyklus ist an den Lebenszyklus eben dieses Objekts "
+#~ "gebunden."
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr ""
+#~ "In <xref linkend=\"scopescontexts\"/> gehen wir näher auf "
+#~ "Geltungsbereiche ein."
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr ""
-"Wir gehen in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/> näher auf Web Beans Interzeptoren und Dekoratoren ein."
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Web Bean Namen und Unified EL"
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "Welche Art von Objekten können Web Beans sein?"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Ein Web Bean kann einen <emphasis>Namen</emphasis> besitzen, wodurch es "
+#~ "möglich ist, dieses in Unified EL Ausdrücken einzusetzen. Das Festlegen "
+#~ "eines Namens für ein Web Bean ist ganz einfach:"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "Wir haben bereits gesehen, dass JavaBeans, EJBs und einige andere Java-Klassen Web Beans sein können. Aber um was für Objekte genau handelt es sich bei Web Beans?"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "Einfache Web Beans"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr ""
+#~ "Jetzt können wir das Web Bean einfach in einer beliebigen JSF- oder JSP-"
+#~ "Seite verwenden:"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr "Die Web Beans Spezifikation besagt, dass eine konkrete Java-Klasse ein <emphasis>einfaches</emphasis> Web Bean ist, wenn:"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr "Es es sich nicht um eine EE Container-gemanagte Komponente wie ein EJB, ein Servlet oder eine JPA-Entity handelt,"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "Es ist sogar noch einfacher den Name vom Web Bean Manager standardisieren "
+#~ "zu lassen:"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "es sich nicht um eine nicht-statische statische innere Klasse handelt,"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "es sich nicht um einen parametisierten Typ handelt und "
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "In diesem Fall wird der Name standardmäßig zu <literal>shoppingCart</"
+#~ "literal> &#151; dem nicht vollständigen Klassennamen, wobei der erste "
+#~ "Buchstabe klein geschrieben wird."
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr "ein Konstruktor ohne Parameter oder ein mit <literal>@Initializer</literal> annotierter Konstruktor vorhanden ist."
+#~ msgid "Interceptor binding types"
+#~ msgstr "Interzeptor Binding-Typen"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "Daher handelt es sich bei fast jedem JavaBean um ein einfaches Web Bean."
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans unterstützt die von EJB 3 definierte Interzeptor-Funktionalität "
+#~ "nicht nur für EJB-Beans, sondern auch für einfache Java-Klassen. "
+#~ "Desweiteren bietet Web Beans eine neue Herangehensweise bei der Bindung "
+#~ "von Interzeptoren an EJB-Beans und andere Web-Beans."
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr "Jedes direkt oder indirekt durch ein einfaches Web Bean implementierte Interface ist ein API-Typ des einfachen Web Beans. Die Klasse und deren Superklassen sind ebenfalls API-Typen."
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "Es bleibt weiterhin möglich, die Interzeptorklasse mittels Verwendung der "
+#~ "<literal>@Interceptors</literal>-Annotation direkt festzulegen:"
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "Enterprise Web Beans"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other "
-"objects &#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr "Die Spezifikation besagt, dass alle EJB 3-style Session und Singleton Beans <emphasis>Enterprise</emphasis> Web Beans sind. Message-driven Beans sind keine Web Beans &#151; da sie nicht zur Einspeisung in andere Objekte vorgesehen sind &#151; aber sie können den größten Teil der Funktionalität von Web Beans nutzen, darunter auch \"Dependency\"-Einspeisung und Interzeptoren."
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Es ist aber eleganter und generell besser das Interzeptor-Binding durch "
+#~ "einen <emphasis>Interzeptor-Binding-Typ</emphasis> umzuleiten:"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr "Jedes lokale Interface eines Enterprise Web Beans und jedes seiner Super-Interfaces, das keinen Platzhaltertyp-Parameter oder eine Typenvariable besitzt, ist ein API-Typ des Enterprise Web Beans. Falls das EJB-Bean eine lokale Ansicht der Bean-Klasse besitzt, so handelt es sich auch bei der Bean-Klasse und jede von deren Super-Klassen um einen API-Typ."
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr ""
-"Stateful Session Beans sollten eine Entfernungsmethode (\"remove method\") ohne Parameter oder eine Entfernungsmethode mit der Annotation <literal>@Destructor</literal> deklarieren. Der Web Bean "
-"Manager ruft diese Methode auf, um die Instanz des stateful Session Beans am Ende von deren Lebenszyklus zu löschen. Diese Methode nennt sich <emphasis>Destructor</emphasis>-Methode des Enterprise Web Beans."
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "Wir gehen in <xref linkend=\"interceptors\"/> and <xref linkend="
+#~ "\"decorators\"/> näher auf Web Beans Interzeptoren und Dekoratoren ein."
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "Welche Art von Objekten können Web Beans sein?"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
-msgstr ""
-"Sollten wir also ein Enterprise Web Bean statt eines einfachen Web Beans verwenden? "
-"Nun, wenn wir ausgefeilte, durch EJB bereitgestellte Enterprise-Dienste benötigen, wie etwa:"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "Wir haben bereits gesehen, dass JavaBeans, EJBs und einige andere Java-"
+#~ "Klassen Web Beans sein können. Aber um was für Objekte genau handelt es "
+#~ "sich bei Web Beans?"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "Transaktionsmanagement und Sicherheit auf Methodenebene, "
+#~ msgid "Simple Web Beans"
+#~ msgstr "Einfache Web Beans"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "Nebenläufigkeits-Management,"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "Die Web Beans Spezifikation besagt, dass eine konkrete Java-Klasse ein "
+#~ "<emphasis>einfaches</emphasis> Web Bean ist, wenn:"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
-msgstr "Passivation für stateful Session Beans und Instance-Pooling für stateless Session Beans auf Instanzebene "
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "Es es sich nicht um eine EE Container-gemanagte Komponente wie ein EJB, "
+#~ "ein Servlet oder eine JPA-Entity handelt,"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "Remote und Web-Service Aufruf und "
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr ""
+#~ "es sich nicht um eine nicht-statische statische innere Klasse handelt,"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "Timer und asynchrone Methoden,"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "es sich nicht um einen parametisierten Typ handelt und "
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
-msgstr "so sollten wir ein Enterprise Web Bean verwenden. Wenn wir nichts von alledem brauchen, so reicht ein einfaches Web Bean vollkommen aus."
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "ein Konstruktor ohne Parameter oder ein mit <literal>@Initializer</"
+#~ "literal> annotierter Konstruktor vorhanden ist."
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
-msgstr "Viele Web Beans (einschließlich session- oder anwendungsbegrenzte Web Beans) sind für nebenläufigen Zugriff verfügbar. Daher ist das durch EJB 3.1 bereitgestellte Nebenläufigkeits-Management besonders nützlich. Die meisten session- oder anwendungsbegrenzten Web Beans sollten EJBs sein."
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr ""
+#~ "Daher handelt es sich bei fast jedem JavaBean um ein einfaches Web Bean."
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr ""
-"Web Beans, die Verweise auf schwergewichtige Ressourcen oder eine Menge internen Status besitzen, haben Vorteile durch den fortgeschrittenen, Container-gemanagten, durch das EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal>-Modell definierten Lebenszyklus und dessen Support von Passivation und "
-"Instanz-Pooling."
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "Jedes direkt oder indirekt durch ein einfaches Web Bean implementierte "
+#~ "Interface ist ein API-Typ des einfachen Web Beans. Die Klasse und deren "
+#~ "Superklassen sind ebenfalls API-Typen."
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr "Schließlich ist es offenkundig, wenn Transaktions-Management auf Methodenebene, Sicherheit auf Methodenebene, Timer, Remote-Methoden oder asynchrone Methoden benötigt werden."
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "Enterprise Web Beans"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "Es ist in der Regel leicht, mit einem einfachen Web Bean zu beginnen und es dann zu einem EJB zu machen, indem man eine Annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> oder <literal>@Singleton</literal> hinzufügt."
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "Die Spezifikation besagt, dass alle EJB 3-style Session und Singleton "
+#~ "Beans <emphasis>Enterprise</emphasis> Web Beans sind. Message-driven "
+#~ "Beans sind keine Web Beans &#151; da sie nicht zur Einspeisung in andere "
+#~ "Objekte vorgesehen sind &#151; aber sie können den größten Teil der "
+#~ "Funktionalität von Web Beans nutzen, darunter auch \"Dependency\"-"
+#~ "Einspeisung und Interzeptoren."
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "Producer-Methoden"
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "Jedes lokale Interface eines Enterprise Web Beans und jedes seiner Super-"
+#~ "Interfaces, das keinen Platzhaltertyp-Parameter oder eine Typenvariable "
+#~ "besitzt, ist ein API-Typ des Enterprise Web Beans. Falls das EJB-Bean "
+#~ "eine lokale Ansicht der Bean-Klasse besitzt, so handelt es sich auch bei "
+#~ "der Bean-Klasse und jede von deren Super-Klassen um einen API-Typ."
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr "Eine <emphasis>Producer-Methode</emphasis> ist eine Methode, die vom Web Bean Manager aufgerufen wird, um eine Instanz des Web Beans zu erhalten, wenn im aktuellen Kontext keine existiert. Eine Producer-Methodübernehmen, statt die Instantiierung dem Web Bean Manager zu überlassen. Zum Beispiel:"
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "Stateful Session Beans sollten eine Entfernungsmethode (\"remove method"
+#~ "\") ohne Parameter oder eine Entfernungsmethode mit der Annotation "
+#~ "<literal>@Destructor</literal> deklarieren. Der Web Bean Manager ruft "
+#~ "diese Methode auf, um die Instanz des stateful Session Beans am Ende von "
+#~ "deren Lebenszyklus zu löschen. Diese Methode nennt sich "
+#~ "<emphasis>Destructor</emphasis>-Methode des Enterprise Web Beans."
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "Einspeisung des Ergebnisses einer Producer-Methode erfolgt wie bei einem regulären Web Bean."
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "Sollten wir also ein Enterprise Web Bean statt eines einfachen Web Beans "
+#~ "verwenden? Nun, wenn wir ausgefeilte, durch EJB bereitgestellte "
+#~ "Enterprise-Dienste benötigen, wie etwa:"
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "Transaktionsmanagement und Sicherheit auf Methodenebene, "
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
-msgstr "Der Methodenwiedergabetyp (\"Method Return Type\") und alle Interfaces, die er direkt oder indirekt erweitert/implementiert sind API-Typen der Producer-Methode. Handelt es sich beim Wiedergabetyp um eine Klasse, so sind alle Superklassen ebenfalls API-Typen."
+#~ msgid "concurrency management,"
+#~ msgstr "Nebenläufigkeits-Management,"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "Einige Producer-Methoden geben Objekte wieder, die explizite Löschung erfordern:"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "Passivation für stateful Session Beans und Instance-Pooling für stateless "
+#~ "Session Beans auf Instanzebene "
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "Remote und Web-Service Aufruf und "
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr "Diese Producer-Methoden können übereinstimmende <emphasis>Disposal Methods</emphasis> (Entsorgungsmethoden) definieren:"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "Timer und asynchrone Methoden,"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "so sollten wir ein Enterprise Web Bean verwenden. Wenn wir nichts von "
+#~ "alledem brauchen, so reicht ein einfaches Web Bean vollkommen aus."
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
-msgstr "Diese Entsorgungsmethode wird am Ende der Anfrage automatisch vom Web Bean Manager aufgerufen."
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "Viele Web Beans (einschließlich session- oder anwendungsbegrenzte Web "
+#~ "Beans) sind für nebenläufigen Zugriff verfügbar. Daher ist das durch EJB "
+#~ "3.1 bereitgestellte Nebenläufigkeits-Management besonders nützlich. Die "
+#~ "meisten session- oder anwendungsbegrenzten Web Beans sollten EJBs sein."
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
-msgstr "In <xref linkend=\"producermethods\"/> erfahren Sie mehr über Producer-Methoden."
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "Web Beans, die Verweise auf schwergewichtige Ressourcen oder eine Menge "
+#~ "internen Status besitzen, haben Vorteile durch den fortgeschrittenen, "
+#~ "Container-gemanagten, durch das EJB <literal>@Stateless</literal>/"
+#~ "<literal>@Stateful</literal>/<literal>@Singleton</literal>-Modell "
+#~ "definierten Lebenszyklus und dessen Support von Passivation und Instanz-"
+#~ "Pooling."
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS-Endpunkte"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "Schließlich ist es offenkundig, wenn Transaktions-Management auf "
+#~ "Methodenebene, Sicherheit auf Methodenebene, Timer, Remote-Methoden oder "
+#~ "asynchrone Methoden benötigt werden."
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
-msgstr "Auch eine JMS-Warteschlange oder ein Topic können Web Beans sein. Web Beans nimmt dem Entwickler die Arbeit des Management der Lebenszyklen aller verschiedener JMS-Objekte ab, die zum Senden von Nachrichten an Warteschlangen und Topics erforderlich sind. Wir gehen in <xref linkend=\"jms\"/> auf JMS-Endpunkte ein."
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "Es ist in der Regel leicht, mit einem einfachen Web Bean zu beginnen und "
+#~ "es dann zu einem EJB zu machen, indem man eine Annotation: "
+#~ "<literal>@Stateless</literal>, <literal>@Stateful</literal> oder "
+#~ "<literal>@Singleton</literal> hinzufügt."
 
+#~ msgid "Producer methods"
+#~ msgstr "Producer-Methoden"
+
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "Eine <emphasis>Producer-Methode</emphasis> ist eine Methode, die vom Web "
+#~ "Bean Manager aufgerufen wird, um eine Instanz des Web Beans zu erhalten, "
+#~ "wenn im aktuellen Kontext keine existiert. Eine Producer-"
+#~ "Methodübernehmen, statt die Instantiierung dem Web Bean Manager zu "
+#~ "überlassen. Zum Beispiel:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "Einspeisung des Ergebnisses einer Producer-Methode erfolgt wie bei einem "
+#~ "regulären Web Bean."
+
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
+
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "Der Methodenwiedergabetyp (\"Method Return Type\") und alle Interfaces, "
+#~ "die er direkt oder indirekt erweitert/implementiert sind API-Typen der "
+#~ "Producer-Methode. Handelt es sich beim Wiedergabetyp um eine Klasse, so "
+#~ "sind alle Superklassen ebenfalls API-Typen."
+
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr ""
+#~ "Einige Producer-Methoden geben Objekte wieder, die explizite Löschung "
+#~ "erfordern:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Diese Producer-Methoden können übereinstimmende <emphasis>Disposal "
+#~ "Methods</emphasis> (Entsorgungsmethoden) definieren:"
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "Diese Entsorgungsmethode wird am Ende der Anfrage automatisch vom Web "
+#~ "Bean Manager aufgerufen."
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "In <xref linkend=\"producermethods\"/> erfahren Sie mehr über Producer-"
+#~ "Methoden."
+
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS-Endpunkte"
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "Auch eine JMS-Warteschlange oder ein Topic können Web Beans sein. Web "
+#~ "Beans nimmt dem Entwickler die Arbeit des Management der Lebenszyklen "
+#~ "aller verschiedener JMS-Objekte ab, die zum Senden von Nachrichten an "
+#~ "Warteschlangen und Topics erforderlich sind. Wir gehen in <xref linkend="
+#~ "\"jms\"/> auf JMS-Endpunkte ein."

Modified: doc/trunk/reference/de-DE/master.po
===================================================================
--- doc/trunk/reference/de-DE/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-22 13:55+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,64 +16,99 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "Hinweis"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
-"Der Name von JSR-299 wurde vor kurzem von \"Web Beans\" zu \"Java Kontexte "
-"und Dependency-Einspeisung\" geändert. Dieses Handbuch bezieht sich nach wie "
-"vor auf JSR-299 als \"Web Beans\" und die JSR-299 Referenzimplementierung "
-"als \"Web Beans RI\". Andere Dokumentation wie Blogs, Postings in Foren usw. "
-"verwenden möglicherweise bereits die neue Namensgebung, darunter den neuen "
-"Namen für die JSR-299 Referenzimplementierung - \"Web Beans\"."
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "Verwendung kontextueller Objekte"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "Entwicklung lose gepaarten Codes"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "Das meiste aus starkem Tippen machen "
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans und das Java EE-Ökosystem"
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Note"
+#~ msgstr "Hinweis"
+
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "Der Name von JSR-299 wurde vor kurzem von \"Web Beans\" zu \"Java "
+#~ "Kontexte und Dependency-Einspeisung\" geändert. Dieses Handbuch bezieht "
+#~ "sich nach wie vor auf JSR-299 als \"Web Beans\" und die JSR-299 "
+#~ "Referenzimplementierung als \"Web Beans RI\". Andere Dokumentation wie "
+#~ "Blogs, Postings in Foren usw. verwenden möglicherweise bereits die neue "
+#~ "Namensgebung, darunter den neuen Namen für die JSR-299 "
+#~ "Referenzimplementierung - \"Web Beans\"."
+
+#~ msgid "Using contextual objects"
+#~ msgstr "Verwendung kontextueller Objekte"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "Entwicklung lose gepaarten Codes"

Modified: doc/trunk/reference/de-DE/next.po
===================================================================
--- doc/trunk/reference/de-DE/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: next\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-28 06:27+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -25,31 +25,128 @@
 #: next.xml:6
 #, no-c-format
 msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
-msgstr "Da Web Beans so neu sind, existieren noch nicht so viele Informationen online."
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"Die Web Beans Referenzimplementierung wird unter <literal>http://"
+"seamframework.org/WebBeans</literal> entwickelt. Das RI Entwicklungsteam und "
+"die Web Beans Spezifikation führen unter <literal>http://in.relation.to</"
+"literal> einen Blog. Dieser Artikel basiert im Wesentlichen auf eine dort "
+"veröffentlichte Reihe von Blog-Einträgen."
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
 msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "Natürlich ist die Web Beans Spezifikation die beste Quelle für weitere Information zu Web Beans. Die Spezifikation umfasst rund 100 Seiten, ist also nur etwa doppelt so lang wie dieser Artikel, aber nahezu so einfach verständlich wie dieser. Sie enthält aber zahlreiche Einzelheiten, auf die hier nicht eingegangen wird. Die Spezifikation ist unter <literal>http://jcp.org/en/jsr/detail?id=299</literal> verfügbar."
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
 msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
 msgstr ""
-"Die Web Beans Referenzimplementierung wird unter <literal>http://"
-"seamframework.org/WebBeans</literal> entwickelt. Das RI Entwicklungsteam und die Web "
-"Beans Spezifikation führen unter <literal>http://in.relation.to</literal> einen Blog. Dieser Artikel basiert im Wesentlichen auf eine dort veröffentlichte Reihe von Blog-Einträgen."
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Da Web Beans so neu sind, existieren noch nicht so viele Informationen "
+#~ "online."
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "Natürlich ist die Web Beans Spezifikation die beste Quelle für weitere "
+#~ "Information zu Web Beans. Die Spezifikation umfasst rund 100 Seiten, ist "
+#~ "also nur etwa doppelt so lang wie dieser Artikel, aber nahezu so einfach "
+#~ "verständlich wie dieser. Sie enthält aber zahlreiche Einzelheiten, auf "
+#~ "die hier nicht eingegangen wird. Die Spezifikation ist unter "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal> verfügbar."

Modified: doc/trunk/reference/de-DE/part1.po
===================================================================
--- doc/trunk/reference/de-DE/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: part1\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-22 16:09+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,220 +16,379 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
+#: part1.xml:14
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
 msgstr ""
-"Die Web Beans (JSR-299) Speziifikation definiert einen Satz von Diensten für die Java "
-"EE Umgebung, der die Entwicklung von Anwendungen maßgeblich vereinfacht. Web Beans schichtet ein verbessertes Lebenszyklus- und Interaktionsmodell über bestehende Java-Komponententypen, einschließlich JavaBeans und Enterprise Java Beans. Zur Vervollständigung des traditionellen Java EE Programmiermodells bieten Web Beans Dienste:"
+"Die Web Beans (JSR-299) Speziifikation definiert einen Satz von Diensten für "
+"die Java EE Umgebung, der die Entwicklung von Anwendungen maßgeblich "
+"vereinfacht. Web Beans schichtet ein verbessertes Lebenszyklus- und "
+"Interaktionsmodell über bestehende Java-Komponententypen, einschließlich "
+"JavaBeans und Enterprise Java Beans. Zur Vervollständigung des "
+"traditionellen Java EE Programmiermodells bieten Web Beans Dienste:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
+#: part1.xml:23
+#, fuzzy, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
 msgstr ""
-"einen verbesserten Lebenszyklus für stateful Komponenten, die an gut definierte "
-"<emphasis>Kontexte</emphasis> gebunden sind,"
+"einen verbesserten Lebenszyklus für stateful Komponenten, die an gut "
+"definierte <emphasis>Kontexte</emphasis> gebunden sind,"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
-msgstr "eine typensichere Herangehensweise an <emphasis>Dpendency-Einspeisung</emphasis>,"
+msgstr ""
+"eine typensichere Herangehensweise an <emphasis>Dpendency-Einspeisung</"
+"emphasis>,"
 
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
+msgstr ""
+"Interaktion über eine <emphasis>Ereignisbenachrichtigungs</emphasis>-"
+"Facility und"
+
+#. Tag: para
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"eine bessere Vorgehensweise bei der Bindung von <emphasis>Interzeptoren</"
+"emphasis> an Komponenten sowie eine neue Art von Interzeptor namens "
+"<emphasis>Dekorator</emphasis>, der für die Lösung von Business Problemen "
+"geeigneter ist."
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
-msgstr "Interaktion über eine <emphasis>Ereignisbenachrichtigungs</emphasis>-Facility und"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:51
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
-msgstr "eine bessere Vorgehensweise bei der Bindung von <emphasis>Interzeptoren</emphasis> an Komponenten sowie eine neue Art von Interzeptor namens <emphasis>Dekorator</emphasis>, der für die Lösung von Business Problemen geeigneter ist."
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:61
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
-msgstr "Dependency-Einspeisung sowie kontextuelles Lebenszyklus-Management erspart dem Benutzer eines unbekannten API das Stellen und die Beantwortung folgender Fragen:"
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:68
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "was ist der Lebenszyklus dieses Objekts?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:71
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "wieviele simultane Clients kann es besitzen?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:75
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "ist es multithreaded?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:83
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "wo kann ich eines bekommen?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:86
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "muss ich es explizit löschen?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:89
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "wo sollte ich meinen Verweis darauf aufbewahren, wenn ich es nicht direkt verwende?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:92
 #, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
-msgstr "wie kann ich ein Indirection-Layer hinzufügen, damit die Implementierung dieses Objekts zum Zeitpunkt des Deployment variieren kann? "
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"Dependency-Einspeisung sowie kontextuelles Lebenszyklus-Management erspart "
+"dem Benutzer eines unbekannten API das Stellen und die Beantwortung "
+"folgender Fragen:"
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "was ist der Lebenszyklus dieses Objekts?"
+
+#. Tag: para
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "wieviele simultane Clients kann es besitzen?"
+
+#. Tag: para
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "ist es multithreaded?"
+
+#. Tag: para
+#: part1.xml:114
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "muss ich es explizit löschen?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr ""
+"wo sollte ich meinen Verweis darauf aufbewahren, wenn ich es nicht direkt "
+"verwende?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"wie kann ich ein Indirection-Layer hinzufügen, damit die Implementierung "
+"dieses Objekts zum Zeitpunkt des Deployment variieren kann? "
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "wie kann ich dieses Objekt mit anderen Objekten teilen?"
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
-msgstr "Ein Web Bean legt nur Typ und Semantik anderer Web Beans fest, von denen es abhängt. Es benötigt keine Informationen zum tatsächlichen Lebenszyklus, konkreter Implementierung, dem Threading-Modell oder anderen Clients eines Web Beans von dem es abhängt. Besser noch - die konkrete Implementierung, der Lebenszyklus und das Threading-Modell eines Web Beans von dem es abhängt können je nach Deployment-Szenario variieren, ohne dass dies Auswirkungen auf irgendeinen Client hätte."
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
+#: part1.xml:142
+#, fuzzy, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
-msgstr "Ereignisse, Interzeptoren und Dekoratoren verbessern die <emphasis>lose Paarung</emphasis>, die diesem Modell innewohnt:"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Ein Web Bean legt nur Typ und Semantik anderer Web Beans fest, von denen es "
+"abhängt. Es benötigt keine Informationen zum tatsächlichen Lebenszyklus, "
+"konkreter Implementierung, dem Threading-Modell oder anderen Clients eines "
+"Web Beans von dem es abhängt. Besser noch - die konkrete Implementierung, "
+"der Lebenszyklus und das Threading-Modell eines Web Beans von dem es abhängt "
+"können je nach Deployment-Szenario variieren, ohne dass dies Auswirkungen "
+"auf irgendeinen Client hätte."
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"Ereignisse, Interzeptoren und Dekoratoren verbessern die <emphasis>lose "
+"Paarung</emphasis>, die diesem Modell innewohnt:"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
 msgid ""
 "<emphasis>event notifications</emphasis> decouple event producers from event "
 "consumers,"
-msgstr "<emphasis>Ereignisbenachrictigungen</emphasis> entkoppeln Ereignis-Producer von Ereignis-Consumern,"
+msgstr ""
+"<emphasis>Ereignisbenachrictigungen</emphasis> entkoppeln Ereignis-Producer "
+"von Ereignis-Consumern,"
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
 msgid ""
 "<emphasis>interceptors</emphasis> decouple technical concerns from business "
 "logic, and"
-msgstr "<emphasis>Interzeptoren</emphasis> entkoppeln technische Probleme von Business-Logik und "
+msgstr ""
+"<emphasis>Interzeptoren</emphasis> entkoppeln technische Probleme von "
+"Business-Logik und "
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
 msgid ""
 "<emphasis>decorators</emphasis> allow business concerns to be "
 "compartmentalized."
-msgstr "<emphasis>Dekoratoren</emphasis> erlauben die Kompartmentalisierung von Business Problemen."
+msgstr ""
+"<emphasis>Dekoratoren</emphasis> erlauben die Kompartmentalisierung von "
+"Business Problemen."
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
+#: part1.xml:168
+#, fuzzy, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
-msgstr "Und das Wichtigste - Web Beans bieten all diese Facilities auf <emphasis>typensichere</emphasis> Weise. Web Beans verwenden nie string-basierte Bezeichner, um zu bestimmen, wie zusammenarbeitende Objekte zusammenpassen. Und XML wird - obwohl es nach wie vor eine Option bleibt - wird selten verwendet. Stattdessen verwenden Web Beans die bereits im Java-Objektmodell verfügbaren Typinformationen gemeinsam mit einem neuen Muster namens <emphasis>Binding-Annotationen</emphasis>, um Web Beans, deren Abhängigkeiten, deren Interzeptoren und Dekoratoren sowie deren Ereignis-Consumer zu verbinden."
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"Und das Wichtigste - Web Beans bieten all diese Facilities auf "
+"<emphasis>typensichere</emphasis> Weise. Web Beans verwenden nie string-"
+"basierte Bezeichner, um zu bestimmen, wie zusammenarbeitende Objekte "
+"zusammenpassen. Und XML wird - obwohl es nach wie vor eine Option bleibt - "
+"wird selten verwendet. Stattdessen verwenden Web Beans die bereits im Java-"
+"Objektmodell verfügbaren Typinformationen gemeinsam mit einem neuen Muster "
+"namens <emphasis>Binding-Annotationen</emphasis>, um Web Beans, deren "
+"Abhängigkeiten, deren Interzeptoren und Dekoratoren sowie deren Ereignis-"
+"Consumer zu verbinden."
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
-msgstr "Die Web Beans Dienste sind allgemein und wenden folgende Komponententypen an, die in der Java EE Umgebung existieren:"
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "alle JavaBeans,"
-
-#. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "alle EJBs und"
-
-#. Tag: para
-#: part1.xml:111
-#, no-c-format
-msgid "all Servlets."
-msgstr "alle Servlets."
-
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
+#: part1.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans bieten sogar die nötigen Integrationspunkte, so dass andere Arten von Komponenten, die durch zukünftige Java EE Spezifikationen oder nicht standardmäßige Frameworks definiert werden, sauber mit Web Beans integriert werden sowie die Web Beans Dienste nutzen und mit anderen Arten von Web Beans interagieren können."
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans bieten sogar die nötigen Integrationspunkte, so dass andere Arten "
+"von Komponenten, die durch zukünftige Java EE Spezifikationen oder nicht "
+"standardmäßige Frameworks definiert werden, sauber mit Web Beans integriert "
+"werden sowie die Web Beans Dienste nutzen und mit anderen Arten von Web "
+"Beans interagieren können."
 
 #. Tag: para
-#: part1.xml:120
-#, no-c-format
+#: part1.xml:189
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Beans wurden durch eine Reihe bestehender Java Frameworks beeinflusst, darunter Seam, Guice und Spring. Jedoch besitzen Web Beans ihre eigenen Eigenschaften: Typesicherer als Seam, mehr stateful und weniger XML-zentrisch als Spring, mehr Web- und Enterprise-anwendungsfähig als Guice."
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Beans wurden durch eine Reihe bestehender Java Frameworks beeinflusst, "
+"darunter Seam, Guice und Spring. Jedoch besitzen Web Beans ihre eigenen "
+"Eigenschaften: Typesicherer als Seam, mehr stateful und weniger XML-"
+"zentrisch als Spring, mehr Web- und Enterprise-anwendungsfähig als Guice."
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
-msgstr "Und das Wichtigste - bei Web Beans handelt es sich um einen JCP-Standard, der sich sauber mit Java EE und mit jeder anderen Java SE Umgebung integrieren lässt, bei der einbettbares EJB Lite verfügbar ist."
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "wo kann ich eines bekommen?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Die Web Beans Dienste sind allgemein und wenden folgende Komponententypen "
+#~ "an, die in der Java EE Umgebung existieren:"
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "alle JavaBeans,"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "alle EJBs und"
+
+#~ msgid "all Servlets."
+#~ msgstr "alle Servlets."
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "Und das Wichtigste - bei Web Beans handelt es sich um einen JCP-Standard, "
+#~ "der sich sauber mit Java EE und mit jeder anderen Java SE Umgebung "
+#~ "integrieren lässt, bei der einbettbares EJB Lite verfügbar ist."

Modified: doc/trunk/reference/de-DE/part2.po
===================================================================
--- doc/trunk/reference/de-DE/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: part2\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-28 07:35+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -19,92 +19,113 @@
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
 msgstr ""
-"Das erste wichtige Thema von Web Beans ist <emphasis>Loose Coupling</emphasis> (lose Paarung). "
-"Wir haben bereits drei Wege gesehen, diese lose Paarung zu erreichen:"
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>Deployment-Typen</emphasis> aktivieren Polymorphie zum Zeitpunkt des Deployment, "
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>Producer Methoden</emphasis> aktivieren Polymorphie zur Runtime, und "
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
 msgstr ""
-"<emphasis>kontextuelles Lebenszyklus-Management</emphasis> entkoppelt Web Bean "
-"Lebenszyklen."
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "Diese Techniken dienen der Aktivierung der losen Paarung (\"Loose Coupling\") von Client und Server. Der Client ist nicht mehr eng an eine API-Implementierung gebunden und muss den Lebenszyklus des Server-Objekts nicht mehr verwalten. Dadurch können <emphasis>Objekte, die \"stateful\" sind, interagieren als seien Sie Dienste </emphasis>."
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Das erste wichtige Thema von Web Beans ist <emphasis>Loose Coupling</"
+#~ "emphasis> (lose Paarung). Wir haben bereits drei Wege gesehen, diese lose "
+#~ "Paarung zu erreichen:"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr "Lose Paarung macht ein System <emphasis>dynamischer</emphasis>. Das System kann auf gut definierte Weise auf Änderungen reagieren. In der Vergangenheit war es der Fall, dass Frameworks die versuchten die obigen Facilities bereitzustellen, dies auf Kosten der Typensicherheit taten. Bei Web Beans handelt es sich um die erste Technologie, die diese Ebene der losen Paarung auf typensichere Weise ermöglicht."
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "<emphasis>Deployment-Typen</emphasis> aktivieren Polymorphie zum "
+#~ "Zeitpunkt des Deployment, "
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr "Web Beans bieten drei weitere wichtige Facilities, die das Ziel loser Paarung weiterbringen:"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "<emphasis>Producer Methoden</emphasis> aktivieren Polymorphie zur "
+#~ "Runtime, und "
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr ""
-"<emphasis>Interzeptoren</emphasis> entkoppeln technische Probleme von Business "
-"Logik,"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>kontextuelles Lebenszyklus-Management</emphasis> entkoppelt Web "
+#~ "Bean Lebenszyklen."
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr "<emphasis>Dekoratoren</emphasis> (\"Decorators\") können eingesetzt werden, um einige Business Probleme zu entkoppeln und"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "Diese Techniken dienen der Aktivierung der losen Paarung (\"Loose Coupling"
+#~ "\") von Client und Server. Der Client ist nicht mehr eng an eine API-"
+#~ "Implementierung gebunden und muss den Lebenszyklus des Server-Objekts "
+#~ "nicht mehr verwalten. Dadurch können <emphasis>Objekte, die \"stateful\" "
+#~ "sind, interagieren als seien Sie Dienste </emphasis>."
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr "<emphasis>Ereignis Benachrichtigungen</emphasis> (\"Event Notifications\") entkoppeln Ereignis-Producer von Ereignis-Konsument."
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "Lose Paarung macht ein System <emphasis>dynamischer</emphasis>. Das "
+#~ "System kann auf gut definierte Weise auf Änderungen reagieren. In der "
+#~ "Vergangenheit war es der Fall, dass Frameworks die versuchten die obigen "
+#~ "Facilities bereitzustellen, dies auf Kosten der Typensicherheit taten. "
+#~ "Bei Web Beans handelt es sich um die erste Technologie, die diese Ebene "
+#~ "der losen Paarung auf typensichere Weise ermöglicht."
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "Sehen wir uns zunächst die Interzeptoren an."
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beans bieten drei weitere wichtige Facilities, die das Ziel loser "
+#~ "Paarung weiterbringen:"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "<emphasis>Interzeptoren</emphasis> entkoppeln technische Probleme von "
+#~ "Business Logik,"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "<emphasis>Dekoratoren</emphasis> (\"Decorators\") können eingesetzt "
+#~ "werden, um einige Business Probleme zu entkoppeln und"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "<emphasis>Ereignis Benachrichtigungen</emphasis> (\"Event Notifications"
+#~ "\") entkoppeln Ereignis-Producer von Ereignis-Konsument."
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "Sehen wir uns zunächst die Interzeptoren an."

Modified: doc/trunk/reference/de-DE/part3.po
===================================================================
--- doc/trunk/reference/de-DE/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: part3\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 15:34+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -19,27 +19,116 @@
 #: part3.xml:5
 #, no-c-format
 msgid ""
-"The second major theme of Web Beans is <emphasis>strong typing</emphasis>. "
-"The information about the dependencies, interceptors and decorators of a Web "
-"Bean, and the information about event consumers for an event producer, is "
-"contained in typesafe Java constructs that may be validated by the compiler."
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
 msgstr ""
-"Das zweite wichtige Thema von Web Beans ist <emphasis>starke Typisierung</emphasis> (sog. \"strong Typing\"). "
-"Die Informationen zu Abhängigkeiten, Interzeptoren und Dekoratoren eines Web "
-"Beans und die Informationen zu Ereigniskonsumenten (Event Consumers) für einen Ereignis-Producer sind in typensicheren Java-Konstrukten enthalten, die vom Kompilierer (Compiler) validiert werden können."
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:17
+#, no-c-format
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:21
+#, no-c-format
 msgid ""
-"You don't see string-based identifiers in Web Beans code, not because the "
-"framework is hiding them from you using clever defaulting rules &#151; so-"
-"called \"configuration by convention\" &#151; but because there are simply no "
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:27
+#, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Das zweite wichtige Thema von Web Beans ist <emphasis>starke Typisierung</"
+"emphasis> (sog. \"strong Typing\"). Die Informationen zu Abhängigkeiten, "
+"Interzeptoren und Dekoratoren eines Web Beans und die Informationen zu "
+"Ereigniskonsumenten (Event Consumers) für einen Ereignis-Producer sind in "
+"typensicheren Java-Konstrukten enthalten, die vom Kompilierer (Compiler) "
+"validiert werden können."
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
 "strings there to begin with!"
-msgstr "Sie sehen keine String-basierten Bezeichner in Web Beans Code; dies ist nicht der Fall weil das Framework diese unter Verwendung irgendwelcher Defaulting-Regeln &#151; vor Ihnen verbirgt; sogenannte \"Konfiguration nach Konvention\" &#151; sondern weil einfach keine Strings existieren!"
+msgstr ""
+"Sie sehen keine String-basierten Bezeichner in Web Beans Code; dies ist "
+"nicht der Fall weil das Framework diese unter Verwendung irgendwelcher "
+"Defaulting-Regeln &#151; vor Ihnen verbirgt; sogenannte \"Konfiguration nach "
+"Konvention\" &#151; sondern weil einfach keine Strings existieren!"
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:74
 #, no-c-format
 msgid ""
 "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
@@ -49,113 +138,135 @@
 "interceptors via annotations instead of names, you have an opportunity to "
 "lift the semantic level of your code."
 msgstr ""
-"Der offensichtliche Vorteil dieser Vorgehensweise ist, dass <emphasis>jede</emphasis> IDE "
-"Auto-Completion, Validierung und Refaktorierung ohne die Notwendigkeit spezieller Tools bereitstellen kann. Es existiert jedoch noch ein weiterer, nicht sofort ersichtlicher Vorteil. "
-"Es stellt sich nämlich heraus, dass Sie - wenn Sie über die Identifizierung von Objekten, Ereignissen oder Interzeptoren via Annotationen statt Namen nachdenken - Sie Gelegenheit haben, die semantische Ebene Ihres Code anzuheben."
+"Der offensichtliche Vorteil dieser Vorgehensweise ist, dass <emphasis>jede</"
+"emphasis> IDE Auto-Completion, Validierung und Refaktorierung ohne die "
+"Notwendigkeit spezieller Tools bereitstellen kann. Es existiert jedoch noch "
+"ein weiterer, nicht sofort ersichtlicher Vorteil. Es stellt sich nämlich "
+"heraus, dass Sie - wenn Sie über die Identifizierung von Objekten, "
+"Ereignissen oder Interzeptoren via Annotationen statt Namen nachdenken - Sie "
+"Gelegenheit haben, die semantische Ebene Ihres Code anzuheben."
 
 #. Tag: para
-#: part3.xml:21
-#, no-c-format
+#: part3.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans encourages you develop annotations that model concepts, for "
-"example,"
-msgstr "Web Beans soll dazu ermutigen Annotationen zu entwickeln, die Konzepte formen, etwa "
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Web Beans soll dazu ermutigen Annotationen zu entwickeln, die Konzepte "
+"formen, etwa "
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:87
 #, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> oder"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "statt Namen wie Assoziationsbegriffe wie "
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> oder"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal> zu verwenden."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
 msgid ""
 "The annotations are reusable. They help describe common qualities of "
 "disparate parts of the system. They help us categorize and understand our "
 "code. They help us deal with common concerns in a common way. They make our "
 "code more literate and more understandable."
-msgstr "Die Annotationen sind wiederverwendbar. Sie helfen bei der Beschreibung gängiger Eigenschaften verschiedener Teile des Systems. Sie helfen uns bei der Kategorisierung und dem Verständnis unseres Codes. Sie helfen uns dabei auf gängige Weise mit gängigen Problemen umzugehen. Sie machen unseren Code leichter lesbar und einfacher zu verstehen."
+msgstr ""
+"Die Annotationen sind wiederverwendbar. Sie helfen bei der Beschreibung "
+"gängiger Eigenschaften verschiedener Teile des Systems. Sie helfen uns bei "
+"der Kategorisierung und dem Verständnis unseres Codes. Sie helfen uns dabei "
+"auf gängige Weise mit gängigen Problemen umzugehen. Sie machen unseren Code "
+"leichter lesbar und einfacher zu verstehen."
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
+#: part3.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
 "stereotype models a common <emphasis>role</emphasis> in your application "
 "architecture. It encapsulates various properties of the role, including "
-"scope, interceptor bindings, deployment type, etc, into a single reusable "
-"package."
-msgstr "Web Beans <emphasis>Stereotypen</emphasis> erweitern diese Idee um einen Schritt. Ein Stereotyp formt eine gängige <emphasis>Rolle</emphasis> in Ihrer Anwendungsarchitektur. Es enthält verschiedene Eigenschaften der Rolle, einschließlich deren Geltungsbereich, Interzeptorbindungen, Deployment-Typ usw. in einem einzelnen, wiederverwendbaren Paket."
-
-#. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid ""
-"Even Web Beans XML metadata is strongly typed! There's no compiler for XML, "
-"so Web Beans takes advantage of XML schemas to validate the Java types and "
-"attributes that appear in XML. This approach turns out to make the XML more "
-"literate, just like annotations made our Java code more literate."
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
 msgstr ""
-"Sogar Web Beans XML Metadaten sind stark typisiert! Es gibt keinen Kompilierer für XML, "
-"daher nutzen Web Beans XML-Schemas zur Validierung der in XML vorkommenden Java-Typen und Attribute. Diese Vorgehensweise führt zur besseren Lesbarkeit der XML, ebenso wie Annotationen unseren Java Code einfacher lesbar machten."
+"Web Beans <emphasis>Stereotypen</emphasis> erweitern diese Idee um einen "
+"Schritt. Ein Stereotyp formt eine gängige <emphasis>Rolle</emphasis> in "
+"Ihrer Anwendungsarchitektur. Es enthält verschiedene Eigenschaften der "
+"Rolle, einschließlich deren Geltungsbereich, Interzeptorbindungen, "
+"Deployment-Typ usw. in einem einzelnen, wiederverwendbaren Paket."
 
 #. Tag: para
-#: part3.xml:71
-#, no-c-format
+#: part3.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"We're now ready to meet some more advanced features of Web Beans. Bear in "
-"mind that these features exist to make our code both easier to validate and "
-"more understandable. Most of the time you don't ever really <emphasis>need</"
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
 "emphasis> to use these features, but if you use them wisely, you'll come to "
 "appreciate their power."
-msgstr "Wir können jetzt einige fortgeschrittenere Features von Web Beans kennenlernen. Vergessen Sie nicht, dass diese Features unseren Code sowohl einfacher zu validieren als auch leserlicher machen sollen. Meist werden Sie diese Features nicht verwenden <emphasis>müssen</emphasis>, wenn Sie dies aber auf kluge Weise tun, so werden Sie deren Vorteile schnell zu schätzen wissen."
+msgstr ""
+"Wir können jetzt einige fortgeschrittenere Features von Web Beans "
+"kennenlernen. Vergessen Sie nicht, dass diese Features unseren Code sowohl "
+"einfacher zu validieren als auch leserlicher machen sollen. Meist werden Sie "
+"diese Features nicht verwenden <emphasis>müssen</emphasis>, wenn Sie dies "
+"aber auf kluge Weise tun, so werden Sie deren Vorteile schnell zu schätzen "
+"wissen."
 
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Sogar Web Beans XML Metadaten sind stark typisiert! Es gibt keinen "
+#~ "Kompilierer für XML, daher nutzen Web Beans XML-Schemas zur Validierung "
+#~ "der in XML vorkommenden Java-Typen und Attribute. Diese Vorgehensweise "
+#~ "führt zur besseren Lesbarkeit der XML, ebenso wie Annotationen unseren "
+#~ "Java Code einfacher lesbar machten."

Modified: doc/trunk/reference/de-DE/part4.po
===================================================================
--- doc/trunk/reference/de-DE/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: part4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-28 06:47+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -19,42 +19,73 @@
 #: part4.xml:5
 #, no-c-format
 msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
 msgstr ""
-"Das dritte Thema von Web Beans ist die <emphasis>Integration</emphasis>. Web Beans "
-"wurden derart entwickelt, dass sie mit anderer Technologie zusammenarbeiten und dem Anwendungsentwickler dabei helfen, diese andere Technologie zusammenzufügen. Bei Web Beans handelt es sich um offene Technologie. Sie bilden einen Teil des Java EE Ökosystems und sind selbst die Grundlage für ein neues Ökosystem portabler Erweiterungen und Integration mit bestehenden Frameworks und bestehender Technologie."
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
 msgstr ""
-"Wir haben bereits gesehen, wie Web Beans bei der Integration von EJB und JSF helfen, indem sie gestatten, dass EJBs direkt an JSF-Seiten gebunden werden. Das ist nur der Anfang. Web Beans "
-"bieten dasselbe Potential zur Diversifizierung anderer Technologien, wie etwa Business "
-"Process Management Engines, anderer Web Frameworks und Komponentenmodellen Dritter. Die Java EE Plattform wird nie zur Standardisierung aller interessanter Technologien in der Lage sein, die bei der Entwicklung von Java-Anwendungen verwendet werden, aber Web Beans vereinfachen die nahtlose Verwendung solcher Technologien, die noch nicht Teil der Plattform sind, innerhalb einer Java EE Umgebung."
+"Wir haben bereits gesehen, wie Web Beans bei der Integration von EJB und JSF "
+"helfen, indem sie gestatten, dass EJBs direkt an JSF-Seiten gebunden werden. "
+"Das ist nur der Anfang. Web Beans bieten dasselbe Potential zur "
+"Diversifizierung anderer Technologien, wie etwa Business Process Management "
+"Engines, anderer Web Frameworks und Komponentenmodellen Dritter. Die Java EE "
+"Plattform wird nie zur Standardisierung aller interessanter Technologien in "
+"der Lage sein, die bei der Entwicklung von Java-Anwendungen verwendet "
+"werden, aber Web Beans vereinfachen die nahtlose Verwendung solcher "
+"Technologien, die noch nicht Teil der Plattform sind, innerhalb einer Java "
+"EE Umgebung."
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
+#: part4.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
-msgstr "Wir wollen Ihnen jetzt zeigen, wie Sie die Java EE platform in einer Web Beans verwendenden Anwendung am besten nutzen. Wir sehen uns auch kurz einen Satz von SPIs an, die portable Erweiterungen zu Web Beans unterstützen sollen. Sie werden diese SPIs vielleicht nie direkt benutzen müssen, aber es ist hilfreich diese zu kennen, falls Sie sie einmal brauchen. Primär ist wichtig, dass Sie diese bei jeder Verwendung von Erweiterungen Dritter indirekt nutzen können."
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Wir wollen Ihnen jetzt zeigen, wie Sie die Java EE platform in einer Web "
+"Beans verwendenden Anwendung am besten nutzen. Wir sehen uns auch kurz einen "
+"Satz von SPIs an, die portable Erweiterungen zu Web Beans unterstützen "
+"sollen. Sie werden diese SPIs vielleicht nie direkt benutzen müssen, aber es "
+"ist hilfreich diese zu kennen, falls Sie sie einmal brauchen. Primär ist "
+"wichtig, dass Sie diese bei jeder Verwendung von Erweiterungen Dritter "
+"indirekt nutzen können."
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Das dritte Thema von Web Beans ist die <emphasis>Integration</emphasis>. "
+#~ "Web Beans wurden derart entwickelt, dass sie mit anderer Technologie "
+#~ "zusammenarbeiten und dem Anwendungsentwickler dabei helfen, diese andere "
+#~ "Technologie zusammenzufügen. Bei Web Beans handelt es sich um offene "
+#~ "Technologie. Sie bilden einen Teil des Java EE Ökosystems und sind selbst "
+#~ "die Grundlage für ein neues Ökosystem portabler Erweiterungen und "
+#~ "Integration mit bestehenden Frameworks und bestehender Technologie."

Modified: doc/trunk/reference/de-DE/part5.po
===================================================================
--- doc/trunk/reference/de-DE/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/de-DE/producermethods.po
===================================================================
--- doc/trunk/reference/de-DE/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: producermethods\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-23 08:08+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -23,13 +23,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "Producer-Methoden gestatten es uns, bestimmte Beschränkungen zu umgehen, die "
 "auftreten, wenn der Web Bean Manager statt die Anwendung für die "
@@ -38,104 +37,96 @@
 "Beans sind. (In <xref linkend=\"xml\"/> lernen wir eine zweite Weise kennen.)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "Gemäß der Spezifikation:"
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, fuzzy, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "Geltungsbereich einer Producer-Methode"
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -151,15 +142,15 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, fuzzy, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
@@ -167,29 +158,29 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "Geltungsbereich einer Producer-Methode"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "Der Geltungsbereich der Producer-Methode ist standardmäßig "
@@ -200,7 +191,7 @@
 "Objekts für jede Benutzer-Session vorhanden sein."
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -210,12 +201,12 @@
 "<literal>@SessionScoped</literal>-Annotation hinzufügen."
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -224,7 +215,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -236,13 +227,13 @@
 "Producer-Methode wird in drselben Session nicht mehr aufgerufen."
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "Einspeisung in Producer-Methoden"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -258,30 +249,30 @@
 "nutzen und besitzen keine Interzeptoren."
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "Falls dies nicht das ist was wir wünschen, so können wir Dependency-"
 "Einspeisung in die Producer-Methode verwenden, um Web Bean Instanzen zu "
 "erhalten: "
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -297,17 +288,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "Aber Moment mal, was wenn <literal>CreditCardPaymentStrategy</literal> ein "
 "anfragenbegrenztes Web Bean ist? Dann hat die Producer-Methode die Wirkung, "
@@ -320,13 +311,13 @@
 "vorsichtig wenn Sie Web Bean Instanzen von Producer-Methoden wiedergeben!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "Es existieren mindestens drei Arten, wie dieser Fehler behoben werden kann. "
@@ -337,43 +328,43 @@
 "<literal>@RequestScoped</literal> zu ändern."
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "Eine gängigere Lösung ist es jedoch, die spezielle <literal>@New</literal> "
 "Binding-Annotation zu verwenden."
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "Verwendung von <literal>@New</literal> mit Producer-Methoden"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "Sehen Sie sich folgende Producer-Methode an:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -391,7 +382,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -408,6 +399,60 @@
 "gelöscht bis das <literal>Preferences</literal>-Objekt gelöscht wird, meist "
 "am Ende der Session."
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "Producer-Methoden"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/de-DE/resources.po
===================================================================
--- doc/trunk/reference/de-DE/resources.po	                        (rev 0)
+++ doc/trunk/reference/de-DE/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language de-DE translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/de-DE/ri-spi.po
===================================================================
--- doc/trunk/reference/de-DE/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ri-spi\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-05 14:40+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -18,38 +18,58 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, fuzzy, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr "Integration der Web Beans RI in andere Umgebungen"
 
 #. Tag: para
 #: ri-spi.xml:6
+#, no-c-format
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:12
 #, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "Laden von Ressourcen"
+
+#. Tag: para
+#: ri-spi.xml:13
+#, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
-"Derzeit läuft die Web Beans RI nur in JBoss AS 5; die Implementierung der RI "
-"in andere EE-Umgebungen (zum Beispiel einen anderen Applikationsserver wie "
-"Glassfish) in einen Servlet-Container (wie Tomcat) oder eine Embedded EJB3.1 "
-"Implementierung ist recht einfach. In diesem Anhang gehen wir kurz auf die "
-"notwendigen Schritte ein."
 
+#. Tag: para
+#: ri-spi.xml:21
+#, no-c-format
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:27
 #, fuzzy, no-c-format
-msgid "The Web Beans SPI"
+msgid "The Weld SPI"
 msgstr "Das Web Beans RI SPI"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:29
 #, fuzzy, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
 msgstr ""
 "Das Web Beans SPI befindet sich im <literal>webbeans-ri-spi</literal>-Modul "
 "und ist als <literal>webbeans-ri-spi.jar</literal> verpackt. Einige SPIs "
@@ -57,7 +77,7 @@
 "möchten, sind andere erforderlich."
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:35
 #, no-c-format
 msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
@@ -67,244 +87,205 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean Discovery"
+msgid "Deployment structure"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:58
+#, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
-"<![CDATA[public interface WebBeanDiscovery {\n"
-"   /**\n"
-"    * Gets list of all classes in classpath archives with web-beans.xml "
-"files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all web-beans.xml files in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the web-beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();\n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, fuzzy, no-c-format
+#: ri-spi.xml:67
+#, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
-"Die Discovery von Web Bean Klassen und <literal>web-bean.xml</literal> "
-"Dateien versteht sich von selbst (der Algorithmus wird in Abschnitt 11.1 der "
-"JSR-299 Spezifikation beschrieben, weswegen hier nicht darauf eingegangen "
-"wird)."
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
-#, fuzzy, no-c-format
+#: ri-spi.xml:100
+#, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
-"Die Web Beans RI delegiert auch EJB3 Bean Discovery an den Container, so "
-"dass er nicht nach EJB3-Annotationen scannen oder <literal>ejb-jar.xml</"
-"literal> parsen muss. Für jedes EJB in der Anwendung sollte der "
-"EJBDescriptor aufgefunden werden:"
 
-#. Tag: programlisting
-#: ri-spi.xml:62
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T> {\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();\n"
-"   \n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:124
+#, no-c-format
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:132
+#, no-c-format
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:155
+#, no-c-format
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
 "Der <literal>EjbDescriptor</literal> ist recht leicht verständlich und "
 "sollte relevante Metadaten wie in der EJB-Spezifikation definiert "
 "wiedergeben. Neben diesen beiden Interfaces existiert ein "
@@ -312,149 +293,148 @@
 "Interface repräsentiert (die Interface-Klasse und den für die Suche einer "
 "Instanz des EJB verwendeten jndi-Namens enthaltend)."
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
-#, fuzzy, no-c-format
+#: ri-spi.xml:171
+#, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
-"Die Auflösung von <literal>@EJB</literal>, <literal>@PersistenceContext</"
-"literal> und <literal>@Resource</literal> wird an den Container delegiert. "
-"Sie müssen eine Implemntierung von <literal>org.jboss.webbeans.ejb.spi."
-"EjbResolver</literal> bereitstellen, die diese Operationen liefert. Web "
-"Beans gibt an den <literal>javax.inject.manager.InjectionPoint</literal> "
-"weiter für den die Auflösung ist sowie den für jede Auflösungsanfrage "
-"verwendeten <literal>NamingContext</literal>."
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
+#. Tag: para
+#: ri-spi.xml:182
 #, no-c-format
-msgid "JPA services"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:189
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:195
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:201
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: title
+#: ri-spi.xml:210
 #, no-c-format
+msgid "EJB services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:212
+#, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:234
 #, no-c-format
-msgid "Transaction Services"
+msgid "JPA services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:253
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:258
 #, no-c-format
 msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
@@ -464,7 +444,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -474,40 +454,20 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
-#, no-c-format
-msgid "JMS services"
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:167
-#, no-c-format
-msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
-msgstr ""
-
-#. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:272
 #, fuzzy, no-c-format
 msgid "Resource Services"
 msgstr "Laden von Ressourcen"
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:274
 #, fuzzy, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 "Die Auflösung von <literal>@EJB</literal>, <literal>@PersistenceContext</"
 "literal> und <literal>@Resource</literal> wird an den Container delegiert. "
@@ -518,43 +478,134 @@
 "verwendeten <literal>NamingContext</literal>."
 
 #. Tag: title
-#: ri-spi.xml:194
+#: ri-spi.xml:283
+#, fuzzy, no-c-format
+msgid "Injection Services"
+msgstr "Laden von Ressourcen"
+
+#. Tag: para
+#: ri-spi.xml:285
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:291
+#, no-c-format
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:298
+#, no-c-format
+msgid ""
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:307
 #, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "Laden von Ressourcen"
+
+#. Tag: para
+#: ri-spi.xml:309
+#, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
-"Die Auflösung von <literal>@EJB</literal>, <literal>@PersistenceContext</"
-"literal> und <literal>@Resource</literal> wird an den Container delegiert. "
-"Sie müssen eine Implemntierung von <literal>org.jboss.webbeans.ejb.spi."
-"EjbResolver</literal> bereitstellen, die diese Operationen liefert. Web "
-"Beans gibt an den <literal>javax.inject.manager.InjectionPoint</literal> "
-"weiter für den die Auflösung ist sowie den für jede Auflösungsanfrage "
-"verwendeten <literal>NamingContext</literal>."
 
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:317
 #, no-c-format
+msgid "Bean Validation Services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:319
+#, no-c-format
+msgid ""
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:327
+#, no-c-format
+msgid "Identifying the BDA being addressed"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:329
+#, no-c-format
+msgid ""
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:337
+#, no-c-format
+msgid ""
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:343
+#, no-c-format
+msgid ""
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
+msgstr ""
+
+#. Tag: literal
+#: ri-spi.xml:350
+#, no-c-format
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:352
+#, no-c-format
+msgid ""
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
 msgid "The bean store"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:364
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 "Web Beans erwartet, dass der Applikations-Server oder anderer Container den "
 "Speicher für den Kontext jeder Applikation bereitstellt. Der <literal>org."
@@ -564,19 +615,19 @@
 "helpers.ConcurrentHashMapBeanStore</literal> hilfreich."
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:372
 #, no-c-format
 msgid "The application context"
 msgstr "Der Applikationskontext"
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:374
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 "Web Beans erwartet, dass der Applikations-Server oder anderer Container den "
 "Speicher für den Kontext jeder Applikation bereitstellt. Der <literal>org."
@@ -586,20 +637,20 @@
 "helpers.ConcurrentHashMapBeanStore</literal> hilfreich."
 
 #. Tag: title
-#: ri-spi.xml:231
-#, no-c-format
-msgid "Bootstrap and shutdown"
+#: ri-spi.xml:383
+#, fuzzy, no-c-format
+msgid "Initialization and shutdown"
 msgstr "Bootstrap und Shutdown"
 
 #. Tag: para
-#: ri-spi.xml:232
-#, no-c-format
+#: ri-spi.xml:384
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 "Das <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal>-Interface "
 "definiert den Bootstrap für Web Beans. Um Web Beans zu booten müssen Sie "
@@ -609,14 +660,14 @@
 "anfragen."
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:391
 #, fuzzy, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 "Der Bootstrap ist in Phasen aufgeteilt, Bootstrap Initialisierung und "
 "Bootstrap. Die Initialisierung erstellt einen Manager und fügt die Standard-"
@@ -625,37 +676,15 @@
 "unter Verwendung von XML definierte Beans hinzu; und validiert alle Beans."
 
 #. Tag: para
-#: ri-spi.xml:249
-#, no-c-format
-msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:260
-#, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:398
 #, fuzzy, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
 msgstr ""
 "Zur Initialisierung des Bootstrap rufen Sie <literal>Bootstrap.initialize()</"
 "literal> auf. Ehe Sie <literal>initialize()</literal> aufrufen, müssen Sie "
@@ -665,72 +694,67 @@
 "Sie diese setzen, ehe Sie <literal>initialize()</literal> aufrufen."
 
 #. Tag: para
-#: ri-spi.xml:276
-#, no-c-format
+#: ri-spi.xml:405
+#, fuzzy, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
 "Nach Aufruf von <literal>initialize()</literal> erhalten Sie den "
 "<literal>Manager</literal> durch Aufruf von <literal>Bootstrap.getManager()</"
 "literal>."
 
 #. Tag: para
-#: ri-spi.xml:282
+#: ri-spi.xml:410
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid ""
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
-#, fuzzy, no-c-format
+#: ri-spi.xml:414
+#, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
-"Um den Container herunterzufahren, rufen Sie you call <literal>Bootstrap."
-"shutdown()</literal> auf. Dies gestattet es dem Container notwendige "
-"Bereinigungsvorgänge durchzuführen."
 
-#. Tag: title
-#: ri-spi.xml:296
-#, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
-
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
-#, no-c-format
+#: ri-spi.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
+"Um den Container herunterzufahren, rufen Sie you call <literal>Bootstrap."
+"shutdown()</literal> auf. Dies gestattet es dem Container notwendige "
+"Bereinigungsvorgänge durchzuführen."
 
 #. Tag: title
-#: ri-spi.xml:315
+#: ri-spi.xml:431
 #, no-c-format
 msgid "Resource loading"
 msgstr "Laden von Ressourcen"
 
 #. Tag: para
-#: ri-spi.xml:317
+#: ri-spi.xml:433
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
+"Weld needs to load classes and resources from the classpath at various "
 "times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
 msgstr ""
 "Die Web Beans RI muss Klassen und Ressourcen zu verschiedenen Zeiten aus dem "
 "Klasspfad laden. Standardmäßig werden diese aus demselben Klasslader "
@@ -739,137 +763,36 @@
 "können Sie <literal>org.jboss.webbeans.spi.ResourceLoader</literal> "
 "implementieren:"
 
-#. Tag: programlisting
-#: ri-spi.xml:326
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
-msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
-
 #. Tag: title
-#: ri-spi.xml:331
-#, fuzzy, no-c-format
-msgid "Servlet injection"
-msgstr "Servlet-Listener"
-
-#. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:445
 #, no-c-format
-msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:339
-#, no-c-format
-msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:345
-#, fuzzy, no-c-format
-msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
-msgstr ""
-"Nach Aufruf von <literal>initialize()</literal> erhalten Sie den "
-"<literal>Manager</literal> durch Aufruf von <literal>Bootstrap.getManager()</"
-"literal>."
-
-#. Tag: title
-#: ri-spi.xml:356
-#, no-c-format
 msgid "The contract with the container"
 msgstr "Der Vertrag mit dem Container"
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 "Es gibt eine Reihe von Voraussetzungen, die Web Beans RI dem Container für "
 "das korrekte Funktionieren von Implementierungen auferlegen, die außerhalb "
 "von Implementierung von APIs fallen."
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Klassenlader-Isolierung"
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 "Falls Sie die Web Beans RI in eine Umgebung integrieren, die das Deployment "
 "mehrerer Anwendungen unterstützt, so müssen Sie automatisch oder über "
@@ -877,19 +800,19 @@
 "Anwendung aktivieren."
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
-#, no-c-format
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 "Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
 "<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
@@ -897,21 +820,27 @@
 "Benutzerkonfiguration. Dies muss für jede Servlet benutzende Web Beans "
 "Applikation erfolgen."
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 "Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
 "<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
@@ -920,14 +849,12 @@
 "Applikation erfolgen."
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 "Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
 "<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
@@ -936,26 +863,115 @@
 "Applikation erfolgen."
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
+"Servlet-Listener registrieren, entweder automatisch oder aber durch "
+"Benutzerkonfiguration. Dies muss für jede Servlet benutzende Web Beans "
+"Applikation erfolgen."
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
+"Servlet-Listener registrieren, entweder automatisch oder aber durch "
+"Benutzerkonfiguration. Dies muss für jede Servlet benutzende Web Beans "
+"Applikation erfolgen."
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Session Bean Interzeptor"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 "Falls Sie Web Beans in eine EJB Umgebung integrieren, müssen Sie "
 "<literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> als einen "
@@ -964,7 +980,7 @@
 "Enterprise Beans benutzende Web Beans Applikation erfolgen."
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -972,43 +988,539 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, fuzzy, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "Die <literal>webbeans-ri.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
-#, fuzzy, no-c-format
+#: ri-spi.xml:590
+#, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
-"Falls Sie Web Beans in eine Umgebung integrieren, die das Deployment von "
-"Anwendungen unterstützt, so müssen Sie die <literal>webbeans-ri.jar</"
-"literal> in den isolierten Klassenlader der Anwendungen einfügen. Das Laden "
-"kann nicht aus einem geteilten Klassenlader erfolgen."
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#, fuzzy
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "Derzeit läuft die Web Beans RI nur in JBoss AS 5; die Implementierung der "
+#~ "RI in andere EE-Umgebungen (zum Beispiel einen anderen Applikationsserver "
+#~ "wie Glassfish) in einen Servlet-Container (wie Tomcat) oder eine Embedded "
+#~ "EJB3.1 Implementierung ist recht einfach. In diesem Anhang gehen wir kurz "
+#~ "auf die notwendigen Schritte ein."
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean Discovery"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface WebBeanDiscovery {\n"
+#~ "   /**\n"
+#~ "    * Gets list of all classes in classpath archives with web-beans.xml "
+#~ "files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all web-beans.xml files in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the web-beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "Die Discovery von Web Bean Klassen und <literal>web-bean.xml</literal> "
+#~ "Dateien versteht sich von selbst (der Algorithmus wird in Abschnitt 11.1 "
+#~ "der JSR-299 Spezifikation beschrieben, weswegen hier nicht darauf "
+#~ "eingegangen wird)."
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Die Web Beans RI delegiert auch EJB3 Bean Discovery an den Container, so "
+#~ "dass er nicht nach EJB3-Annotationen scannen oder <literal>ejb-jar.xml</"
+#~ "literal> parsen muss. Für jedes EJB in der Anwendung sollte der "
+#~ "EJBDescriptor aufgefunden werden:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T> {\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();\n"
+#~ "   \n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The resolution of <literal>@EJB</literal> (for injection into simple "
+#~ "beans), the resolution of local EJBs (for backing session beans) and "
+#~ "remote EJBs (for injection as a Java EE resource) is delegated to the "
+#~ "container. You must provide an implementation of <literal>org.jboss."
+#~ "webbeans.ejb.spi.EjbServices</literal> which provides these operations. "
+#~ "For resolving the <literal>@EJB</literal> injection point, Web Beans will "
+#~ "provide the <literal>InjectionPoint</literal>; for resolving local EJBs, "
+#~ "the <literal>EjbDescriptor</literal> will be provided, and for remote "
+#~ "EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or "
+#~ "<literal>ejbLink</literal> will be provided."
+#~ msgstr ""
+#~ "Die Auflösung von <literal>@EJB</literal>, <literal>@PersistenceContext</"
+#~ "literal> und <literal>@Resource</literal> wird an den Container "
+#~ "delegiert. Sie müssen eine Implemntierung von <literal>org.jboss.webbeans."
+#~ "ejb.spi.EjbResolver</literal> bereitstellen, die diese Operationen "
+#~ "liefert. Web Beans gibt an den <literal>javax.inject.manager."
+#~ "InjectionPoint</literal> weiter für den die Auflösung ist sowie den für "
+#~ "jede Auflösungsanfrage verwendeten <literal>NamingContext</literal>."
+
+#, fuzzy
+#~ msgid ""
+#~ "The resolution of <literal>@Resource</literal> (for injection into simple "
+#~ "beans) and the resolution of resources (for injection as a Java EE "
+#~ "resource) is delegated to the container. You must provide an "
+#~ "implementation of <literal>ResourceServices</literal> which provides "
+#~ "these operations. For resolving the <literal>@Resource</literal> "
+#~ "injection, Web Beans will provide the <literal>InjectionPoint</literal>; "
+#~ "and for Java EE resources, the <literal>jndiName</literal> or "
+#~ "<literal>mappedName</literal> will be provided."
+#~ msgstr ""
+#~ "Die Auflösung von <literal>@EJB</literal>, <literal>@PersistenceContext</"
+#~ "literal> und <literal>@Resource</literal> wird an den Container "
+#~ "delegiert. Sie müssen eine Implemntierung von <literal>org.jboss.webbeans."
+#~ "ejb.spi.EjbResolver</literal> bereitstellen, die diese Operationen "
+#~ "liefert. Web Beans gibt an den <literal>javax.inject.manager."
+#~ "InjectionPoint</literal> weiter für den die Auflösung ist sowie den für "
+#~ "jede Auflösungsanfrage verwendeten <literal>NamingContext</literal>."
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#, fuzzy
+#~ msgid "Servlet injection"
+#~ msgstr "Servlet-Listener"
+
+#, fuzzy
+#~ msgid ""
+#~ "To perform injection on a servlet call <literal>WebBeansManager."
+#~ "injectServlet()</literal>. The manager can be obtained from "
+#~ "<literal>Bootstrap.getManager()</literal>."
+#~ msgstr ""
+#~ "Nach Aufruf von <literal>initialize()</literal> erhalten Sie den "
+#~ "<literal>Manager</literal> durch Aufruf von <literal>Bootstrap.getManager"
+#~ "()</literal>."
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "Falls Sie Web Beans in eine Servlet Umgebung integrieren, müssen Sie "
+#~ "<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> als einen "
+#~ "Servlet-Listener registrieren, entweder automatisch oder aber durch "
+#~ "Benutzerkonfiguration. Dies muss für jede Servlet benutzende Web Beans "
+#~ "Applikation erfolgen."
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "Falls Sie Web Beans in eine Umgebung integrieren, die das Deployment von "
+#~ "Anwendungen unterstützt, so müssen Sie die <literal>webbeans-ri.jar</"
+#~ "literal> in den isolierten Klassenlader der Anwendungen einfügen. Das "
+#~ "Laden kann nicht aus einem geteilten Klassenlader erfolgen."
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "

Modified: doc/trunk/reference/de-DE/scopescontexts.po
===================================================================
--- doc/trunk/reference/de-DE/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: scopescontexts\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-05 17:54+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,20 +16,19 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "Geltungsbereiche und Kontexte"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "Bis jetzt haben wir ein paar Beispiele von <emphasis>Geltungsbereichtyp-"
 "Annotationen</emphasis> gesehen. Der Geltungsbereich eines Web Beans "
@@ -38,36 +37,36 @@
 "beziehen. Gemäß der Web Beans Spezifikation bestimmt ein Geltungsbereich:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr ""
 "Wann eine neue Instanz eines beliebigen Web Beans mit diesem Geltungsbereich "
 "erstellt wird"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr ""
 "Wenn eine bestehende Instanz eines beliebigen Web Beans mit diesem "
 "Geltungsbereich gelöscht wird"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 "Welche eingespeisten Referenzen auf eine beliebige Instanz eines Web Beans "
 "mit diesem Geltungsbereich verweisen"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -80,30 +79,38 @@
 "wenn <literal>CurrentUser</literal> erstmals in dieser Session benötigt wird "
 "und automatisch gelöscht, wenn die Session endet."
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "Typen von Geltungsbereichen"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Beans besitzen ein <emphasis>erweiterbares Kontextmodell</emphasis>. Es "
 "ist möglich, neue Geltungsbereiche zu definieren, indem man eine neue "
 "Annotation für einen Geltungsbereich-Typ erstellt:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -112,13 +119,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "Natürlich ist dies der einfache Teil des Jobs. Damit dieser Typ von "
 "Geltungsbereich von Nutzen ist, müssen wir außerdem ein <literal>Context</"
@@ -127,18 +136,18 @@
 "technisches Unterfangen, das nur für Framework-Entwicklung vorgesehen ist."
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Wir können eine Annotation eines Geltungsbereich-Typs an einer Web Bean "
 "Implementierungsklasse anwenden, um den Geltungsbereich des Web Beans "
 "festzulegen:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -148,57 +157,57 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr ""
 "In der Regel verwenden Sie einen der eingebauten Geltungsbereiche der Web "
 "Beans."
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "Eingebaute Geltungsbereiche"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beans definiert vier eingebaute Geltungsbereiche:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Für eine Web Beans verwendende Webanwendung:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -208,56 +217,64 @@
 "Geltungsbereiche der Anwendung und zusätzlich "
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr ""
 "hat jede JSF-Anfrage Zugriff auf einen aktiven Konversations-Geltungsbereich."
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "Die Geltungsbereiche von Anfrage und Applikation sind ebenfalls aktiv:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "während Aufrufen von EJB Remote-Methoden,"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "während EJB-Timeouts,"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "während Message Delivery an ein message-betriebenes Bean und "
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "während Aufrufen von Webdiensten."
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "Versucht die Applikation ein Web Bean aufzurufen, das keinen aktiven Kontext "
 "besitzt, so wird zur Runtime eine <literal>ContextNotActiveException</"
 "literal> vom Web Bean Manager gemeldet."
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -269,19 +286,19 @@
 "Einer der Geltungsbereiche jedoch ist neu."
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "Der Geltungsbereich der Konversation"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Der Web Beans Geltungsbereich der Konversation ähnelt dem herkömmlichen "
 "Geltungsbereich der Session dahingehend, dass er den mit einem Benutzer des "
@@ -290,29 +307,28 @@
 "Geltungsbereich der Konversation jedoch:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "ist explizit durch die Applikation demarkiert und "
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"verwahrt den mit einem bestimmten Webbrowser assoziierten Status in einer "
-"JSF-Applikation."
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "Eine Konversation repräsentiert aus Perspektive des Benutzers eine Aufgabe, "
 "eine Arbeitseinheit. Der Konversationskontext enthält den Status dessen, "
@@ -320,10 +336,10 @@
 "mehreren Dingen, so existieren mehrere Konversationen."
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -335,31 +351,30 @@
 "fortgepflanzt werden."
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "Konversationsdemarkierung"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans liefert ein eingebautes Web Bean für die Steuerung des "
 "Lebenszyklus von Konversationen in einer JSF-Applikation. Dieses Web Bean "
 "kann durch Einspeisung erhalten werden:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation Konversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -375,49 +390,47 @@
 "terminieren, rufen Sie <literal>end()</literal> auf."
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "IIm folgenden Beispiel steuert ein konversationsbegrenztes Web Bean die "
 "Konversation, mit der es assoziiert ist:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -451,12 +464,12 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Dieses Web Bean ist in der Lage, seinen eigenen Lebenszyklus durch "
 "Verwendung der <literal>Conversation</literal>-API zu steuern. Aber einige "
@@ -464,33 +477,33 @@
 "Objekt abhängt."
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "Konversationsfortpflanzung (Conversation Propagation)"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "Der Konversationskontext wird automatisch mit allen JSF Faces Anfragen "
 "fortgepflanzt(JSF-Formulareinreichung). Nicht-Faces Anfragen werden nicht "
 "automatisch fortgepflanzt, zum Beispiel Navigation via einem Link."
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "Wir können die Konversation zwingen, mit einer nicht-Faces Anfrage "
 "fortzupflanzen, indem wir den eindeutigen Bezeichner der Konversation als "
@@ -501,13 +514,13 @@
 "<literal>conversation</literal> besitzt."
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "Daher pflanzt das folgende Link die Konversation fort:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -517,15 +530,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "Der Web Bean Manager muss auch Konversationen über ein Redirect "
 "fortpflanzen, selbst wenn die Konversation nicht als lange laufend "
 "gekennzeichnet ist. Dies macht die Implementierung des POST-then-redirect "
@@ -534,20 +561,21 @@
 "Manager automatisch einen Anfragenparameter hinzu, um die URL umzuleiten."
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "Konversations-Timeout"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Dem Web Bean Manager ist gestattet, eine Konversation und alle Stati "
 "innerhalb seines Kontexts zu jedem Zeitpunkt zu löschen, um Ressourcen zu "
@@ -557,11 +585,11 @@
 "Zeitraum von Inaktivität, ehe die Konversation gelöscht wird."
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "Das <literal>Conversation</literal>-Objekt liefert eine Methode, mit der der "
@@ -569,24 +597,24 @@
 "der die Einstellung ignorieren kann."
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "Der abhängige Pseudo-Geltungsbereich (\"Pseudo-Scope\")"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "Neben den vier eingebauten Geltungsbereichen bieten Web Beans den "
 "sogenannten<emphasis>abhängigen Pseudo-Geltungsbereich</emphasis>. Dies ist "
@@ -594,104 +622,76 @@
 "einen Typ von Geltungsbereich deklariert."
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "Zum Beispiel besitzt dieses Web Bean den Geltungsbereich-Typ "
 "<literal>@Dependent</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Wenn der Einspeisungspunkt eines Web Bean zu einem abhängigen Web Bean hin "
-"aufgelöst wird, so wird jedes Mal, wenn das erste Web Bean instantiiert "
-"wird, eine neue Instanz des abhängigen Web Beans erstellt. Instanzen "
-"abhängiger Web Beans werden nie von unterschiedlichen Web Beans oder "
-"unterschiedlichen Einspeisungspunkten geteilt. Sie sind <emphasis>abhängige "
-"Objekte</emphasis> einer anderen Web Bean Instanz."
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"Abhängige Web Bean Instanzen werden gelöscht, wenn die Instanz von der sie "
-"abhängen gelöscht wird."
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Beans machen es einfach, eine unabhängige Instanz einer Java-Klasse oder "
 "eines EJB-Beans zu erhalten, selbst wenn die Klasse oder das EJB-Bean "
 "bereits als ein Web Bean mit einem anderen Typ von Geltungsbereich "
 "deklariert sind."
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "Die <literal>@New</literal>-Annotation"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"Die eingebaute <literal>@New</literal> Binding-Annotation gestattet die "
-"<emphasis>implizite</emphasis> Definition eines abhängigen Web Beans an "
-"einem Einspeisungspunkt. Nehmen wir an, wir deklarieren das folgende "
-"eingespeiste Feld:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"Dann wird ein Web Bean mit Geltungsbereich <literal>@Dependent</literal>, "
-"Binding-Typ <literal>@New</literal>, API-Typ <literal>Calculator</literal>, "
-"Implementierungsklasse <literal>Calculator</literal> und Deployment-Typ "
-"<literal>@Standard</literal> impliziert definiert."
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "Dies ist wahr, selbst wenn <literal>Calculator</literal> <emphasis>bereits</"
@@ -699,7 +699,7 @@
 "Beispiel:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -709,7 +709,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -719,14 +719,12 @@
 "unterschiedliche Instanz von <literal>Calculator</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -737,7 +735,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -752,7 +750,7 @@
 "den besitzenden <literal>PaymentCalc</literal> gebunden ist."
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
@@ -760,3 +758,53 @@
 msgstr ""
 "Dieses Feature ist insbesondere im Zusammenhang mit Producer-Methoden von "
 "Nutzen, wie wir im folgenden Kapitel noch sehen werden."
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "verwahrt den mit einem bestimmten Webbrowser assoziierten Status in einer "
+#~ "JSF-Applikation."
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Wenn der Einspeisungspunkt eines Web Bean zu einem abhängigen Web Bean "
+#~ "hin aufgelöst wird, so wird jedes Mal, wenn das erste Web Bean "
+#~ "instantiiert wird, eine neue Instanz des abhängigen Web Beans erstellt. "
+#~ "Instanzen abhängiger Web Beans werden nie von unterschiedlichen Web Beans "
+#~ "oder unterschiedlichen Einspeisungspunkten geteilt. Sie sind "
+#~ "<emphasis>abhängige Objekte</emphasis> einer anderen Web Bean Instanz."
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "Abhängige Web Bean Instanzen werden gelöscht, wenn die Instanz von der "
+#~ "sie abhängen gelöscht wird."
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "Die eingebaute <literal>@New</literal> Binding-Annotation gestattet die "
+#~ "<emphasis>implizite</emphasis> Definition eines abhängigen Web Beans an "
+#~ "einem Einspeisungspunkt. Nehmen wir an, wir deklarieren das folgende "
+#~ "eingespeiste Feld:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "Dann wird ein Web Bean mit Geltungsbereich <literal>@Dependent</literal>, "
+#~ "Binding-Typ <literal>@New</literal>, API-Typ <literal>Calculator</"
+#~ "literal>, Implementierungsklasse <literal>Calculator</literal> und "
+#~ "Deployment-Typ <literal>@Standard</literal> impliziert definiert."

Modified: doc/trunk/reference/de-DE/specialization.po
===================================================================
--- doc/trunk/reference/de-DE/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: specialization\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-06 15:52+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,35 +16,104 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "Specialization (Spezialisierung)"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
 msgstr ""
-"Wir haben bereits gesehen, wie das Web Beans Modell zur Dependency Einspeisung uns die "
-"<emphasis>Außerkraftsetzung</emphasis> der Implementierung eines API zum Zeitpunkt des Deployment "
-"gestattet. Das folgende Enterprise Web Bean zum Beispiel liefert eine "
-"Implementierung der API <literal>PaymentProcessor</literal> in Production:"
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless\n"
-"public class CreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
 msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"Wir haben bereits gesehen, wie das Web Beans Modell zur Dependency "
+"Einspeisung uns die <emphasis>Außerkraftsetzung</emphasis> der "
+"Implementierung eines API zum Zeitpunkt des Deployment gestattet. Das "
+"folgende Enterprise Web Bean zum Beispiel liefert eine Implementierung der "
+"API <literal>PaymentProcessor</literal> in Production:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -52,170 +121,237 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
-#, no-c-format
+#: specialization.xml:61
+#, fuzzy, no-c-format
 msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
 "Aber in unserer Staging-Umgebung setzen wir diese Implementierung von "
 "<literal>PaymentProcessor</literal> mit einem anderen Web Bean außer Kraft:"
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless\n"
+"public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:68
+#, no-c-format
+msgid "<para>or</para>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+
+#. Tag: programlisting
+#: specialization.xml:70
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
-"Wir haben bei <literal>StagingCreditCardPaymentProcessor</"
-"literal> versucht, <literal>AsyncPaymentProcessor</literal> in einem bestimmten Deployment des Systems komplett zu ersetzen. In diesem Deployment, hätte der Deployment Typ <literal>@Staging</literal> eine höhere Priorität als der standardmäßige Deployment Typ <literal>@Production</literal> und daher Clients mit dem folgenden Einspeisungspunkt:"
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
 msgstr ""
-"Wir würden eine Instanz von <literal>StagingCreditCardPaymentProcessor</"
-"literal> erhalten."
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "Leider könnten wir in gleich mehrere Fallen tappen:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
-"Das Web Bean mit der höheren Priorität implementiert möglicherweise nicht alle API-Typen des Web "
-"Beans, das es außer Kraft zu setzen versucht, "
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
-msgstr "Das Web Bean mit der höheren Priorität deklariert möglicherweise nicht alle Binding-Typen des Web Beans, das es außer Kraft zu setzen versucht, "
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
+#. Tag: title
+#: specialization.xml:105
+#, no-c-format
+msgid "A minor problem with alternatives"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:107
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
-msgstr "Das Web Bean mit der höheren Priorität besitzt möglicherweise nicht denselben Namen wie das Web Bean, das es außer Kraft zu setzen versucht oder "
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
 msgstr ""
-"das Web Bean, das es außer Kraft zu setzen versucht deklariert möglicherweise eine Producer Methode, "
-"eine Bereinigungsmethode odereine Observer Methode."
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
-msgstr "In allen diesen Fällen kann das Web Bean, das wir außer Kraft zu setzen versucht haben, nach wie vor zur Runtime aufgerufen werden. Daher ist Außerkraftsetzung anfällig für Entwicklerfehler."
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
-#, no-c-format
+#: specialization.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
 msgstr ""
 "Web Beans bieten ein spezielles Feature namens <emphasis>Specialization</"
-"emphasis> (Spezialisierung), das dem Entwickler hilft, diese Stolperfallen zu umgehen. Specialization wirkt auf den ersten Blick etwas ungewöhnlich, ist aber in der Praxis einfach zu verwenden und Sie werden die zusätzliche Sicherheit, die es bietet bald schätzen."
+"emphasis> (Spezialisierung), das dem Entwickler hilft, diese Stolperfallen "
+"zu umgehen. Specialization wirkt auf den ersten Blick etwas ungewöhnlich, "
+"ist aber in der Praxis einfach zu verwenden und Sie werden die zusätzliche "
+"Sicherheit, die es bietet bald schätzen."
 
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "Verwendung von Spezialisierung"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
 msgstr ""
-"Specialization ist ein Feature das spezifisch für einfache und Enterprise Web "
-"Beans ist. Um Specialization zu nutzen, muss ein Web Bean mit höherer Priorität:"
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "eine direkt Subklasse des Web Beans sein, das es außer Kraft setzt und "
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
-msgstr "ein einfaches Web Bean sein, falls das Web Bean, das es außer Kraft setzt ein einfaches Web Bean ist oder ein Enterprise Web Bean sein, falls das Web Bean, das es außer Kraft setzt ein Enterprise Web Bean ist und "
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "<literal>@Specializes</literal> annotiert sein."
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"Wir sprechen davon, dass das Web Bean mit höherer Priorität seine "
+"Superklasse <emphasis>spezialisiert</emphasis>."
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -224,115 +360,215 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
-msgstr "Wir sprechen davon, dass das Web Bean mit höherer Priorität seine Superklasse <emphasis>spezialisiert</emphasis>."
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "Vorteile von Spezialisierung"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "Wann Spezialisierung eingesetzt wird:"
-
-#. Tag: para
-#: specialization.xml:91
-#, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
-msgstr "DIe Binding-Typen der Superklasse werden automatisch durch das mit <literal>@Specializes</literal> annotierte Web Bean geerbt und "
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
-msgstr "der Web Bean Name der Superklasse wird automatisch automatisch durch das mit <literal>@Specializes</literal> annotierte Web Bean geerbt und "
-
-#. Tag: para
-#: specialization.xml:99
-#, no-c-format
-msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
-"durch die Superklasse deklarierte Producer-Methoden, Bereinigungsmethoden und Observer-Methoden "
-"werden durch eine Instanz des mit <literal>@Specializes</literal> annotierten Web Beans aufgerufen."
 
 #. Tag: para
-#: specialization.xml:105
+#: specialization.xml:172
 #, no-c-format
 msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
 msgstr ""
-"In unserem Beispiel wird der Binding-Typ <literal>@CreditCard</literal> von "
-"<literal>CreditCardPaymentProcessor</literal> von "
-"<literal>StagingCreditCardPaymentProcessor</literal> geerbt."
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "Desweiteren validiert der Web Bean Manager dies:"
+#~ msgid "Specialization"
+#~ msgstr "Specialization (Spezialisierung)"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
-msgstr ""
-"alle API-Typen der Superklasse sind API-Typen des mit <literal>@Specializes</literal> annotierten Web Beans "
-"(alle lokalen Interfaces der Superklasse Enterprise Bean sind auch lokale Interfaces der Subklasse),"
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "Wir haben bei <literal>StagingCreditCardPaymentProcessor</literal> "
+#~ "versucht, <literal>AsyncPaymentProcessor</literal> in einem bestimmten "
+#~ "Deployment des Systems komplett zu ersetzen. In diesem Deployment, hätte "
+#~ "der Deployment Typ <literal>@Staging</literal> eine höhere Priorität als "
+#~ "der standardmäßige Deployment Typ <literal>@Production</literal> und "
+#~ "daher Clients mit dem folgenden Einspeisungspunkt:"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
-msgstr ""
-"der Deployment-Typ des mit <literal>@Specializes</"
-"literal> annotierten Web Bean besitzt Vorrang vor dem Deployment-Typ der Superklasse "
-"und "
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "es existiert keun weiteres aktiviertes Web Bean, das ebenfalls die Superklasse spezialisiert."
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Wir würden eine Instanz von <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> erhalten."
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
-msgstr "Wird eine dieser Bedingungen verletzt, so meldet der Web Bean Manager zum Zeitpunkt der Initialisierung eine Ausnahme."
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "Leider könnten wir in gleich mehrere Fallen tappen:"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr ""
-"Wir können daher sicher sein, dass die Superklasse <emphasis>nie</"
-"emphasis> bei einem Deployment des Systems bei dem das mit <literal>@Specializes</literal> annotierte Web Bean deployt und aktiviert wird, aufgerufen wird."
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "Das Web Bean mit der höheren Priorität implementiert möglicherweise nicht "
+#~ "alle API-Typen des Web Beans, das es außer Kraft zu setzen versucht, "
 
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "Das Web Bean mit der höheren Priorität deklariert möglicherweise nicht "
+#~ "alle Binding-Typen des Web Beans, das es außer Kraft zu setzen versucht, "
+
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "Das Web Bean mit der höheren Priorität besitzt möglicherweise nicht "
+#~ "denselben Namen wie das Web Bean, das es außer Kraft zu setzen versucht "
+#~ "oder "
+
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "das Web Bean, das es außer Kraft zu setzen versucht deklariert "
+#~ "möglicherweise eine Producer Methode, eine Bereinigungsmethode odereine "
+#~ "Observer Methode."
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "In allen diesen Fällen kann das Web Bean, das wir außer Kraft zu setzen "
+#~ "versucht haben, nach wie vor zur Runtime aufgerufen werden. Daher ist "
+#~ "Außerkraftsetzung anfällig für Entwicklerfehler."
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "Specialization ist ein Feature das spezifisch für einfache und Enterprise "
+#~ "Web Beans ist. Um Specialization zu nutzen, muss ein Web Bean mit höherer "
+#~ "Priorität:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr ""
+#~ "eine direkt Subklasse des Web Beans sein, das es außer Kraft setzt und "
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "ein einfaches Web Bean sein, falls das Web Bean, das es außer Kraft setzt "
+#~ "ein einfaches Web Bean ist oder ein Enterprise Web Bean sein, falls das "
+#~ "Web Bean, das es außer Kraft setzt ein Enterprise Web Bean ist und "
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "<literal>@Specializes</literal> annotiert sein."
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "Vorteile von Spezialisierung"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "Wann Spezialisierung eingesetzt wird:"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "DIe Binding-Typen der Superklasse werden automatisch durch das mit "
+#~ "<literal>@Specializes</literal> annotierte Web Bean geerbt und "
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "der Web Bean Name der Superklasse wird automatisch automatisch durch das "
+#~ "mit <literal>@Specializes</literal> annotierte Web Bean geerbt und "
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "durch die Superklasse deklarierte Producer-Methoden, Bereinigungsmethoden "
+#~ "und Observer-Methoden werden durch eine Instanz des mit "
+#~ "<literal>@Specializes</literal> annotierten Web Beans aufgerufen."
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "In unserem Beispiel wird der Binding-Typ <literal>@CreditCard</literal> "
+#~ "von <literal>CreditCardPaymentProcessor</literal> von "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> geerbt."
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "Desweiteren validiert der Web Bean Manager dies:"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "alle API-Typen der Superklasse sind API-Typen des mit "
+#~ "<literal>@Specializes</literal> annotierten Web Beans (alle lokalen "
+#~ "Interfaces der Superklasse Enterprise Bean sind auch lokale Interfaces "
+#~ "der Subklasse),"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "der Deployment-Typ des mit <literal>@Specializes</literal> annotierten "
+#~ "Web Bean besitzt Vorrang vor dem Deployment-Typ der Superklasse und "
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr ""
+#~ "es existiert keun weiteres aktiviertes Web Bean, das ebenfalls die "
+#~ "Superklasse spezialisiert."
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "Wird eine dieser Bedingungen verletzt, so meldet der Web Bean Manager zum "
+#~ "Zeitpunkt der Initialisierung eine Ausnahme."
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "Wir können daher sicher sein, dass die Superklasse <emphasis>nie</"
+#~ "emphasis> bei einem Deployment des Systems bei dem das mit "
+#~ "<literal>@Specializes</literal> annotierte Web Bean deployt und aktiviert "
+#~ "wird, aufgerufen wird."

Modified: doc/trunk/reference/de-DE/stereotypes.po
===================================================================
--- doc/trunk/reference/de-DE/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: stereotypes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-06 16:50+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,94 +16,97 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "Stereotypen"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "Gemäß der Web Beans Spezifikation:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
 msgstr ""
-"In vielen Systemen produziert die Verwendung architektonischer Muster einen Satz wiederkehrender "
-"Web Bean Rollen. Ein Stereotyp gestattet dem Entwickler eines Frameworks die Identifizierung einer solchen Rolle und die Deklaration einiger gemeinsamer Metadaten für Web Beans mit dieser Rolle an einer zentralen Stelle."
+"In vielen Systemen produziert die Verwendung architektonischer Muster einen "
+"Satz wiederkehrender Web Bean Rollen. Ein Stereotyp gestattet dem Entwickler "
+"eines Frameworks die Identifizierung einer solchen Rolle und die Deklaration "
+"einiger gemeinsamer Metadaten für Web Beans mit dieser Rolle an einer "
+"zentralen Stelle."
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "Ein Stereotyp beinhaltet eine beliebige Kombination von:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "einem standardmäßigen Deployment-Typ, "
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "einem standardmäßigen Geltungsbereich-Typ,"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "einer Einschränkung hinsichtlich des Geltungsbereichs des Web Beans, "
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "einem Satz von Interzeptor Binding Annotationen."
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "einer Anforderung, dass das Web Bean einen bestimmten Typ implementiert oder erweitert und "
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "einem Satz von Interzeptor Binding Annotationen."
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
-msgstr "Ein Stereotyp kann auch festlegen, dass alle Web Beans mit dem Stereotyp standardmäßige Web Bean Namen besitzen."
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"Ein Stereotyp kann auch festlegen, dass alle Web Beans mit dem Stereotyp "
+"standardmäßige Web Bean Namen besitzen."
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Ein Web Bean kann null, ein oder mehrere Stereotypen deklarieren."
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
-msgstr "Bei einem Stereotyp handelt es sich um einen Java Annotationstyp. Dieses Stereotyp identifiziert Action-Klassen in einem MVC-Framework:"
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"Bei einem Stereotyp handelt es sich um einen Java Annotationstyp. Dieses "
+"Stereotyp identifiziert Action-Klassen in einem MVC-Framework:"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -112,13 +115,14 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
-msgstr "Wir verwenden das Stereotyp durch Anwendung der Annotation an einem Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
+msgstr ""
+"Wir verwenden das Stereotyp durch Anwendung der Annotation an einem Web Bean."
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -127,278 +131,298 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "Standardmäßiger Geltungsbereich und Deployment-Typ für ein Stereotyp"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
 msgstr ""
-"Ein Stereotyp kann den standardmäßigen Geltungsbereich und/oder standardmäßigen Deployment-Typ für "
-"Web Beans mit diesem Stereotyp festlegen. Identifiziert der Deployment-Typ "
-"<literal>@WebTier</literal> etwa, dass Web Beans nur deployt werden sollten, wenn das System als eine Webanwendung ausgeführt wird, so könnten wird die folgenden Standards für Action-Klassen festlegen: "
+"Ein Stereotyp kann auch festlegen, dass alle Web Beans mit dem Stereotyp "
+"standardmäßige Web Bean Namen besitzen."
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
-msgstr "Natürlich kann eine bestimmte Action diese Standards falls nötig immer noch außer Kraft setzen:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
+msgstr ""
+"Natürlich kann eine bestimmte Action diese Standards falls nötig immer noch "
+"außer Kraft setzen:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "Wenn wir alle Actions in einen bestimmten Geltungsbereich zwingen wollen, so können wir auch das tun."
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "Einschränkung des Geltungsbereichs und Typs mit einem Stereotyp "
+msgid "Interceptor bindings for stereotypes"
+msgstr "Interzeptor-Bindings für Stereotypen"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
 msgstr ""
-"Nehmen wir an, wir wollten verhindern, dass Actions bestimmte Geltungsbereiche deklarieren. Web "
-"Beans lässt uns den Satz gestatteter Geltungsbereiche für Web Beans "
-"mit einem bestimmten Stereotyp explizit festlegen. Zum Beispiel:"
+"Ein Stereotyp kann einen Satz von Interzeptor-Bindings festlegen, der an "
+"alle Web Beans mit diesem Stereotyp vererbt werden soll."
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
-#, no-c-format
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
-msgstr "Falls eine bestimmte Action-Klasse versucht einen anderen Geltungsbereich als den Anfragen-Geltungsbereich der Web Beans festzulegen, so wird zum Initialisierungszeitpunkt durch den Web Bean Manager eine Ausnahme gemeldet."
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"Dies hilft uns einen weiteren Schritt weiter in Richtung der Trennung "
+"technischer Probleme und Business Code!"
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr "Namensstandardisierung und Stereotype"
+
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
-msgstr "Wir können auch alle Web Beans mit einem bestimmten Stereotyp zur Implementierung eines Interface oder Erweiterung einer Klasse zwingen:"
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"Zu guter Letzt können wir auch noch festlegen, dass alle Web Beans mit einem "
+"bestimmten Stereotyp einen Web Bean Namen besitzen, der vom Web Bean Manager "
+"standardisiert wird. Actions werden oft in JSP-Seiten referenziert, so dass "
+"sie den perfekten Anwendungsfall für dieses Feature darstellen. Alles, was "
+"wir tun müssen ist eine leere <literal>@Named</literal>-Annotation "
+"hinzuzufügen:"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
-msgstr "Falls eine bestimmte Action-Klasse die Klasse <literal>AbstractAction</literal> nicht erweitert, so wird zum Initialisierungszeitpunkt eine Ausnahme durch den Web Bean Manager gemeldet."
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"Jetzt hat <literal>LoginAction</literal> den Namen <literal>loginAction</"
+"literal>."
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "Interzeptor-Bindings für Stereotypen"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "Standard-Stereotypen"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
-msgstr "Ein Stereotyp kann einen Satz von Interzeptor-Bindings festlegen, der an alle Web Beans mit diesem Stereotyp vererbt werden soll."
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
-msgstr "Dies hilft uns einen weiteren Schritt weiter in Richtung der Trennung technischer Probleme und Business Code!"
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "Stereotypen"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "Namensstandardisierung und Stereotype"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
 msgstr ""
-"Zu guter Letzt können wir auch noch festlegen, dass alle Web Beans mit einem bestimmten Stereotyp einen "
-"Web Bean Namen besitzen, der vom Web Bean Manager standardisiert wird. Actions werden oft in JSP-Seiten referenziert, so dass sie den perfekten Anwendungsfall für dieses Feature darstellen. Alles, was wir tun müssen ist eine leere <literal>@Named</literal>-Annotation hinzuzufügen:"
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
 "@Stereotype\n"
-"public @interface Action {}]]>"
-msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
-
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"Jetzt hat <literal>LoginAction</literal> den Namen <literal>loginAction</"
-"literal>."
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "Standard-Stereotypen"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
 msgstr ""
-"Wir haben bereits zwei Standard-Stereotypen kennengelernt, die durch die Web Beans "
-"Spezifikation definiert werden: <literal>@Interceptor</literal> und <literal>@Decorator</"
-"literal>."
+"Wir haben bereits zwei Standard-Stereotypen kennengelernt, die durch die Web "
+"Beans Spezifikation definiert werden: <literal>@Interceptor</literal> und "
+"<literal>@Decorator</literal>."
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Beans definiert einen weiteren Standard-Stereotyp:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -408,11 +432,138 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
-msgstr "Dieser Stereotyp ist für den Gebrauch mit JSF vorgesehen. Statt JSF gemanagte Beans zu verwenden, annotieren Sie ein Web Bean einfach <literal>@Model</literal>, und verwenden Sie es direkt in Ihrer JSF-Seite."
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"Dieser Stereotyp ist für den Gebrauch mit JSF vorgesehen. Statt JSF "
+"gemanagte Beans zu verwenden, annotieren Sie ein Web Bean einfach "
+"<literal>@Model</literal>, und verwenden Sie es direkt in Ihrer JSF-Seite."
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "Gemäß der Web Beans Spezifikation:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "einem standardmäßigen Deployment-Typ, "
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr ""
+#~ "einer Einschränkung hinsichtlich des Geltungsbereichs des Web Beans, "
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr ""
+#~ "einer Anforderung, dass das Web Bean einen bestimmten Typ implementiert "
+#~ "oder erweitert und "
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Ein Web Bean kann null, ein oder mehrere Stereotypen deklarieren."
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "Ein Stereotyp kann den standardmäßigen Geltungsbereich und/oder "
+#~ "standardmäßigen Deployment-Typ für Web Beans mit diesem Stereotyp "
+#~ "festlegen. Identifiziert der Deployment-Typ <literal>@WebTier</literal> "
+#~ "etwa, dass Web Beans nur deployt werden sollten, wenn das System als eine "
+#~ "Webanwendung ausgeführt wird, so könnten wird die folgenden Standards für "
+#~ "Action-Klassen festlegen: "
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "Wenn wir alle Actions in einen bestimmten Geltungsbereich zwingen wollen, "
+#~ "so können wir auch das tun."
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "Einschränkung des Geltungsbereichs und Typs mit einem Stereotyp "
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "Nehmen wir an, wir wollten verhindern, dass Actions bestimmte "
+#~ "Geltungsbereiche deklarieren. Web Beans lässt uns den Satz gestatteter "
+#~ "Geltungsbereiche für Web Beans mit einem bestimmten Stereotyp explizit "
+#~ "festlegen. Zum Beispiel:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "Falls eine bestimmte Action-Klasse versucht einen anderen Geltungsbereich "
+#~ "als den Anfragen-Geltungsbereich der Web Beans festzulegen, so wird zum "
+#~ "Initialisierungszeitpunkt durch den Web Bean Manager eine Ausnahme "
+#~ "gemeldet."
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "Wir können auch alle Web Beans mit einem bestimmten Stereotyp zur "
+#~ "Implementierung eines Interface oder Erweiterung einer Klasse zwingen:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "Falls eine bestimmte Action-Klasse die Klasse <literal>AbstractAction</"
+#~ "literal> nicht erweitert, so wird zum Initialisierungszeitpunkt eine "
+#~ "Ausnahme durch den Web Bean Manager gemeldet."
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Beans definiert einen weiteren Standard-Stereotyp:"

Modified: doc/trunk/reference/de-DE/viewlayers.po
===================================================================
--- doc/trunk/reference/de-DE/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/de-DE/weldexamples.po
===================================================================
--- doc/trunk/reference/de-DE/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/de-DE/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language de-DE translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/de-DE/xml.po
===================================================================
--- doc/trunk/reference/de-DE/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/de-DE/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-06 17:56+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,67 +16,69 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "Definition von Web Beans unter Verwendung von XML"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
+#: xml.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
-msgstr "Bis jetzt haben wir viele Beispiele von unter Verwendung von Annotationen deklarierten Web Beans gesehen. Es gibt jedoch ein paar Fälle, in denen keine Annotationen zur Definition des Web Beans verwendet werden können:"
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"Bis jetzt haben wir viele Beispiele von unter Verwendung von Annotationen "
+"deklarierten Web Beans gesehen. Es gibt jedoch ein paar Fälle, in denen "
+"keine Annotationen zur Definition des Web Beans verwendet werden können:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
-msgstr "Wenn die Implementierungsklasse von einer bereits bestehenden Bibliothek stammt oder "
+msgstr ""
+"Wenn die Implementierungsklasse von einer bereits bestehenden Bibliothek "
+"stammt oder "
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "wenn mehrere Web Beans mit derselben Implementierungsklasse existieren sollten."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"wenn mehrere Web Beans mit derselben Implementierungsklasse existieren "
+"sollten."
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "In jedem dieser Fälle bieten uns Web Beans zwei Optionen:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "das Schreiben einer Producer-Methode oder "
-
-#. Tag: para
-#: xml.xml:24
-#, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "das Deklarieren des Web Beans mittels XML."
-
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
+#: xml.xml:31
+#, fuzzy, no-c-format
 msgid ""
 "Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
 "class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
+"Weld lets you use the class or member name as the name of the XML element."
 msgstr ""
-"Viele Frameworks verwenden XML zur Bereitstellung von Metadaten, die sich auf Java-Klassen beziehen. "
-"Web Beans jedoch verwenden eine sehr unterschiedliche Herangehensweise bei der Festlegung von Namen von Java-Klassen, Feldern oder Methoden als andere Frameworks. Statt dem Schreiben von Klassen- und Mitglieder-Namen als String-Werte von XML-Elementen und Attributen, gestatten "
-"Web Beans die Verwendung des Klassen- und Mitglieder-Namens als Name des XML-Elements."
+"Viele Frameworks verwenden XML zur Bereitstellung von Metadaten, die sich "
+"auf Java-Klassen beziehen. Web Beans jedoch verwenden eine sehr "
+"unterschiedliche Herangehensweise bei der Festlegung von Namen von Java-"
+"Klassen, Feldern oder Methoden als andere Frameworks. Statt dem Schreiben "
+"von Klassen- und Mitglieder-Namen als String-Werte von XML-Elementen und "
+"Attributen, gestatten Web Beans die Verwendung des Klassen- und Mitglieder-"
+"Namens als Name des XML-Elements."
 
 #. Tag: para
-#: xml.xml:33
+#: xml.xml:38
 #, no-c-format
 msgid ""
 "The advantage of this approach is that you can write an XML schema that "
@@ -85,29 +87,36 @@
 "integrated development environment could perform the same validation without "
 "the need for the explicit intermediate generation step."
 msgstr ""
-"Der Vorteil bei dieser Vorgehensweise ist, dass Sie ein XML-Schema schreiben können, dass Rechtschreibfehler in Ihrem XML-Dokument verhindert. Es ist sogar möglich, dass ein Tool "
-"das XML-Schema automatisch aus dem kompilierten Java-Code generiert. Oder eine integrierte Entwicklungsumgebung könnte dieselbe Validierung durchführen, ohne dass der explizite Generierungsschritt notwendig wäre."
+"Der Vorteil bei dieser Vorgehensweise ist, dass Sie ein XML-Schema schreiben "
+"können, dass Rechtschreibfehler in Ihrem XML-Dokument verhindert. Es ist "
+"sogar möglich, dass ein Tool das XML-Schema automatisch aus dem kompilierten "
+"Java-Code generiert. Oder eine integrierte Entwicklungsumgebung könnte "
+"dieselbe Validierung durchführen, ohne dass der explizite "
+"Generierungsschritt notwendig wäre."
 
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Deklaration von Web Bean Klassen"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
+#: xml.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
+"For each Java package, Weld defines a corresponding XML namespace. The "
 "namespace is formed by prepending <literal>urn:java:</literal> to the Java "
 "package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
 "namespace is <literal>urn:java:com.mydomain.myapp</literal>."
 msgstr ""
-"Für jedes Java-Paket definieren Web Beans einen entsprechenden XML-Namespace. Der "
-"Namespace wird durch Voranstellen von <literal>urn:java:</literal> vor den Java-Paketnamen gebildet. Für das Paket <literal>com.mydomain.myapp</literal> ist der XML-Namespace <literal>urn:java:com.mydomain.myapp</literal>."
+"Für jedes Java-Paket definieren Web Beans einen entsprechenden XML-"
+"Namespace. Der Namespace wird durch Voranstellen von <literal>urn:java:</"
+"literal> vor den Java-Paketnamen gebildet. Für das Paket <literal>com."
+"mydomain.myapp</literal> ist der XML-Namespace <literal>urn:java:com."
+"mydomain.myapp</literal>."
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
 msgid ""
 "Java types belonging to a package are referred to using an XML element in "
@@ -115,26 +124,32 @@
 "name of the Java type. Fields and methods of the type are specified by child "
 "elements in the same namespace. If the type is an annotation, members are "
 "specified by attributes of the element."
-msgstr "Auf Java-Typen, die zu einem Paket gehören, wird verwiesen, indem ein XML-Element in dem dem Paket entsprechenden Namespace verwendet wird. Derr Name des Elements ist der Name des Java-Typs. Felder und Methoden des Typs werden durch untergeordnete Elemente in demselben Namespace festgelegt. Handelt es sich bei dem Typ um eine Annotation, so werden Mitglieder durch Attribute des Elements festgelegt."
+msgstr ""
+"Auf Java-Typen, die zu einem Paket gehören, wird verwiesen, indem ein XML-"
+"Element in dem dem Paket entsprechenden Namespace verwendet wird. Derr Name "
+"des Elements ist der Name des Java-Typs. Felder und Methoden des Typs werden "
+"durch untergeordnete Elemente in demselben Namespace festgelegt. Handelt es "
+"sich bei dem Typ um eine Annotation, so werden Mitglieder durch Attribute "
+"des Elements festgelegt."
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
 msgid ""
 "For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
 "following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Zum Beispiel bezieht sich das Element <literal>&lt;util:Date/&gt;</literal> im folgenden XML-Fragment auf die Klasse <literal>java.util.Date</literal>:"
+msgstr ""
+"Zum Beispiel bezieht sich das Element <literal>&lt;util:Date/&gt;</literal> "
+"im folgenden XML-Fragment auf die Klasse <literal>java.util.Date</literal>:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -144,42 +159,49 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
+#: xml.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
-msgstr "Und das ist alles an Code was wir benötigen, um zu deklarieren dass es sich bei <literal>Date</literal> um ein einfaches Web Bean handelt! Eine Instanz von <literal>Date</literal> kann jetzt in ein beliebiges anderes Web Bean eingespeist werden:"
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"Und das ist alles an Code was wir benötigen, um zu deklarieren dass es sich "
+"bei <literal>Date</literal> um ein einfaches Web Bean handelt! Eine Instanz "
+"von <literal>Date</literal> kann jetzt in ein beliebiges anderes Web Bean "
+"eingespeist werden:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Deklaration von Web Bean Metadaten"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
+#: xml.xml:80
+#, fuzzy, no-c-format
 msgid ""
 "We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
-msgstr "Wir können Geltungsbereich, Deployment-Typ und Interzeptor Binding-Typen deklarieren, indem wir direkte untergeordnete Elemente der Web Bean Dellaration verwenden:"
+"using direct child elements of the bean declaration:"
+msgstr ""
+"Wir können Geltungsbereich, Deployment-Typ und Interzeptor Binding-Typen "
+"deklarieren, indem wir direkte untergeordnete Elemente der Web Bean "
+"Dellaration verwenden:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -189,29 +211,31 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "Wir verwenden exakt dieselbe Vorgehensweise, um Namen und Binding-Typ festzulegen:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"Wir verwenden exakt dieselbe Vorgehensweise, um Namen und Binding-Typ "
+"festzulegen:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -231,38 +255,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
+#: xml.xml:91
+#, fuzzy, no-c-format
 msgid ""
 "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
-msgstr "Wobei <literal>@Login</literal> und <literal>@SystemStart</literal> Binding Annotationstypen sind."
+"qualifier annotations types."
+msgstr ""
+"Wobei <literal>@Login</literal> und <literal>@SystemStart</literal> Binding "
+"Annotationstypen sind."
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "Wie gewöhnlich kann ein Web Bean mehrere Binding-Typen unterstützen:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -271,20 +297,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
+#: xml.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
-msgstr "Interzeptoren und Dekoratoren sind nur einfache Web Beans und können daher wie jedes andere einfache Web Bean deklariert werden:"
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"Interzeptoren und Dekoratoren sind nur einfache Web Beans und können daher "
+"wie jedes andere einfache Web Bean deklariert werden:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -293,42 +321,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Deklaration von Web Bean Mitgliedern"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "TODO!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "Deklaration von inline Web Beans"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "Web Beans lassen uns ein Web Bean an einem Einspeisungspunkt definieren. Zum Beispiel:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"Web Beans lassen uns ein Web Bean an einem Einspeisungspunkt definieren. Zum "
+"Beispiel:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -343,58 +373,69 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
+#: xml.xml:125
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
-msgstr "Das <literal>&lt;Name&gt;</literal>-Element deklariert ein einfaches Web Bean von Geltungsbereich <literal>@Dependent</literal> und Klasse <literal>Name</literal> mit einem Satz anfänglicher Feldwerte. Dieses Web Bean besitzt ein spezielles, Container-generiertes Binding und ist daher nur an dem spezifischen Einspeisungspunkt einspeisbar, an dem es deklariert wird."
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"Das <literal>&lt;Name&gt;</literal>-Element deklariert ein einfaches Web "
+"Bean von Geltungsbereich <literal>@Dependent</literal> und Klasse "
+"<literal>Name</literal> mit einem Satz anfänglicher Feldwerte. Dieses Web "
+"Bean besitzt ein spezielles, Container-generiertes Binding und ist daher nur "
+"an dem spezifischen Einspeisungspunkt einspeisbar, an dem es deklariert wird."
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
+#: xml.xml:131
+#, fuzzy, no-c-format
 msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
 "solution, but it's close!"
-msgstr "Dieses einfache aber leistungsfähige Feature gestattet die Verwendung des Web Beans XML-Formats zur Festlegung ganzer Diagramme von Java-Objekten. Es ist noch keine volndige datenbindende Lösung, aber ganz nah dran!"
+msgstr ""
+"Dieses einfache aber leistungsfähige Feature gestattet die Verwendung des "
+"Web Beans XML-Formats zur Festlegung ganzer Diagramme von Java-Objekten. Es "
+"ist noch keine volndige datenbindende Lösung, aber ganz nah dran!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "Verwendung eines Schemas"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
+#: xml.xml:141
+#, fuzzy, no-c-format
 msgid ""
 "If we want our XML document format to be authored by people who aren't Java "
 "developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
-msgstr "Wenn Personen, die keine Java-Entwickler sind, Autoren unseres XML-Dokumentformats sein sollen oder diese keinen Zugriff auf unseren Code haben, so müssen wir ein Schema bereitstellen. Es gibt nichts, was hinsichtlich des Schreibens oder der Verwendung des Schemas spezifisch für Web Beans ist."
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Wenn Personen, die keine Java-Entwickler sind, Autoren unseres XML-"
+"Dokumentformats sein sollen oder diese keinen Zugriff auf unseren Code "
+"haben, so müssen wir ein Schema bereitstellen. Es gibt nichts, was "
+"hinsichtlich des Schreibens oder der Verwendung des Schemas spezifisch für "
+"Web Beans ist."
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
@@ -411,11 +452,22 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
+#: xml.xml:149
+#, fuzzy, no-c-format
 msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
-msgstr "Das Schreiben eines XML-Schemas ist recht mühselig. Daher liefert das Web Beans RI Projekt ein Tool, das automatisch das XML-Schema aus kompiliertem Java-Code generiert."
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"Das Schreiben eines XML-Schemas ist recht mühselig. Daher liefert das Web "
+"Beans RI Projekt ein Tool, das automatisch das XML-Schema aus kompiliertem "
+"Java-Code generiert."
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "In jedem dieser Fälle bieten uns Web Beans zwei Optionen:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "das Schreiben einer Producer-Methode oder "
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "das Deklarieren des Web Beans mittels XML."

Modified: doc/trunk/reference/es-ES/Author_Group.po
===================================================================
--- doc/trunk/reference/es-ES/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-14 09:26+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,117 +17,119 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:8
+#, no-c-format
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>Guía de especificación de Web Beans (JSR-299) </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:17
+#, no-c-format
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Guía de Referencia de Aplicación de Web Beans (JSR-299)</jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "Traducción en italiano"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, fuzzy, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, fuzzy, no-c-format
 msgid "Spanish Translation"
 msgstr "Traducción en italiano"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr ""
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, fuzzy, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, fuzzy, no-c-format
 msgid "Korean Translation"
 msgstr "Traducción en italiano"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, fuzzy, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, fuzzy, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "Traducción en italiano"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, fuzzy, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, fuzzy, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "Traducción en italiano"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Guía de especificación de Web Beans (JSR-299) </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Guía de Referencia de Aplicación de Web Beans (JSR-299)</"
+#~ "jobtitle> <orgname>Red Hat Middleware LLC</orgname>"

Modified: doc/trunk/reference/es-ES/Book_Info.po
===================================================================
--- doc/trunk/reference/es-ES/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 10:39+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -19,14 +19,15 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
+msgid "Weld - JSR-299 Reference Implementation"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
 #, fuzzy, no-c-format
 msgid ""
-"The new standard for dependency injection and contextual state management"
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr ""
 "El nuevo estándar de Java para inyección de dependencia y manejo de estado "
 "contextual"

Added: doc/trunk/reference/es-ES/beans.po
===================================================================
--- doc/trunk/reference/es-ES/beans.po	                        (rev 0)
+++ doc/trunk/reference/es-ES/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language es-ES translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/es-ES/decorators.po
===================================================================
--- doc/trunk/reference/es-ES/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: decorators\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 11:35+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,51 +17,69 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "Decoradores"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
+#: decorators.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
-msgstr "Los interceptores son una forma potente de capturar y distinguir cuestiones que son <emphasis>ortogonales</emphasis> al tipo de sistema. Cualquier interceptor puede interceptar invocaciones de cualquier tipo de Java. Esto los hace perfectos para resolver cuestiones técnicas como la administración de transacción y la seguridad. Sin embargo, por naturaleza, los interceptores desconocen la semántica real de los eventos que interceptan. Por lo tanto, los interceptores no son una herramienta apropiada para distinguir cuestiones relacionadas con negocios."
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"Los interceptores son una forma potente de capturar y distinguir cuestiones "
+"que son <emphasis>ortogonales</emphasis> al tipo de sistema. Cualquier "
+"interceptor puede interceptar invocaciones de cualquier tipo de Java. Esto "
+"los hace perfectos para resolver cuestiones técnicas como la administración "
+"de transacción y la seguridad. Sin embargo, por naturaleza, los "
+"interceptores desconocen la semántica real de los eventos que interceptan. "
+"Por lo tanto, los interceptores no son una herramienta apropiada para "
+"distinguir cuestiones relacionadas con negocios."
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
+#: decorators.xml:15
+#, fuzzy, no-c-format
 msgid ""
 "The reverse is true of <emphasis>decorators</emphasis>. A decorator "
 "intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
-msgstr "En cambio, los <emphasis>decoradores</emphasis> interceptan invocaciones únicamente para una determinada interfaz de Java y por lo tanto, conocen toda la semántica asociada a la interfaz. Esto los hace una herramienta perfecta para representar algunas clases de cuestiones de negocios. También significa que los decoradores no tienen la generalidad de un interceptor. Los decoradores no pueden resolver problemas técnicos que atraviesan muchos tipos dispares."
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"En cambio, los <emphasis>decoradores</emphasis> interceptan invocaciones "
+"únicamente para una determinada interfaz de Java y por lo tanto, conocen "
+"toda la semántica asociada a la interfaz. Esto los hace una herramienta "
+"perfecta para representar algunas clases de cuestiones de negocios. También "
+"significa que los decoradores no tienen la generalidad de un interceptor. "
+"Los decoradores no pueden resolver problemas técnicos que atraviesan muchos "
+"tipos dispares."
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "Supongamos que tenemos una interfaz que representa cuentas:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -72,51 +90,70 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
+#: decorators.xml:28
+#, fuzzy, no-c-format
 msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
 msgstr ""
-"Varios Web Beans diferentes en nuestro sistema implementan la interfaz de <literal>Cuenta</"
-"literal>. No obstante, tenemos un requisito legal que, para cualquier clase de cuenta, las transacciones grandes deben ser registradas por el sistema en un registro especial. Este es el trabajo perfecto para un decorador."
+"Varios Web Beans diferentes en nuestro sistema implementan la interfaz de "
+"<literal>Cuenta</literal>. No obstante, tenemos un requisito legal que, para "
+"cualquier clase de cuenta, las transacciones grandes deben ser registradas "
+"por el sistema en un registro especial. Este es el trabajo perfecto para un "
+"decorador."
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
+#: decorators.xml:34
+#, fuzzy, no-c-format
 msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
-msgstr "Un decorador es un Web Bean sencillo que implementa el tipo que decora y es anotado <literal>@Decorator</literal>."
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"Un decorador es un Web Bean sencillo que implementa el tipo que decora y es "
+"anotado <literal>@Decorator</literal>."
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -144,140 +181,245 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
+#: decorators.xml:47
+#, fuzzy, no-c-format
 msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
-msgstr "A diferencia de otros Web Beans sencillos, un decorador puede ser una clase abstracta. Si no hay nada especial que el decorador tenga que hacer para un método particular de la interfaz decorada, usted no necesita implementar ese método."
+msgstr ""
+"A diferencia de otros Web Beans sencillos, un decorador puede ser una clase "
+"abstracta. Si no hay nada especial que el decorador tenga que hacer para un "
+"método particular de la interfaz decorada, usted no necesita implementar ese "
+"método."
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"Los interceptores para un método son llamados antes de los decoradores que "
+"aplican a ese método."
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "Atributos de delegado"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
 msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
-msgstr "Todos los decoradores tienen un <emphasis>atributo de delegado</emphasis>. El tipo y los tipos de vinculación del atributo de delegado determinan los Web Beans a los que el decorador está vinculado. El tipo de atributo de delegado debe implementar o extender todas las interfaces ejecutadas por el decorador."
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
+#. Tag: programlisting
+#: decorators.xml:65
 #, no-c-format
 msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
-msgstr "Este atributo de delegado especifica que el decorador está vinculado a los Web Beans que implementan <literal>Cuenta</literal>:"
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
+#. Tag: para
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
+msgstr "Un decorador está vinculado a cualquier Web Bean que:"
+
+#. Tag: para
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr "tenga el tipo de atributo de delegado como un tipo API, y"
+
+#. Tag: para
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+"tenga todos los tipos de vinculación declarados por el atributo de delegado."
+
+#. Tag: para
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"Este atributo de delegado especifica que el decorador está vinculado a los "
+"Web Beans que implementan <literal>Cuenta</literal>:"
+
 #. Tag: programlisting
-#: decorators.xml:53
-#, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
 msgstr "<![CDATA[@Decorates Account account;]]>"
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
+#: decorators.xml:85
+#, fuzzy, no-c-format
 msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
-msgstr "Un atributo de delegado puede especificar una anotación de enlace. Luego el decorador sólo estará vinculado a los Web Beans con el mismo enlace."
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"Un atributo de delegado puede especificar una anotación de enlace. Luego el "
+"decorador sólo estará vinculado a los Web Beans con el mismo enlace."
 
 #. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
 msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
 
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
-msgstr "Un decorador está vinculado a cualquier Web Bean que:"
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"El decorador puede invocar el atributo de delegado, el cual tiene casi el "
+"mismo efecto que llamar a <literal>InvocationContext.proceed()</literal> "
+"desde un interceptor."
 
-#. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
-msgstr "tenga el tipo de atributo de delegado como un tipo API, y"
-
-#. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
-msgstr "tenga todos los tipos de vinculación declarados por el atributo de delegado."
-
-#. Tag: para
-#: decorators.xml:71
-#, no-c-format
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
-msgstr "El decorador puede invocar el atributo de delegado, el cual tiene casi el mismo efecto que llamar a <literal>InvocationContext.proceed()</literal> desde un interceptor."
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "Habilitar decoradores"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
 msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
 msgstr ""
-"Necesitamos <emphasis>habilitar</emphasis> nuestro decorador en <literal>web-beans."
-"xml</literal>."
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
+#: decorators.xml:113
+#, fuzzy, no-c-format
 msgid ""
 "This declaration serves the same purpose for decorators that the "
-"<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "Esta declaración sirve para decoradores al igual que la declaración <literal>&lt;Interceptores&gt;</literal> sirve para interceptores:"
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"Esta declaración sirve para decoradores al igual que la declaración "
+"<literal>&lt;Interceptores&gt;</literal> sirve para interceptores:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
 "ensuring deterministic behavior, and"
-msgstr "nos permite especificar un orden total para los decoradores en nuestro sistema, garantizando una conducta de determinación y "
+msgstr ""
+"nos permite especificar un orden total para los decoradores en nuestro "
+"sistema, garantizando una conducta de determinación y "
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "nos permite habilitar o inhabilitar las clases de decorador en el momento de implementación."
+msgstr ""
+"nos permite habilitar o inhabilitar las clases de decorador en el momento de "
+"implementación."
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr "Los interceptores para un método son llamados antes de los decoradores que aplican a ese método."
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "Todos los decoradores tienen un <emphasis>atributo de delegado</"
+#~ "emphasis>. El tipo y los tipos de vinculación del atributo de delegado "
+#~ "determinan los Web Beans a los que el decorador está vinculado. El tipo "
+#~ "de atributo de delegado debe implementar o extender todas las interfaces "
+#~ "ejecutadas por el decorador."
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "Necesitamos <emphasis>habilitar</emphasis> nuestro decorador en "
+#~ "<literal>web-beans.xml</literal>."

Added: doc/trunk/reference/es-ES/dependencies.po
===================================================================
--- doc/trunk/reference/es-ES/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/es-ES/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language es-ES translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/es-ES/ee.po
===================================================================
--- doc/trunk/reference/es-ES/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ee\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 11:56+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -24,43 +24,95 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
-msgstr "Los Web Beans están totalmente integrados en un entorno de Java EE. Los Web Beans tienen acceso a recursos de Java EE y a contextos persistentes de JPA. Se pueden ser utilizar en expresiones Unificadas EL en páginas JSF y JSP. Pueden ser inyectados en algunos objetos, tales como Servlets y Message Driven Beans, los cuales no son Web Beans."
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Los Web Beans están totalmente integrados en un entorno de Java EE. Los Web "
+"Beans tienen acceso a recursos de Java EE y a contextos persistentes de JPA. "
+"Se pueden ser utilizar en expresiones Unificadas EL en páginas JSF y JSP. "
+"Pueden ser inyectados en algunos objetos, tales como Servlets y Message "
+"Driven Beans, los cuales no son Web Beans."
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Inyección de recursos de Java EE en un Web Bean"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
 msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:22
+#, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
+msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Inyección de recursos de Java EE en un Web Bean"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
 "examples of this, though we didn't pay much attention at the time:"
-msgstr "Todos los Web Beans sencillos y empresariales pueden aprovechar la inyección de dependencia de Java EE utilizando<literal>@Resource</literal>, <literal>@EJB</literal> y <literal>@PersistenceContext</literal>. Ya hemos visto algunos ejemplos de esto, aunque no prestamos mucha atención en el momento."
+msgstr ""
+"Todos los Web Beans sencillos y empresariales pueden aprovechar la inyección "
+"de dependencia de Java EE utilizando<literal>@Resource</literal>, "
+"<literal>@EJB</literal> y <literal>@PersistenceContext</literal>. Ya hemos "
+"visto algunos ejemplos de esto, aunque no prestamos mucha atención en el "
+"momento."
 
 #. Tag: programlisting
-#: ee.xml:19
-#, no-c-format
+#: ee.xml:56
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -74,17 +126,14 @@
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -98,66 +147,68 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
+#: ee.xml:60
+#, fuzzy, no-c-format
 msgid ""
 "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
 msgstr ""
-"Los <literal>@PostConstruct</literal> de Java EE y las llamadas de <literal>@PreDestroy</"
-"literal> también son compatibles con todos los Web Beans sencillos y empresariales. El método <literal>@PostConstruct</literal> es llamado después de realizar <emphasis>toda</emphasis> la inyección."
+"Los <literal>@PostConstruct</literal> de Java EE y las llamadas de "
+"<literal>@PreDestroy</literal> también son compatibles con todos los Web "
+"Beans sencillos y empresariales. El método <literal>@PostConstruct</literal> "
+"es llamado después de realizar <emphasis>toda</emphasis> la inyección."
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
 msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
 msgstr ""
-"Hay una restricción para tener en cuenta aquí: <literal>@PersistenceContext"
-"(tipo=EXTENDIDO)</literal> no es compatible con Web Beans sencillos."
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Llamando a Web Bean desde un Servlet"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
+#: ee.xml:76
+#, fuzzy, no-c-format
 msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
-msgstr "Es fácil utilizar un Web Bean desde un Servlet en Java EE 6. Simplemente inyecte el Web Bean mediante campo de Web Beans o Inyección de método inicializador."
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"Es fácil utilizar un Web Bean desde un Servlet en Java EE 6. Simplemente "
+"inyecte el Web Bean mediante campo de Web Beans o Inyección de método "
+"inicializador."
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse "
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
 "response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -182,57 +233,55 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
+#: ee.xml:83
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
 msgstr ""
-"El cliente proxy de Web Beans cuida las invocaciones del método de enrutamiento desde el "
-"Servlet a las instancias correctas de <literal>Credenciales</literal> e "
-"<literal>Inicio de sesión</literal> para la petición y sesión HTTP actuales."
+"El cliente proxy de Web Beans cuida las invocaciones del método de "
+"enrutamiento desde el Servlet a las instancias correctas de "
+"<literal>Credenciales</literal> e <literal>Inicio de sesión</literal> para "
+"la petición y sesión HTTP actuales."
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Llamada a un Web Bean desde un Message-Driven Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
 msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
 msgstr ""
-"La inyección de Web Beans se aplica a todos los EJB, incluso cuando no están bajo el control del administrador de Web Bean (si fueron obtenidos por el JNDI o inyección utilizando <literal>@EJB</literal>, por ejemplo). En "
-"particular, se puede utilizar inyección de Web Beans en Message-Driven Beans que no sean considerados Web Beans porque no se puede inyectarlos."
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Se pueden incluso utilizar enlaces de interceptor de Web Beans para Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Se pueden incluso utilizar enlaces de interceptor de Web Beans para Message-"
+"Driven Beans."
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -247,29 +296,34 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
+#: ee.xml:103
+#, fuzzy, no-c-format
 msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "Así, la recepción de mensajes es superfácil en un entorno de Web Beans. No obstante, tenga en cuenta que no hay sesión o contexto de conversación disponible cuando se envía un mensaje a un Message-Driven Bean. Sólo los Web Beans <literal>@RequestScoped</literal> y <literal>@ApplicationScoped</literal> Web Beans están disponibles."
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"Así, la recepción de mensajes es superfácil en un entorno de Web Beans. No "
+"obstante, tenga en cuenta que no hay sesión o contexto de conversación "
+"disponible cuando se envía un mensaje a un Message-Driven Bean. Sólo los Web "
+"Beans <literal>@RequestScoped</literal> y <literal>@ApplicationScoped</"
+"literal> Web Beans están disponibles."
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "También es fácil enviar mensajes mediante Web Beans."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "endpoints JMS"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
 msgid ""
 "Sending messages using JMS can be quite complex, because of the number of "
@@ -282,87 +336,95 @@
 "literal>. Each of these objects has its own lifecycle and threading model "
 "that we need to worry about."
 msgstr ""
-"Enviar mensajes mediante JMS puede ser bastante complejo, debido al número de objetos diferentes que se tienen que manejar. Para colas tenemos <literal>Queue</"
-"literal>, <literal>QueueConnectionFactory</literal>, "
+"Enviar mensajes mediante JMS puede ser bastante complejo, debido al número "
+"de objetos diferentes que se tienen que manejar. Para colas tenemos "
+"<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, "
 "<literal>QueueConnection</literal>, <literal>QueueSession</literal> y "
 "<literal>QueueSender</literal>. Para temas tenemos <literal>Topic</literal>, "
 "<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
 "literal>, <literal>TopicSession</literal> y <literal>TopicPublisher</"
-"literal>. Cada uno de estos objetos tiene su propio ciclo de vida y modelo de hilos de los cuales tenemos que preocuparnos."
+"literal>. Cada uno de estos objetos tiene su propio ciclo de vida y modelo "
+"de hilos de los cuales tenemos que preocuparnos."
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
 msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
-msgstr "Los Web Beans se encargan de eso por nosotros. Todo lo que se necesita es reportar la cola o tópico en <literal>web-beans.xml</literal>, especificando un tipo de enlace y conexión de fábrica."
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
-msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
 msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
 msgstr ""
-"Ahora podemos inyectar <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> o "
-"<literal>QueueSender</literal> para una cola, o <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> o"
-"<literal>TopicPublisher</literal> para un tema."
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -373,62 +435,145 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
-msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-
 #. Tag: para
-#: ee.xml:100
-#, no-c-format
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
 "The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
+"container."
 msgstr ""
-"El ciclo de vida de objetos JMS inyectados es controlado por el administrador de"
-"Web Bean."
+"El ciclo de vida de objetos JMS inyectados es controlado por el "
+"administrador deWeb Bean."
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "Empaquetamiento y despliegue."
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
+#: ee.xml:153
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
 msgstr ""
-"Web Beans no define ningún despliegue especial de archivo. Se puede empaquetar Web "
-"Beans en JAR, EJB-JAR o WAR &#151; cualquier ubicación de despliegue en la aplicación classpath. No obstante, cada archivo que contiene Web Beans debe incluir un archivo llamado <literal>web-beans.xml</literal> en <literal>META-INF</literal> o en el directorio <literal>WEB-INF</literal>. El archivo puede estar vacío. Los Web Beans desplegados en archivos que no tienen un archivo <literal>web-beans."
-"xml</literal> no estarán disponibles para uso en la aplicación."
+"Web Beans no define ningún despliegue especial de archivo. Se puede "
+"empaquetar Web Beans en JAR, EJB-JAR o WAR &#151; cualquier ubicación de "
+"despliegue en la aplicación classpath. No obstante, cada archivo que "
+"contiene Web Beans debe incluir un archivo llamado <literal>web-beans.xml</"
+"literal> en <literal>META-INF</literal> o en el directorio <literal>WEB-INF</"
+"literal>. El archivo puede estar vacío. Los Web Beans desplegados en "
+"archivos que no tienen un archivo <literal>web-beans.xml</literal> no "
+"estarán disponibles para uso en la aplicación."
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
+#: ee.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Para ejecución Java SE, los Web Beans pueden ser desplegados en cualquier lugar en el que los EJB se puedan implementar para ejecución por el contenedor Lite EJB incorporable. De nuevo, cada lugar debe contener un archivo <literal>web-beans.xml</literal>."
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Para ejecución Java SE, los Web Beans pueden ser desplegados en cualquier "
+"lugar en el que los EJB se puedan implementar para ejecución por el "
+"contenedor Lite EJB incorporable. De nuevo, cada lugar debe contener un "
+"archivo <literal>web-beans.xml</literal>."
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "Hay una restricción para tener en cuenta aquí: "
+#~ "<literal>@PersistenceContext(tipo=EXTENDIDO)</literal> no es compatible "
+#~ "con Web Beans sencillos."
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "La inyección de Web Beans se aplica a todos los EJB, incluso cuando no "
+#~ "están bajo el control del administrador de Web Bean (si fueron obtenidos "
+#~ "por el JNDI o inyección utilizando <literal>@EJB</literal>, por ejemplo). "
+#~ "En particular, se puede utilizar inyección de Web Beans en Message-Driven "
+#~ "Beans que no sean considerados Web Beans porque no se puede inyectarlos."
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "También es fácil enviar mensajes mediante Web Beans."
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Los Web Beans se encargan de eso por nosotros. Todo lo que se necesita es "
+#~ "reportar la cola o tópico en <literal>web-beans.xml</literal>, "
+#~ "especificando un tipo de enlace y conexión de fábrica."
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "Ahora podemos inyectar <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> o "
+#~ "<literal>QueueSender</literal> para una cola, o <literal>Topic</literal>, "
+#~ "<literal>TopicConnection</literal>, <literal>TopicSession</literal> "
+#~ "o<literal>TopicPublisher</literal> para un tema."
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/es-ES/environments.po
===================================================================
--- doc/trunk/reference/es-ES/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/es-ES/events.po
===================================================================
--- doc/trunk/reference/es-ES/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 13:59+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -26,101 +26,145 @@
 #: events.xml:6
 #, no-c-format
 msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
 msgstr ""
-"La notificación de eventos de Web Beans permite a Web Beans interactuar de una manera completamente disociada. Los <emphasis>productores</emphasis> crean eventos que son enviados luego a <emphasis>observadores</emphasis> de evento por el administrador de Web "
-"Beans. Este esquema básico podría parecerse al patrón conocido observador/"
-"observable, pero hay un par de cambios:"
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
 msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:18
+#, no-c-format
+msgid ""
 "not only are event producers decoupled from observers; observers are "
 "completely decoupled from producers,"
-msgstr "no solamente los productores de eventos están disociados de los observadores; los observadores están completamente disociados de los productores."
+msgstr ""
+"no solamente los productores de eventos están disociados de los "
+"observadores; los observadores están completamente disociados de los "
+"productores."
 
 #. Tag: para
-#: events.xml:18
+#: events.xml:22
 #, no-c-format
 msgid ""
 "observers can specify a combination of \"selectors\" to narrow the set of "
 "event notifications they will receive, and"
-msgstr "los observadores pueden especificar una combinación de \"selectores\" para limitar el conjunto de notificaciones de eventos que recibirán y"
+msgstr ""
+"los observadores pueden especificar una combinación de \"selectores\" para "
+"limitar el conjunto de notificaciones de eventos que recibirán y"
 
 #. Tag: para
-#: events.xml:22
-#, no-c-format
+#: events.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
-msgstr "los observadores pueden ser notificados inmediatamente o pueden especificar que la entrega del evento sea retrasada hasta el final de la transacción actual"
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"los observadores pueden ser notificados inmediatamente o pueden especificar "
+"que la entrega del evento sea retrasada hasta el final de la transacción "
+"actual"
 
-#. Tag: title
-#: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "Observadores de evento"
-
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
 msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
-msgstr "Un <emphasis>método de observador</emphasis> es un método de un Web Bean con un parámetro anotado <literal>@Observes</literal>."
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "Productores de Evento"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
 msgstr ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
 msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
 msgstr ""
-"El parámetro anotado es llamado el <emphasis>parámetro de evento</emphasis>. El tipo del parámetro de evento es el <emphasis>tipo de evento</"
-"emphasis> observado. Los métodos de observador pueden también especificar \"selectores\", los cuales son sólo instancias de tipos de enlaces de Web Beans. Cuando un tipo de enlace se utiliza como un selector de evento, es llamado un <emphasis>tipo de enlace de evento</emphasis>."
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
+#. Tag: title
+#: events.xml:57
+#, no-c-format
+msgid "Event observers"
+msgstr "Observadores de evento"
+
 #. Tag: para
-#: events.xml:43
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"Un <emphasis>método de observador</emphasis> es un método de un Web Bean con "
+"un parámetro anotado <literal>@Observes</literal>."
+
+#. Tag: programlisting
+#: events.xml:64
 #, no-c-format
 msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
-msgstr "Especificamos los enlaces de evento del método de observador al anotar el parámetro de evento:"
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
+#. Tag: para
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"El parámetro anotado es llamado el <emphasis>parámetro de evento</emphasis>. "
+"El tipo del parámetro de evento es el <emphasis>tipo de evento</emphasis> "
+"observado. Los métodos de observador pueden también especificar \"selectores"
+"\", los cuales son sólo instancias de tipos de enlaces de Web Beans. Cuando "
+"un tipo de enlace se utiliza como un selector de evento, es llamado un "
+"<emphasis>tipo de enlace de evento</emphasis>."
+
 #. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:72 events.xml:240
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -130,25 +174,32 @@
 "document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:48
-#, no-c-format
+#: events.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"An observer method need not specify any event bindings &#151; in this case it "
-"is interested in <emphasis>all</emphasis> events of a particular type. If it "
-"does specify event bindings, it is only interested in events which also have "
-"those event bindings."
-msgstr "Un método de observador no necesita especificar ningún enlace de evento  &#151; en este caso está interesado en <emphasis>todos</emphasis> los eventos de un tipo determinado. Si no especifica enlaces de eventos, sólo está  interesado en eventos que también tienen esos enlaces de eventos."
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"Un método de observador no necesita especificar ningún enlace de evento  "
+"&#151; en este caso está interesado en <emphasis>todos</emphasis> los "
+"eventos de un tipo determinado. Si no especifica enlaces de eventos, sólo "
+"está  interesado en eventos que también tienen esos enlaces de eventos."
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
+#: events.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
-msgstr "El método de observador puede tener parámetros adicionales, los cuales se inyectan de acuerdo con la semántica de inyección del parámetro usual de método de Web Beans:"
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"El método de observador puede tener parámetros adicionales, los cuales se "
+"inyectan de acuerdo con la semántica de inyección del parámetro usual de "
+"método de Web Beans:"
 
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -158,228 +209,234 @@
 "document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "Productores de Evento"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
 msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
-msgstr "El productor de evento puede obtener un objeto que <emphasis>notifica el evento</emphasis>por inyección:"
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
+#: events.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
-msgstr "La anotación <literal>@Observable</literal> define implícitamente un Web Bean con ámbito <literal>@Dependent</literal> y tipo de despliegue <literal>@Standard</literal>, con una implementación provista por el administrador de Web Bean."
-
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid ""
 "A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
+"the <literal>Event</literal> interface, passing the event object:"
 msgstr ""
-"Un productor crea eventos llamando al método <literal>fire()</literal> de la interfaz del <literal>Evento</literal>, pasando un <emphasis>objeto de evento</"
-"emphasis>:"
+"Un productor crea eventos llamando al método <literal>fire()</literal> de la "
+"interfaz del <literal>Evento</literal>, pasando un <emphasis>objeto de "
+"evento</emphasis>:"
 
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
-msgstr "Un objeto de evento puede ser una instancia de una clase de Java que no tiene variables de tecla o parámetros de  comodines. El evento será entregado a cada método de observador que:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "El evento será entregado a cada método de observador que:"
 
 #. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
-msgstr "tenga un parámetro de evento al cual el objeto de evento sea asignable y"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
+msgstr ""
+"tenga un parámetro de evento al cual el objeto de evento sea asignable y"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "especifique que no hay enlaces de eventos."
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
+#: events.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "El administrador de Web Beans simplemente llama a todos los métodos de observador, pasando el objeto del evento como el valor de un parámetro de evento. Si cualquier método de observador produce una excepción, el administrador de Web Beans se detiene llamando a los métodos de observador y la excepción es reenviada por el método <literal>fire()</literal>."
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"El administrador de Web Beans simplemente llama a todos los métodos de "
+"observador, pasando el objeto del evento como el valor de un parámetro de "
+"evento. Si cualquier método de observador produce una excepción, el "
+"administrador de Web Beans se detiene llamando a los métodos de observador y "
+"la excepción es reenviada por el método <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
-msgstr "Para especificar un \"selector\", el productor del evento puede pasar una instancia del tipo de enlace del evento al método <literal>fire()</literal>:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
 msgstr ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
 msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
-msgstr "La <literal>Anotación Literal</literal> clase auxiliar hace posible crear una instancia de tipos de enlaces en línea, ya que de otra manera es difícil hacerlo en Java."
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "El evento será entregado a cada método de observador que:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
+#: events.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
-msgstr "no especifique ningún enlace de evento <emphasis>excepto</emphasis> para enlaces de evento pasados a <literal>fire()</literal>."
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"Luego cada evento disparado vía esta instancia de <literal>Evento</literal> "
+"tiene el enlace de evento anotado. El evento será enviado a cada método de "
+"observador que:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr ""
+"tenga un parámetro de evento al cual el objeto de evento sea asignable y"
+
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
-msgstr "De modo alternativo, se pueden especificar eventos de enlaces anotando el punto de inyección de notificador de eventos:"
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"no especifique ningún enlace de evento <emphasis>excepto</emphasis> para "
+"enlaces de evento pasados a <literal>fire()</literal>."
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
 msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
-msgstr "Luego cada evento disparado vía esta instancia de <literal>Evento</literal> tiene el enlace de evento anotado. El evento será enviado a cada método de observador que:"
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
-msgstr "no especifica ningún enlace de evento<emphasis>excepto</emphasis> para los enlaces de eventos pasados a <literal>fire()</literal> o a los enlaces de evento anotados del punto de inyección del notificador de evento."
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
-#, no-c-format
-msgid "Registering observers dynamically"
-msgstr "Registro dinámico de observadores"
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "Observadores transaccionales"
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:180
 #, no-c-format
 msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
-msgstr "Suele ser útil registrar dinámicamente un observador de evento. La aplicación puede implementar la interfaz del <literal>Observador</literal> y registrar una instancia con un notificador de evento llamando el método de <literal>observe()</literal>."
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:144
+#. Tag: para
+#: events.xml:186
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
 
-#. Tag: para
-#: events.xml:146
-#, no-c-format
+#. Tag: programlisting
+#: events.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
 msgstr ""
-"Los tipos de enlace de evento pueden ser especificados por el punto de inyección del notificador del evento o pasando las instancias de tipo de enlace de evento al método <literal>observe()</"
-"literal>:"
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
-#. Tag: programlisting
-#: events.xml:149
+#. Tag: para
+#: events.xml:193
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "Enlaces de evento con miembros"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "Un tipo de enlace de evento puede tener miembros de anotación:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -390,13 +447,16 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "El valor de miembro se utiliza para limitar los mensajes enviados al observador:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"El valor de miembro se utiliza para limitar los mensajes enviados al "
+"observador:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
 msgid ""
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
@@ -406,80 +466,87 @@
 "{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
+#: events.xml:210
+#, fuzzy, no-c-format
 msgid ""
-"Event binding type members may be specified statically by the event "
+"Event qualifier type members may be specified statically by the event "
 "producer, via annotations at the event notifier injection point:"
-msgstr "Los miembros de tipo de enlace de evento se pueden especificar estáticamente por el producto del evento, a través de anotaciones en el punto de inyección del notificador de evento."
+msgstr ""
+"Los miembros de tipo de enlace de evento se pueden especificar estáticamente "
+"por el producto del evento, a través de anotaciones en el punto de inyección "
+"del notificador de evento."
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
+#: events.xml:217
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
-msgstr "Alternativamente, el valor del miembro de tipo de enlace de evento puede ser determinado de modo dinámico por el productor de evento. Empezamos por escribir una subclase abstracta de <literal>AnnotationLiteral</literal>:"
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"Alternativamente, el valor del miembro de tipo de enlace de evento puede ser "
+"determinado de modo dinámico por el productor de evento. Empezamos por "
+"escribir una subclase abstracta de <literal>AnnotationLiteral</literal>:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
+#: events.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
+"The event producer passes an instance of this class to <literal>select()</"
 "literal>:"
 msgstr ""
 "El productor de evento pasa una instancia de esta clase a <literal>fire()</"
 "literal>:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
+#: events.xml:226
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
 msgstr ""
 "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
 "() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "Enlaces de evento múltiples"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "Los tipos de enlaces de evento pueden combinarse, por ejemplo:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
@@ -487,15 +554,17 @@
 "AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
 msgid ""
 "When this event occurs, all of the following observer methods will be "
 "notified:"
-msgstr "Cuando un evento ocurre, todos los siguientes métodos de observador serán notificados:"
+msgstr ""
+"Cuando un evento ocurre, todos los siguientes métodos de observador serán "
+"notificados:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
@@ -505,7 +574,7 @@
 "document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
@@ -515,7 +584,7 @@
 "{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
@@ -525,13 +594,13 @@
 "{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "Observadores transaccionales"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
 msgid ""
 "Transactional observers receive their event notifications during the before "
@@ -539,93 +608,121 @@
 "For example, the following observer method needs to refresh a query result "
 "set that is cached in the application context, but only when transactions "
 "that update the <literal>Category</literal> tree succeed:"
-msgstr "Los observadores transaccionales reciben las notificaciones de sus eventos antes o después de la fase de finalización de la transacción en la se creó el evento. Por ejemplo, el siguiente método de observador necesita actualizar un conjunto de resultados de petición almacenado en caché en el contexto de aplicación, pero sólo cuando las transacciones que actualizan el árbol de <literal>Categoría</literal> tengan éxito:"
+msgstr ""
+"Los observadores transaccionales reciben las notificaciones de sus eventos "
+"antes o después de la fase de finalización de la transacción en la se creó "
+"el evento. Por ejemplo, el siguiente método de observador necesita "
+"actualizar un conjunto de resultados de petición almacenado en caché en el "
+"contexto de aplicación, pero sólo cuando las transacciones que actualizan el "
+"árbol de <literal>Categoría</literal> tengan éxito:"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
+#: events.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
 "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
 "CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "Hay tres clases de observadores transaccionales:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
-msgstr "Los observadores<literal>@AfterTransactionSuccess</literal> son llamados tras la fase de finalización de la transacción, pero sólo si la transacción finaliza exitosamente."
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
+#: events.xml:265
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
-msgstr "Los observadores <literal>@AfterTransactionFailure</literal> son llamados tras la fase de finalización de la transacción, pero sólo si la transacción no se finaliza con éxito."
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"Los observadores<literal>@AfterTransactionSuccess</literal> son llamados "
+"tras la fase de finalización de la transacción, pero sólo si la transacción "
+"finaliza exitosamente."
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
+#: events.xml:271
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
-msgstr "Los observadores <literal>@AfterTransactionCompletion</literal> son llamados tras la fase de finalización de la transacción."
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"Los observadores <literal>@AfterTransactionFailure</literal> son llamados "
+"tras la fase de finalización de la transacción, pero sólo si la transacción "
+"no se finaliza con éxito."
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
+#: events.xml:277
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
-msgstr "Los observadores <literal>@BeforeTransactionCompletion</literal> son llamados durante la fase anterior de finalización de la transacción"
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"Los observadores <literal>@AfterTransactionCompletion</literal> son llamados "
+"tras la fase de finalización de la transacción."
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
+#: events.xml:283
+#, fuzzy, no-c-format
 msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
-msgstr "Los observadores transaccionales son muy importantes en un modelo de objetos con estado como Web Beans, porque el estado suele ser mantenido para más de una transacción atómica."
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"Los observadores <literal>@BeforeTransactionCompletion</literal> son "
+"llamados durante la fase anterior de finalización de la transacción"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"Los observadores transaccionales son muy importantes en un modelo de objetos "
+"con estado como Web Beans, porque el estado suele ser mantenido para más de "
+"una transacción atómica."
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "Imagine que hemos almacenado en caché una serie de resultados de petición JPA en el ámbito de la aplicación:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"Imagine que hemos almacenado en caché una serie de resultados de petición "
+"JPA en el ámbito de la aplicación:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -649,45 +746,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
 msgid ""
 "From time to time, a <literal>Product</literal> is created or deleted. When "
 "this occurs, we need to refresh the <literal>Product</literal> catalog. But "
 "we should wait until <emphasis>after</emphasis> the transaction completes "
 "successfully before performing this refresh!"
-msgstr "De vez en cuando, se crea o borra un <literal>Producto</literal>. Cuando esto ocurre, necesitamos refrescar el catálogo del <literal>Producto</literal>. No obstante, deberíamos esperar hasta <emphasis>después</emphasis> de que la transacción finalice exitosamente antes de ¡actualizar!"
+msgstr ""
+"De vez en cuando, se crea o borra un <literal>Producto</literal>. Cuando "
+"esto ocurre, necesitamos refrescar el catálogo del <literal>Producto</"
+"literal>. No obstante, deberíamos esperar hasta <emphasis>después</emphasis> "
+"de que la transacción finalice exitosamente antes de ¡actualizar!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
+#: events.xml:305
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
-msgstr "El Web Bean que crea y borra <literal>Productos</literal> podría crear eventos, por ejemplo:"
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"El Web Bean que crea y borra <literal>Productos</literal> podría crear "
+"eventos, por ejemplo:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -711,32 +813,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
 msgid ""
 "And now <literal>Catalog</literal> can observe the events after successful "
 "completion of the transaction:"
-msgstr "Ahora el <literal>Catálogo</literal> puede observar los eventos después de finalizar la transacción exitosamente:"
+msgstr ""
+"Ahora el <literal>Catálogo</literal> puede observar los eventos después de "
+"finalizar la transacción exitosamente:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
 "product) {\n"
-"        products.add(product);\n"
-"    }\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
 "product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -756,3 +857,125 @@
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "La notificación de eventos de Web Beans permite a Web Beans interactuar "
+#~ "de una manera completamente disociada. Los <emphasis>productores</"
+#~ "emphasis> crean eventos que son enviados luego a <emphasis>observadores</"
+#~ "emphasis> de evento por el administrador de Web Beans. Este esquema "
+#~ "básico podría parecerse al patrón conocido observador/observable, pero "
+#~ "hay un par de cambios:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "Especificamos los enlaces de evento del método de observador al anotar el "
+#~ "parámetro de evento:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "El productor de evento puede obtener un objeto que <emphasis>notifica el "
+#~ "evento</emphasis>por inyección:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "La anotación <literal>@Observable</literal> define implícitamente un Web "
+#~ "Bean con ámbito <literal>@Dependent</literal> y tipo de despliegue "
+#~ "<literal>@Standard</literal>, con una implementación provista por el "
+#~ "administrador de Web Bean."
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Un objeto de evento puede ser una instancia de una clase de Java que no "
+#~ "tiene variables de tecla o parámetros de  comodines. El evento será "
+#~ "entregado a cada método de observador que:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "Para especificar un \"selector\", el productor del evento puede pasar una "
+#~ "instancia del tipo de enlace del evento al método <literal>fire()</"
+#~ "literal>:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "La <literal>Anotación Literal</literal> clase auxiliar hace posible crear "
+#~ "una instancia de tipos de enlaces en línea, ya que de otra manera es "
+#~ "difícil hacerlo en Java."
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "De modo alternativo, se pueden especificar eventos de enlaces anotando el "
+#~ "punto de inyección de notificador de eventos:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "no especifica ningún enlace de evento<emphasis>excepto</emphasis> para "
+#~ "los enlaces de eventos pasados a <literal>fire()</literal> o a los "
+#~ "enlaces de evento anotados del punto de inyección del notificador de "
+#~ "evento."
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "Registro dinámico de observadores"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "Suele ser útil registrar dinámicamente un observador de evento. La "
+#~ "aplicación puede implementar la interfaz del <literal>Observador</"
+#~ "literal> y registrar una instancia con un notificador de evento llamando "
+#~ "el método de <literal>observe()</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "Los tipos de enlace de evento pueden ser especificados por el punto de "
+#~ "inyección del notificador del evento o pasando las instancias de tipo de "
+#~ "enlace de evento al método <literal>observe()</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/es-ES/example.po
===================================================================
--- doc/trunk/reference/es-ES/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 10:54+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -24,20 +24,23 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Let's illustrate these ideas with a full example. We're going to implement "
 "user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
-msgstr "Ilustremos estas ideas con un ejemplo. Vamos a implementar inicio/cierre de sesión de usuario para una aplicación que utiliza JSF. Primero, definiremos un Web Bean para mantener el nombre de usuario y contraseña escritos durante el inicio de sesión:"
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"Ilustremos estas ideas con un ejemplo. Vamos a implementar inicio/cierre de "
+"sesión de usuario para una aplicación que utiliza JSF. Primero, definiremos "
+"un Web Bean para mantener el nombre de usuario y contraseña escritos durante "
+"el inicio de sesión:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -46,7 +49,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -65,24 +67,26 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Este Web Bean está vinculado al intérprete de comandos de inicio de sesión en el siguiente formulario JSF:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"Este Web Bean está vinculado al intérprete de comandos de inicio de sesión "
+"en el siguiente formulario JSF:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
 "login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
@@ -101,51 +105,55 @@
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
-msgstr "El trabajo real está hecho por una sesión de ámbito Web Bean que mantiene información acerca del usuario actualmente conectado y expone la entidad del <literal>Usuario</literal> a otras Web Beans:"
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"El trabajo real está hecho por una sesión de ámbito Web Bean que mantiene "
+"información acerca del usuario actualmente conectado y expone la entidad del "
+"<literal>Usuario</literal> a otras Web Beans:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -187,19 +195,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "Obviamente, <literal>@LoggedIn</literal> es una anotación de enlace:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -207,26 +231,44 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "Ahora, cualquier otro Web Bean puede fácilmente inyectar al usuario actual:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"Ahora, cualquier otro Web Bean puede fácilmente inyectar al usuario actual:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -243,11 +285,31 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
 msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
-msgstr "Esperamos que este ejemplo de una idea del modelo de programación de Web Bean. En el próximo capítulo, estudiaremos más a fondo la inyección de dependencia de Web Beans."
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
 
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"Esperamos que este ejemplo de una idea del modelo de programación de Web "
+"Bean. En el próximo capítulo, estudiaremos más a fondo la inyección de "
+"dependencia de Web Beans."
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr ""
+#~ "Obviamente, <literal>@LoggedIn</literal> es una anotación de enlace:"

Modified: doc/trunk/reference/es-ES/extend.po
===================================================================
--- doc/trunk/reference/es-ES/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: extend\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 14:15+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,317 +17,289 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Extensión de Web Beans"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
+#: extend.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
-msgstr "Web Beans pretende ser una plataforma para marcos, extensiones e integración con otras tecnologías. Por lo tanto, Web Beans expone una serie de SPI para el uso de desarrolladores de extensiones portátiles para Web Beans. Por ejemplo, las siguientes clases de extensiones fueron previstas por los diseñadores de Web Beans:"
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beans pretende ser una plataforma para marcos, extensiones e integración "
+"con otras tecnologías. Por lo tanto, Web Beans expone una serie de SPI para "
+"el uso de desarrolladores de extensiones portátiles para Web Beans. Por "
+"ejemplo, las siguientes clases de extensiones fueron previstas por los "
+"diseñadores de Web Beans:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "integración con motores de Gestión de Proceso de Negocios,"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
 msgid ""
 "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
 "and"
-msgstr "integración con marcos de terceras partes tales como Spring, Seam, GWT o Wicket, y"
+msgstr ""
+"integración con marcos de terceras partes tales como Spring, Seam, GWT o "
+"Wicket, y"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "nueva tecnología basada en el modelo de programación de Web Beans."
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
 msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
 "object."
-msgstr "El centro nervioso para extender Web Beans es el objeto <literal>Manager</literal>. "
+msgstr ""
+"El centro nervioso para extender Web Beans es el objeto <literal>Manager</"
+"literal>. "
 
 #. Tag: title
-#: extend.xml:29
-#, no-c-format
-msgid "The <literal>Manager</literal> object"
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
 msgstr "El objeto <literal>Manager</literal>"
 
 #. Tag: para
-#: extend.xml:31
-#, no-c-format
+#: extend.xml:64
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
 msgstr ""
 "La interfaz <literal>Manager</literal> nos permite registrar y obtener Web "
-"Beans, interceptores, decoradores, observadores y contextos en forma programada."
+"Beans, interceptores, decoradores, observadores y contextos en forma "
+"programada."
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "Podemos obtener una instancia de <literal>Manager</literal> vía inyección:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"Podemos obtener una instancia de <literal>Manager</literal> vía inyección:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "La clase <literal>Bean</literal>"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
+#: extend.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
-msgstr "Instancias de clase abstracta <literal>Bean</literal> representan Web Beans. Hay una instancia de <literal>Bean</literal> registrada con el objeto <literal>Manager</literal> para cada Web Bean en la aplicación."
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+"El centro nervioso para extender Web Beans es el objeto <literal>Manager</"
+"literal>. "
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "La interfaz <literal>Contexto</literal>"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"Instancias de clase abstracta <literal>Bean</literal> representan Web Beans. "
+"Hay una instancia de <literal>Bean</literal> registrada con el objeto "
+"<literal>Manager</literal> para cada Web Bean en la aplicación."
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
+#: extend.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
-msgstr "Es posible extender la clase <literal>Bean</literal> y registrar instancias llamando a <literal>Manager.addBean()</literal> para proveer soporte a nuevas clases de Web Beans, además de los definidos por la especificación Web Beans (Web Beans sencillos y empresariales, métodos de productor y endpoints JMS). Por ejemplo, podríamos utilizar la clase <literal>Bean</literal> para permitir que los objetos sean administrados por otro marco que se inyecta en Web Beans."
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"Es posible extender la clase <literal>Bean</literal> y registrar instancias "
+"llamando a <literal>Manager.addBean()</literal> para proveer soporte a "
+"nuevas clases de Web Beans, además de los definidos por la especificación "
+"Web Beans (Web Beans sencillos y empresariales, métodos de productor y "
+"endpoints JMS). Por ejemplo, podríamos utilizar la clase <literal>Bean</"
+"literal> para permitir que los objetos sean administrados por otro marco que "
+"se inyecta en Web Beans."
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
+#: extend.xml:104
+#, fuzzy, no-c-format
 msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
 "specification: <literal>Interceptor</literal> and <literal>Decorator</"
 "literal>."
 msgstr ""
-"Hay dos subclases de <literal>Bean</literal> definidas por la especificación de Web Beans: <literal>Interceptor</literal> y <literal>Decorador</"
-"literal>."
+"Hay dos subclases de <literal>Bean</literal> definidas por la especificación "
+"de Web Beans: <literal>Interceptor</literal> y <literal>Decorador</literal>."
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "La interfaz <literal>Contexto</literal>"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
+#: extend.xml:114
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
-msgstr "La interfaz <literal>Contexto</literal> soporta la adición de nuevos ámbitos a Web Beans, o extensión de los ámbitos incorporados a nuevos entornos."
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"La interfaz <literal>Contexto</literal> soporta la adición de nuevos ámbitos "
+"a Web Beans, o extensión de los ámbitos incorporados a nuevos entornos."
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -340,11 +312,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
+#: extend.xml:121
+#, fuzzy, no-c-format
 msgid ""
 "For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
-msgstr "Por ejemplo, podríamos implementar <literal>Contexto</literal> para agregar un ámbito de proceso de negocio a Web Beans, o agregar soporte para el ámbito de conversación a una aplicación que utiliza Wicket."
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"Por ejemplo, podríamos implementar <literal>Contexto</literal> para agregar "
+"un ámbito de proceso de negocio a Web Beans, o agregar soporte para el "
+"ámbito de conversación a una aplicación que utiliza Wicket."
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Extensión de Web Beans"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "La clase <literal>Bean</literal>"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/es-ES/extensions.po
===================================================================
--- doc/trunk/reference/es-ES/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/es-ES/gettingstarted.po
===================================================================
--- doc/trunk/reference/es-ES/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 10:55+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,2241 +17,2165 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
-#, fuzzy, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "La implementación de referencia de Web Beans"
-
-#. Tag: para
-#: gettingstarted.xml:6
-#, fuzzy, no-c-format
-msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+#: gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Weld"
 msgstr ""
-"La implementación de referencia (IR) de Web Beans se desarrolla en <ulink "
-"url=\"http://seamframework.org/WebBeans\">the Seam project</ulink>. La "
-"última versión de Web Beans se puede descargar desde <ulink url=\"http://"
-"seamframework.org/Download\">the downloads page</ulink>."
 
 #. Tag: para
-#: gettingstarted.xml:13
-#, fuzzy, no-c-format
+#: gettingstarted.xml:7
+#, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
-"La IR de Web Beans viene con dos ejemplos de aplicaciones de despliegue: "
-"<literal>webbeans-numberguess</literal>, un ejemplo WAR, que contiene sólo "
-"beans sencillos y un ejemplo EAR <literal>webbeans-translator</literal> que "
-"contiene beans empresariales. Para ejecutar los ejemplos necesitará lo "
-"siguiente:"
 
 #. Tag: para
-#: gettingstarted.xml:25
-#, fuzzy, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "la última versión de la IR de Web Beans,"
-
-#. Tag: para
-#: gettingstarted.xml:28
-#, fuzzy, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.0.GA, y"
-
-#. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:16
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid ""
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:34
-#, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0."
-
 #. Tag: title
-#: gettingstarted.xml:39
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid "Prerequisites"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
-#, fuzzy, no-c-format
+#: gettingstarted.xml:24
+#, no-c-format
 msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
 msgstr ""
-"Actualmente, la IR de Web Beans sólo se ejecuta en JBoss Application Server "
-"5. Necesitará descargar JBoss AS 5.0.0.GA desde <ulink url=\"http://www."
-"jboss.org/jbossas/downloads/\">jboss.org</ulink>, y descomprimirlo. Por "
-"ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:30
 #, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
+msgid "the latest release of Weld, which contains the examples"
+msgstr "la última versión de la IR de Web Beans,"
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
-#, fuzzy, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+#: gettingstarted.xml:33
+#, no-c-format
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
-"Luego, descargue la IR de Web Beans desde <ulink url=\"http://seamframework."
-"org/Download\">seamframework.org</ulink>, y descomprímalo. Por ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+#. Tag: para
+#: gettingstarted.xml:36
+#, no-c-format
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
-"Después necesitaremos decirle a Web Beans en dónde está localizado JBoss. "
-"Editar <literal>jboss-as/build.properties</literal> y establecer la "
-"propiedad <literal>jboss.home</literal>. Por ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, fuzzy, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
-#, fuzzy, no-c-format
-msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+#: gettingstarted.xml:42
+#, no-c-format
+msgid "GlassFish 3.0,"
 msgstr ""
-"Para instalar la actualización, necesitaremos que Ant 1.7.0 esté instalado, "
-"y que la variable de entorno <literal>ANT_HOME</literal> esté configurada. "
-"Por ejemplo:"
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:45
 #, no-c-format
-msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
-#, fuzzy, no-c-format
+#: gettingstarted.xml:53
+#, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"Luego, puede instalar la actualización. La actualización utiliza Maven para "
-"descargar automáticamente el Web Beans y EJB3."
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, fuzzy, no-c-format
-msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
-msgstr ""
-"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
-"$ ant update"
-
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:58
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "Ahora, ¡está listo para desplegar su primer ejemplo!"
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, fuzzy, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
-"Los scripts creados para los ejemplos ofrecen una cantidad de objetivos, a "
-"saber:"
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:64
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid ""
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
-"<literal>ant restart</literal> - despliega el ejemplo en formato explotado"
 
 #. Tag: para
-#: gettingstarted.xml:104
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
-"<literal>ant explode</literal> - actualiza un ejemplo explotado, sin "
-"reiniciar el despliegue"
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:76
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
-"<literal>ant deploy</literal> - despliega el ejemplo en formato JAR "
-"comprimido"
 
-#. Tag: para
-#: gettingstarted.xml:115
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - quita el ejemplo del servidor"
+msgid "Deploying to JBoss AS"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:120
+#: gettingstarted.xml:83
 #, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - borra el ejemplo"
+msgid ""
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "Para desplegar el ejemplo numberguess:"
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"$ cd examples/numberguess\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:108
 #, fuzzy, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr ""
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "Ahora, ¡está listo para desplegar su primer ejemplo!"
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
 msgstr ""
-"Espere que despliegue la aplicación, y diviértase en <ulink url=\"http://"
-"localhost:8080/webbeans-numberguess\"></ulink>!"
 
-#. Tag: para
-#: gettingstarted.xml:150
+#. Tag: programlisting
+#: gettingstarted.xml:119
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
-"La IR de Web Beans incluye un segundo ejemplo que traducirá su texto en "
-"Latín. El ejemplo numberguess es un ejemplo WAR, y sólo utiliza beans "
-"sencillos; el ejemplo de traductor es un ejemplo EAR e incluye beans "
-"empresariales, empaquetados en un módulo EJB. Para probar:"
+"$ cd examples/numberguess\n"
+"ant deploy"
 
+#. Tag: para
+#: gettingstarted.xml:121
+#, no-c-format
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
+
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:125
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+msgid "a Windows command window:"
 msgstr ""
-"Espere a que despliegue la aplicación, y ¡visite <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
 
-#. Tag: title
-#: gettingstarted.xml:167
+#. Tag: programlisting
+#: gettingstarted.xml:131
 #, no-c-format
-msgid "Using Apache Tomcat 6.0"
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:169
-#, fuzzy, no-c-format
-msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
+#: gettingstarted.xml:133 gettingstarted.xml:375
+#, no-c-format
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
-"Luego, descargue la IR de Web Beans desde <ulink url=\"http://seamframework."
-"org/Download\">seamframework.org</ulink>, y descomprímalo. Por ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
-#, fuzzy, no-c-format
+#. Tag: para
+#: gettingstarted.xml:138
+#, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:185
-#, fuzzy, no-c-format
+#: gettingstarted.xml:145
+#, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
-"Después necesitaremos decirle a Web Beans en dónde está localizado JBoss. "
-"Editar <literal>jboss-as/build.properties</literal> y establecer la "
-"propiedad <literal>jboss.home</literal>. Por ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
-#, fuzzy, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:194
-#, fuzzy, no-c-format
+#: gettingstarted.xml:152
+#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
-"Los scripts creados para los ejemplos ofrecen una cantidad de objetivos, a "
-"saber:"
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:158
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
 "<literal>ant restart</literal> - despliega el ejemplo en formato explotado"
 
 #. Tag: para
-#: gettingstarted.xml:206
-#, fuzzy, no-c-format
+#: gettingstarted.xml:163
+#, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"<literal>ant explode</literal> - update an exploded example, without "
 "restarting the deployment"
 msgstr ""
 "<literal>ant explode</literal> - actualiza un ejemplo explotado, sin "
 "reiniciar el despliegue"
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
 "<literal>ant deploy</literal> - despliega el ejemplo en formato JAR "
 "comprimido"
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
-msgstr ""
-"<literal>ant deploy</literal> - despliega el ejemplo en formato JAR "
-"comprimido"
-
-#. Tag: para
-#: gettingstarted.xml:222
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr "<literal>ant undeploy</literal> - quita el ejemplo del servidor"
 
 #. Tag: para
-#: gettingstarted.xml:227
-#, fuzzy, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#: gettingstarted.xml:178
+#, no-c-format
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr "<literal>ant clean</literal> - borra el ejemplo"
 
 #. Tag: para
-#: gettingstarted.xml:234
-#, fuzzy, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "Para desplegar el ejemplo numberguess:"
+#: gettingstarted.xml:185
+#, no-c-format
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
+#: gettingstarted.xml:191
 #, fuzzy, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/translator\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "Start Tomcat:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
+#. Tag: para
+#: gettingstarted.xml:200
 #, fuzzy, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
+msgstr ""
+"Aquí establecemos la ruta de contexto, la cual nos da una url interesante "
+"(<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
+"localhost:8080/webbeans-translator</ulink>)."
 
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:206
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:260
+#: gettingstarted.xml:213
 #, no-c-format
-msgid "Using GlassFish"
+msgid "Deploying to GlassFish"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:215
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr "El ejemplo numberguess"
-
 #. Tag: para
-#: gettingstarted.xml:268
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
-"En la aplicación numberguess se le dan 10 intentos para adivinar un número "
-"entre 1 y 100. Después de cada intento, se le dirá si es mayor o menor a su "
-"número."
 
-#. Tag: para
-#: gettingstarted.xml:274
+#. Tag: programlisting
+#: gettingstarted.xml:231
 #, no-c-format
 msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"El ejemplo de numberguess consta de una cantidad de Web Beans, archivos de "
-"configuración y páginas Facelet JSF, empaquetadas como WAR. Empecemos con "
-"los archivos de configuración."
 
 #. Tag: para
-#: gettingstarted.xml:280
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
-"Todos los archivos de configuración para este ejemplo están localizados en "
-"<literal>WEB-INF/</literal>, el cual está almacenado en <literal>WebContent</"
-"literal> en el árbol fuente. Primero, tenemos <literal>faces-config.xml</"
-"literal>, en donde le pedimos a JSF que utilice Facelets:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:288
+#. Tag: para
+#: gettingstarted.xml:240
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
-#. Tag: para
-#: gettingstarted.xml:290
+#. Tag: programlisting
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"Hay un archivo <literal>web-beans.xml</literal> vacío, el cual marca esta "
-"aplicación como una aplicación de Web Beans."
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:248
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "Por último, está <literal>web.xml</literal>:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, fuzzy, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>ejemplo de Web Beans Numberguess</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Habilitar y cargar el servlet de JSF </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configurar peticiones "
-"<literal>.jsf</literal> para páginas que van a ser manejadas por JSF </para> "
-"</callout> <callout arearefs=\"faces.default.suffix\"> <para> Decir a JSF "
-"que le estaremos dando a nuestros archivos fuente (facelets) una extensión "
-"de <literal>.jsf</literal> </para> </callout> <callout arearefs=\"session."
-"timeout\"> <para> Configurar una pausa de 10 minutos </para> </callout> </"
-"calloutlist> </programlistingco> <note> <para> Aunque este demo es un demo "
-"de JSF, puede utilizar la IR de Web Beans con cualquier marco de la red "
-"basado en Servlet. </para> </note> <para> Observemos una vista de Facelet: </"
-"para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> "
-"<area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19"
-"\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
-"> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!"
-"DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www."
-"w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Adivine un número...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             Estoy pensando un número entre #{game.smallest} y #{game."
-"biggest}.\n"
-"             Le quedan #{game.remainingGuesses} de intentos.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Su número: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets es un lenguaje de plantilla para JSF, aquí se delimita la "
-"página en una plantilla que define el encabezado. </para> </callout> "
-"<callout arearefs=\"messages\"> <para> Hay una cantidad de mensajes que "
-"pueden ser enviados al usuario, \"Mayor!\", \"Menor!\" y \"Correcto!\" </"
-"para> </callout> <callout arearefs=\"instructions\"> <para> Mientras el "
-"usuario adivina, el rango de números que puede adivinar se vuelve cada vez "
-"más pequeño-esta oración cambia para estar seguros de que el usuario sabe en "
-"qué rango debe adivinar. </para> </callout> <callout arearefs=\"guess\"> "
-"<para> Este campo de entrada está vinculado a un Web Bean, utilizando la "
-"expresión de valor. </para> </callout> <callout arearefs=\"validator\"> "
-"<para> Un rango de validador se utiliza para garantizar que el usuario por "
-"accidente no entre un número fuera del rango en el que se puede adivinar - "
-"si el validador no estuviera aquí, el usuario podría tratar de adivinar "
-"fuera del rango. </para> </callout> <callout arearefs=\"submit\"> <para> Y, "
-"obviamente, debe haber una forma para que el usuario pueda enviar el número "
-"al servidor. Aquí nos vincularnos a un método de acción en el Web Bean. </"
-"para> </callout> </calloutlist> </programlistingco>"
 
 #. Tag: para
-#: gettingstarted.xml:399
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
-"El ejemplo existe de 4 clases, las primeras dos son tipos de enlace. "
-"Primero, hay un tipo de enlace <literal>@Random</literal>, utilizado para "
-"inyectar un número aleatorio:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:405
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
-"También hay un tipo de enlace <literal>@MaxNumber</literal>, utilizado para "
-"inyectar el número máximo posible:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"La clase <literal>Generator</literal> es responsable de crear el número "
-"aleatorio, a través de un método de productor. También expone el número "
-"máximo posible a través del método de productor:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:420
+#. Tag: title
+#: gettingstarted.xml:285
 #, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+msgid "Deploying to Apache Tomcat"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:287
 #, no-c-format
 msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
-"Notará que el <literal>Generador</literal> es una aplicación en ámbito por "
-"lo tanto no obtenemos un número aleatorio diferente cada vez."
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
-"El Web Bean final en la aplicación es la sesión en ámbito <literal>Juego</"
-"literal>."
 
 #. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
 msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
-"Notará que hemos utilizado la anotación <literal>@Named</literal>, para "
-"poder utilizar el bean a través de EL en la página JSF. Por último, hemos "
-"utilizado la inyección de constructor para inicializar el juego con un "
-"número aleatorio. Y, claro está, necesitamos decirle al jugador cuando haya "
-"ganado, por lo tanto le damos retroalimentación con <literal>FacesMessage</"
-"literal>."
+"Luego, descargue la IR de Web Beans desde <ulink url=\"http://seamframework."
+"org/Download\">seamframework.org</ulink>, y descomprímalo. Por ejemplo:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:440
-#, no-c-format
-msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+#: gettingstarted.xml:302
+#, fuzzy, no-c-format
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
-#. Tag: title
-#: gettingstarted.xml:443
-#, fuzzy, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "El ejemplo numberguess"
-
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:454
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
-#, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
-msgstr ""
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
-#. Tag: title
-#: gettingstarted.xml:472
+#. Tag: para
+#: gettingstarted.xml:323
 #, fuzzy, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "El ejemplo numberguess"
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "Para desplegar el ejemplo numberguess:"
 
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:482
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
+"<literal>ant restart</literal> - despliega el ejemplo en formato explotado"
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:507
-#, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
+#: gettingstarted.xml:346
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
+"<literal>ant explode</literal> - actualiza un ejemplo explotado, sin "
+"reiniciar el despliegue"
 
 #. Tag: para
-#: gettingstarted.xml:513
-#, no-c-format
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
+"<literal>ant deploy</literal> - despliega el ejemplo en formato JAR "
+"comprimido"
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
+#. Tag: para
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - quita el ejemplo del servidor"
 
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+#. Tag: programlisting
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "Understanding the code"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:576
+#: gettingstarted.xml:396
 #, no-c-format
 msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:403
 #, no-c-format
-msgid "Differences are:"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:586
-#, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:599
-#, no-c-format
-msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:605
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:612
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
-#, fuzzy, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "El ejemplo numberguess"
-
-#. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+msgid "Deploying to Jetty"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
-#, fuzzy, no-c-format
-msgid "To run this example:"
-msgstr "Ejemplo de traductor"
-
-#. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:457
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:679
+#: gettingstarted.xml:464
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:684
-#, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:690
+#: gettingstarted.xml:470
 #, no-c-format
-msgid "execute the following command"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:693
-#, no-c-format
-msgid "mvn -Drun"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:699
-#, fuzzy, no-c-format
 msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
-"Hay un archivo <literal>web-beans.xml</literal> vacío, el cual marca esta "
-"aplicación como una aplicación de Web Beans."
 
 #. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
+#. Tag: programlisting
+#: gettingstarted.xml:485
 #, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "Ejemplo de traductor"
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
-"El ejemplo de traductor tomará las oraciones que entre y las traducirá en "
-"Latín."
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"El ejemplo de traductor está incorporado como un EAR, y contiene EJB. Como "
-"resultado, su estructura es más compleja que el ejemplo de Numberguess."
 
-#. Tag: para
-#: gettingstarted.xml:930
+#. Tag: programlisting
+#: gettingstarted.xml:501
 #, no-c-format
-msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
-"EJB 3.1 y Java EE 6 le permiten empaquetar EJB en un WAR, lo cual hará la "
-"estructura mucho más simple!"
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"Primero, demos una mirada al agregador EAR, el cual está localizado en el "
-"módulo <literal>webbeans-translator-ear</literal>. Maven genera "
-"automáticamente la <literal>application.xml</literal>:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:942
-#, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
-"Aquí establecemos la ruta de contexto, la cual nos da una url interesante "
-"(<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
-"localhost:8080/webbeans-translator</ulink>)."
 
 #. Tag: para
-#: gettingstarted.xml:950
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+msgid "First, initialize the Eclipse project:"
 msgstr ""
-"Si no está utilizando Maven para generar estos archivos, usted necesitaría "
-"<literal>META-INF/application.xml</literal>:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:520
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"<![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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ejemplo Ear para la implementación de referencia de JSR 299: "
-"Web Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
-#, fuzzy, no-c-format
-msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr ""
-"Ahora veamos al WAR. Al igual que el ejemplo de Numberguess, tenemos un "
-"<literal>faces-config.xml</literal> (para Facelets habilitadas) y un "
-"<literal>web.xml</literal> (para habilitar a JSF) en <literal>WebContent/WEB-"
-"INF</literal>."
-
-#. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:522
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
-"Más interesante aún es el facelet utilizado para traducir texto. Al igual "
-"que en el ejemplo de Numberguess tenemos una plantilla, la cual rodea el "
-"formulario (omitido aquí por razones de brevedad):"
 
 #. Tag: programlisting
-#: gettingstarted.xml:971
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
-"El usuario puede entrar texto en el área de texto a mano izquierda y pulsar "
-"el botón de traducir para ver el resultado a la derecha."
 
 #. Tag: para
-#: gettingstarted.xml:978
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"Por último, veamos el módulo EJB, <literal>webbeans-translator-ejb</"
-"literal>. En <literal>src/main/resources/META-INF</literal> sólo hay un "
-"<literal>web-beans.xml</literal> vacío, utilizado para marcar el archivo "
-"como si contuviera Web Beans."
 
-#. Tag: para
-#: gettingstarted.xml:986
-#, no-c-format
-msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
-msgstr ""
-"Hemos guardado la parte más interesante para el final, ¡el código! El "
-"proyecto tiene dos beans sencillos, <literal>SentenceParser</literal> y "
-"<literal>TextTranslator</literal> y dos beans empresariales, "
-"<literal>TranslatorControllerBean</literal> y <literal>SentenceTranslator</"
-"literal>. Por ahora, debe comenzar a familiarizarse con el aspecto de Web "
-"Bean, por lo tanto sólo destacaremos aquí las partes más interesantes."
+#, fuzzy
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "La implementación de referencia de Web Beans"
 
-#. Tag: para
-#: gettingstarted.xml:996
-#, no-c-format
-msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
-msgstr ""
-"Tanto <literal>SentenceParser</literal> como <literal>TextTranslator</"
-"literal> son beans dependientes, y <literal>TextTranslator</literal> utiliza "
-"inicialización de constructor:"
+#, fuzzy
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "La implementación de referencia (IR) de Web Beans se desarrolla en <ulink "
+#~ "url=\"http://seamframework.org/WebBeans\">the Seam project</ulink>. La "
+#~ "última versión de Web Beans se puede descargar desde <ulink url=\"http://"
+#~ "seamframework.org/Download\">the downloads page</ulink>."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "La IR de Web Beans viene con dos ejemplos de aplicaciones de despliegue: "
+#~ "<literal>webbeans-numberguess</literal>, un ejemplo WAR, que contiene "
+#~ "sólo beans sencillos y un ejemplo EAR <literal>webbeans-translator</"
+#~ "literal> que contiene beans empresariales. Para ejecutar los ejemplos "
+#~ "necesitará lo siguiente:"
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
-msgstr ""
-"<literal>TextTranslator</literal> es un bean con estado (con una interfaz "
-"local de negocios), donde lo mágico sucede - claro está, que no "
-"desarrollaramos un traductor completo, ¡pero le dimos una buena luz!"
+#, fuzzy
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.0.GA, y"
 
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
-msgstr ""
-"Por último, hay un controlador orientado a UI que recoge el texto desde el "
-"usuario y lo envía al traductor. Esta es una petición en ámbito, llamada "
-"bean con estado de sesión que inyecta el traductor."
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "Actualmente, la IR de Web Beans sólo se ejecuta en JBoss Application "
+#~ "Server 5. Necesitará descargar JBoss AS 5.0.0.GA desde <ulink url="
+#~ "\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>, y "
+#~ "descomprimirlo. Por ejemplo:"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr ""
-"El bean también tiene capturadores y configuradores para todos los campos en "
-"la página."
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr ""
-"Como este es un bean de sesión con estado, tenemos que tener un método de "
-"eliminación:"
+#, fuzzy
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "Luego, descargue la IR de Web Beans desde <ulink url=\"http://"
+#~ "seamframework.org/Download\">seamframework.org</ulink>, y descomprímalo. "
+#~ "Por ejemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
-msgstr ""
-"El administrador de Web Beans llamará al método de eliminación cuando el "
-"bean sea destruido, en este caso al final de la petición."
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Después necesitaremos decirle a Web Beans en dónde está localizado JBoss. "
+#~ "Editar <literal>jboss-as/build.properties</literal> y establecer la "
+#~ "propiedad <literal>jboss.home</literal>. Por ejemplo:"
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, fuzzy, no-c-format
-msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
-msgstr ""
-"Aquí termina nuestro corto recorrido por los ejemplos de la IR de Web Beans. "
-"Para mayor información acerca de la IR o ayuda, por favor consulte <ulink "
-"url=\"http://www.seamframework.org/WebBeans/Development\">http://www."
-"seamframework.org/WebBeans/Development</ulink>."
+#, fuzzy
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "Para instalar la actualización, necesitaremos que Ant 1.7.0 esté "
+#~ "instalado, y que la variable de entorno <literal>ANT_HOME</literal> esté "
+#~ "configurada. Por ejemplo:"
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""
-"Necesitamos ayuda en todas las áreas - corrección de errores, escritura de "
-"nuevas funciones, escritura de ejemplos y traducción de esta guía de "
-"referencia."
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #, fuzzy
 #~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "Luego, puede instalar la actualización. La actualización utiliza Maven "
+#~ "para descargar automáticamente el Web Beans y EJB3."
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+#~ "$ ant update"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "Los scripts creados para los ejemplos ofrecen una cantidad de objetivos, "
+#~ "a saber:"
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "Para desplegar el ejemplo numberguess:"
+
+#, fuzzy
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "Espere que despliegue la aplicación, y diviértase en <ulink url=\"http://"
+#~ "localhost:8080/webbeans-numberguess\"></ulink>!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "La IR de Web Beans incluye un segundo ejemplo que traducirá su texto en "
+#~ "Latín. El ejemplo numberguess es un ejemplo WAR, y sólo utiliza beans "
+#~ "sencillos; el ejemplo de traductor es un ejemplo EAR e incluye beans "
+#~ "empresariales, empaquetados en un módulo EJB. Para probar:"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "Espere a que despliegue la aplicación, y ¡visite <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Después necesitaremos decirle a Web Beans en dónde está localizado JBoss. "
+#~ "Editar <literal>jboss-as/build.properties</literal> y establecer la "
+#~ "propiedad <literal>jboss.home</literal>. Por ejemplo:"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "Los scripts creados para los ejemplos ofrecen una cantidad de objetivos, "
+#~ "a saber:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant deploy</literal> - despliega el ejemplo en formato JAR "
+#~ "comprimido"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr "<literal>ant undeploy</literal> - quita el ejemplo del servidor"
+
+#, fuzzy
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant clean</literal> - borra el ejemplo"
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/translator\n"
+#~ "ant deploy"
+
+#~ msgid "The numberguess example"
+#~ msgstr "El ejemplo numberguess"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "En la aplicación numberguess se le dan 10 intentos para adivinar un "
+#~ "número entre 1 y 100. Después de cada intento, se le dirá si es mayor o "
+#~ "menor a su número."
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "El ejemplo de numberguess consta de una cantidad de Web Beans, archivos "
+#~ "de configuración y páginas Facelet JSF, empaquetadas como WAR. Empecemos "
+#~ "con los archivos de configuración."
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "Todos los archivos de configuración para este ejemplo están localizados "
+#~ "en <literal>WEB-INF/</literal>, el cual está almacenado en "
+#~ "<literal>WebContent</literal> en el árbol fuente. Primero, tenemos "
+#~ "<literal>faces-config.xml</literal>, en donde le pedimos a JSF que "
+#~ "utilice Facelets:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Hay un archivo <literal>web-beans.xml</literal> vacío, el cual marca esta "
+#~ "aplicación como una aplicación de Web Beans."
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "Por último, está <literal>web.xml</literal>:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>ejemplo de Web Beans Numberguess</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Habilitar y cargar el servlet de JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configurar peticiones "
+#~ "<literal>.jsf</literal> para páginas que van a ser manejadas por JSF </"
+#~ "para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Decir "
+#~ "a JSF que le estaremos dando a nuestros archivos fuente (facelets) una "
+#~ "extensión de <literal>.jsf</literal> </para> </callout> <callout arearefs="
+#~ "\"session.timeout\"> <para> Configurar una pausa de 10 minutos </para> </"
+#~ "callout> </calloutlist> </programlistingco> <note> <para> Aunque este "
+#~ "demo es un demo de JSF, puede utilizar la IR de Web Beans con cualquier "
+#~ "marco de la red basado en Servlet. </para> </note> <para> Observemos una "
+#~ "vista de Facelet: </para> <programlistingco> <areaspec> <area id="
+#~ "\"template\" coords=\"8\"/> <area id=\"messages\" coords=\"12\"/> <area "
+#~ "id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> "
+#~ "<area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/"
+#~ "> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//"
+#~ "DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-"
+#~ "transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Adivine un número...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             Estoy pensando un número entre #{game.smallest} y #{game."
+#~ "biggest}.\n"
+#~ "             Le quedan #{game.remainingGuesses} de intentos.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Su número: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets es un lenguaje de plantilla para JSF, aquí se delimita la "
+#~ "página en una plantilla que define el encabezado. </para> </callout> "
+#~ "<callout arearefs=\"messages\"> <para> Hay una cantidad de mensajes que "
+#~ "pueden ser enviados al usuario, \"Mayor!\", \"Menor!\" y \"Correcto!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> Mientras el "
+#~ "usuario adivina, el rango de números que puede adivinar se vuelve cada "
+#~ "vez más pequeño-esta oración cambia para estar seguros de que el usuario "
+#~ "sabe en qué rango debe adivinar. </para> </callout> <callout arearefs="
+#~ "\"guess\"> <para> Este campo de entrada está vinculado a un Web Bean, "
+#~ "utilizando la expresión de valor. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> Un rango de validador se utiliza para garantizar "
+#~ "que el usuario por accidente no entre un número fuera del rango en el que "
+#~ "se puede adivinar - si el validador no estuviera aquí, el usuario podría "
+#~ "tratar de adivinar fuera del rango. </para> </callout> <callout arearefs="
+#~ "\"submit\"> <para> Y, obviamente, debe haber una forma para que el "
+#~ "usuario pueda enviar el número al servidor. Aquí nos vincularnos a un "
+#~ "método de acción en el Web Bean. </para> </callout> </calloutlist> </"
+#~ "programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "El ejemplo existe de 4 clases, las primeras dos son tipos de enlace. "
+#~ "Primero, hay un tipo de enlace <literal>@Random</literal>, utilizado para "
+#~ "inyectar un número aleatorio:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "También hay un tipo de enlace <literal>@MaxNumber</literal>, utilizado "
+#~ "para inyectar el número máximo posible:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "La clase <literal>Generator</literal> es responsable de crear el número "
+#~ "aleatorio, a través de un método de productor. También expone el número "
+#~ "máximo posible a través del método de productor:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "Notará que el <literal>Generador</literal> es una aplicación en ámbito "
+#~ "por lo tanto no obtenemos un número aleatorio diferente cada vez."
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "El Web Bean final en la aplicación es la sesión en ámbito <literal>Juego</"
+#~ "literal>."
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "Notará que hemos utilizado la anotación <literal>@Named</literal>, para "
+#~ "poder utilizar el bean a través de EL en la página JSF. Por último, hemos "
+#~ "utilizado la inyección de constructor para inicializar el juego con un "
+#~ "número aleatorio. Y, claro está, necesitamos decirle al jugador cuando "
+#~ "haya ganado, por lo tanto le damos retroalimentación con "
+#~ "<literal>FacesMessage</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "El ejemplo numberguess"
+
+#, fuzzy
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "El ejemplo numberguess"
+
+#, fuzzy
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "El ejemplo numberguess"
+
+#, fuzzy
+#~ msgid "To run this example:"
+#~ msgstr "Ejemplo de traductor"
+
+#, fuzzy
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Hay un archivo <literal>web-beans.xml</literal> vacío, el cual marca esta "
+#~ "aplicación como una aplicación de Web Beans."
+
+#~ msgid "The translator example"
+#~ msgstr "Ejemplo de traductor"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr ""
+#~ "El ejemplo de traductor tomará las oraciones que entre y las traducirá en "
+#~ "Latín."
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "El ejemplo de traductor está incorporado como un EAR, y contiene EJB. "
+#~ "Como resultado, su estructura es más compleja que el ejemplo de "
+#~ "Numberguess."
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 y Java EE 6 le permiten empaquetar EJB en un WAR, lo cual hará la "
+#~ "estructura mucho más simple!"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "Primero, demos una mirada al agregador EAR, el cual está localizado en el "
+#~ "módulo <literal>webbeans-translator-ear</literal>. Maven genera "
+#~ "automáticamente la <literal>application.xml</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "Si no está utilizando Maven para generar estos archivos, usted "
+#~ "necesitaría <literal>META-INF/application.xml</literal>:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ejemplo Ear para la implementación de referencia de JSR "
+#~ "299: Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "Ahora veamos al WAR. Al igual que el ejemplo de Numberguess, tenemos un "
+#~ "<literal>faces-config.xml</literal> (para Facelets habilitadas) y un "
+#~ "<literal>web.xml</literal> (para habilitar a JSF) en <literal>WebContent/"
+#~ "WEB-INF</literal>."
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "Más interesante aún es el facelet utilizado para traducir texto. Al igual "
+#~ "que en el ejemplo de Numberguess tenemos una plantilla, la cual rodea el "
+#~ "formulario (omitido aquí por razones de brevedad):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "El usuario puede entrar texto en el área de texto a mano izquierda y "
+#~ "pulsar el botón de traducir para ver el resultado a la derecha."
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "Por último, veamos el módulo EJB, <literal>webbeans-translator-ejb</"
+#~ "literal>. En <literal>src/main/resources/META-INF</literal> sólo hay un "
+#~ "<literal>web-beans.xml</literal> vacío, utilizado para marcar el archivo "
+#~ "como si contuviera Web Beans."
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "Hemos guardado la parte más interesante para el final, ¡el código! El "
+#~ "proyecto tiene dos beans sencillos, <literal>SentenceParser</literal> y "
+#~ "<literal>TextTranslator</literal> y dos beans empresariales, "
+#~ "<literal>TranslatorControllerBean</literal> y "
+#~ "<literal>SentenceTranslator</literal>. Por ahora, debe comenzar a "
+#~ "familiarizarse con el aspecto de Web Bean, por lo tanto sólo destacaremos "
+#~ "aquí las partes más interesantes."
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "Tanto <literal>SentenceParser</literal> como <literal>TextTranslator</"
+#~ "literal> son beans dependientes, y <literal>TextTranslator</literal> "
+#~ "utiliza inicialización de constructor:"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> es un bean con estado (con una interfaz "
+#~ "local de negocios), donde lo mágico sucede - claro está, que no "
+#~ "desarrollaramos un traductor completo, ¡pero le dimos una buena luz!"
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "Por último, hay un controlador orientado a UI que recoge el texto desde "
+#~ "el usuario y lo envía al traductor. Esta es una petición en ámbito, "
+#~ "llamada bean con estado de sesión que inyecta el traductor."
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr ""
+#~ "El bean también tiene capturadores y configuradores para todos los campos "
+#~ "en la página."
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "Como este es un bean de sesión con estado, tenemos que tener un método de "
+#~ "eliminación:"
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "El administrador de Web Beans llamará al método de eliminación cuando el "
+#~ "bean sea destruido, en este caso al final de la petición."
+
+#, fuzzy
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "Aquí termina nuestro corto recorrido por los ejemplos de la IR de Web "
+#~ "Beans. Para mayor información acerca de la IR o ayuda, por favor consulte "
+#~ "<ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://"
+#~ "www.seamframework.org/WebBeans/Development</ulink>."
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "Necesitamos ayuda en todas las áreas - corrección de errores, escritura "
+#~ "de nuevas funciones, escritura de ejemplos y traducción de esta guía de "
+#~ "referencia."
+
+#, fuzzy
+#~ msgid ""
 #~ "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss "
 #~ "AS. This adds supports for Web Bean archives to JBoss AS, and allows the "
 #~ "Web Beans RI to query the EJB3 container and discover which EJBs are "

Modified: doc/trunk/reference/es-ES/injection.po
===================================================================
--- doc/trunk/reference/es-ES/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: injection\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 15:18+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -18,34 +18,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "Inyección de dependencia"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans soporta tres mecanismos primarios para inyección de dependencia:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Constructor de inyección de parámetro:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "Inyección de parámetro del método <emphasis>Inicializador</emphasis>:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -61,23 +79,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "Inyección de parámetro del método <emphasis>Inicializador</emphasis>:"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -93,18 +117,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "E inyección directa de campo:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -115,72 +148,92 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
-msgstr "La inyección de dependencia siempre se presenta cuando la instancia de Web Bean es instanciada primero:"
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
+#: injection.xml:56
+#, fuzzy, no-c-format
 msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
-msgstr "Primero, el administrador de Web Bean llama al constructor de Web Bean, para obtener una instancia del Web Bean."
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"La inyección de dependencia siempre se presenta cuando la instancia de Web "
+"Bean es instanciada primero:"
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
+#: injection.xml:63
+#, fuzzy, no-c-format
 msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
-msgstr "Luego, el administrador de Web Bean inicializa los valores de los campos inyectados del Web Bean."
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"Primero, el administrador de Web Bean llama al constructor de Web Bean, para "
+"obtener una instancia del Web Bean."
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "Más tarde, el administrador de Web Bean llama a todos los métodos inicializadores del Web Bean."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"Luego, el administrador de Web Bean inicializa los valores de los campos "
+"inyectados del Web Bean."
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
+#: injection.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
-msgstr "Por último, se llama al método de Web Bean <literal>@PostConstruct</literal>, si existe."
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"Más tarde, el administrador de Web Bean llama a todos los métodos "
+"inicializadores del Web Bean."
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"Por último, se llama al método de Web Bean <literal>@PostConstruct</"
+"literal>, si existe."
+
+#. Tag: para
+#: injection.xml:86
 #, no-c-format
 msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
 msgstr ""
-"La inyección de parámetro constructor no es admitida por beans de EJB, porque "
-"EJB es instanciado por el contenedor de EJB, no por el administrador de Web Bean."
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
 msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
-msgstr "Los parámetros de constructores y métodos de inicializador no necesitan ser anotados explícitamente cuando se aplique el tipo de enlace predeterminado <literal>@Current</literal>. Los campos inyectados, sin embargo, <emphasis>deben</emphasis> especificar un tipo de enlace, cuando se aplique el tipo de enlace predeterminado. Si el campo no especifica ningún tipo de enlace, no será inyectado."
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "Los métodos de productor también admiten inyección de parámetro:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -192,91 +245,128 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
 msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
-msgstr "Por último, los métodos de observador (que encontraremos en <xref linkend=\"events\"/>), los métodos desechables y los métodos destructores, admiten inyección de parámetro."
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:58
-#, no-c-format
+#: injection.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
+"La especificación de Web Beans define un procedimiento, llamado "
+"<emphasis>algoritmo de resolución de typesafe</emphasis> que el "
+"administrador de Web Bean sigue al identificar el Web Bean para inyectar a "
+"un punto de inyección. Este algoritmo parece complejo en un principio, pero "
+"una vez que lo entienda, es en realidad muy intuitivo. La resolución de "
+"Typesafe se realiza al inicializar el sistema, lo que significa que el "
+"administrador informará al usuario inmediatamente si se pueden cumplir las "
+"dependencias de un Web Bean, produciendo una "
+"<literal>UnsatisfiedDependencyException</literal> o una "
 "<literal>AmbiguousDependencyException</literal>."
-msgstr "La especificación de Web Beans define un procedimiento, llamado <emphasis>algoritmo de resolución de typesafe</emphasis> que el administrador de Web Bean sigue al identificar el Web Bean para inyectar a un punto de inyección. Este algoritmo parece complejo en un principio, pero una vez que lo entienda, es en realidad muy intuitivo. La resolución de Typesafe se realiza al inicializar el sistema, lo que significa que el administrador informará al usuario inmediatamente si se pueden cumplir las dependencias de un Web Bean, produciendo una <literal>UnsatisfiedDependencyException</literal> o una <literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
+#: injection.xml:120
+#, fuzzy, no-c-format
 msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
-msgstr "El propósito de este algoritmo es permitir a múltiples Web Beans implementar el mismo tipo API ya sea:"
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"El propósito de este algoritmo es permitir a múltiples Web Beans implementar "
+"el mismo tipo API ya sea:"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
+#: injection.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
-msgstr "permitiendo al cliente seleccionar la aplicación requerida mediante <emphasis>anotaciones de enlace</emphasis>,"
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"permitiendo al cliente seleccionar la aplicación requerida mediante "
+"<emphasis>anotaciones de enlace</emphasis>,"
 
 #. Tag: para
-#: injection.xml:77
-#, no-c-format
+#: injection.xml:131
+#, fuzzy, no-c-format
 msgid ""
 "allow the application deployer to select which implementation is appropriate "
 "for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
-msgstr "permitiendo al desplegador de aplicación seleccionar la aplicación apropiada para una despliegue particular, sin cambios en el cliente, habilitando o inhabilitando los <emphasis>tipos de despliegue</emphasis>, o"
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"permitiendo al desplegador de aplicación seleccionar la aplicación apropiada "
+"para una despliegue particular, sin cambios en el cliente, habilitando o "
+"inhabilitando los <emphasis>tipos de despliegue</emphasis>, o"
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:137
 #, no-c-format
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:143
+#, no-c-format
 msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
-msgstr "permitiendo que una implementación de una API remplace otra implementación de la misma API en el momento del despliegue, sin cambios al cliente, mediante <emphasis>prioridad de tipo de despliegue</emphasis>."
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Exploremos cómo el administrador de Web Beans determina una Web Bean para ser inyectado."
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "Anotaciones de Enlace"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
+#: injection.xml:159
+#, fuzzy, no-c-format
 msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
 "<literal>PaymentProcessor</literal>:"
-msgstr "Si tenemos más de un Web Bean que implemente un tipo determinado de API, el punto de inyección puede especificar el Web Bean que debe ser inyectado mediante una anotación de enlace. Por ejemplo, deberían haber dos aplicaciones del <literal>PaymentProcessor</literal>:"
+msgstr ""
+"Si tenemos más de un Web Bean que implemente un tipo determinado de API, el "
+"punto de inyección puede especificar el Web Bean que debe ser inyectado "
+"mediante una anotación de enlace. Por ejemplo, deberían haber dos "
+"aplicaciones del <literal>PaymentProcessor</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -285,37 +375,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
+#: injection.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
 msgstr ""
-"Donde <literal>@PayByCheque</literal> y <literal>@PayByCreditCard</"
-"literal> son anotaciones de enlace:"
+"Donde <literal>@PayByCheque</literal> y <literal>@PayByCreditCard</literal> "
+"son anotaciones de enlace:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -323,60 +413,62 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
+#: injection.xml:177
+#, fuzzy, no-c-format
 msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
-msgstr "Un desarrollador de cliente de Web Bean utiliza la anotación de enlace para especificar exactamente el Web Bean que debe inyectarse."
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"Un desarrollador de cliente de Web Bean utiliza la anotación de enlace para "
+"especificar exactamente el Web Bean que debe inyectarse."
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "Uso de inyección de campo:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "Uso de inyección de método inicializador:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
@@ -389,15 +481,22 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "O uso de inyección de constructor:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
 "                @PayByCreditCard PaymentProcessor "
@@ -405,36 +504,85 @@
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor "
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
 "creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "Anotaciones de enlace con miembros"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "Las anotaciones de enlace pueden tener miembros:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -445,834 +593,744 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "En cuyo caso, el valor de miembro es importante:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
+#: injection.xml:232
+#, fuzzy, no-c-format
 msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
-msgstr "Se puede pedir al administrador de Web Bean que ignore a un miembro de un tipo de anotación de enlace anotando al miembro <literal>@NonBinding</literal>."
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"Se puede pedir al administrador de Web Bean que ignore a un miembro de un "
+"tipo de anotación de enlace anotando al miembro <literal>@NonBinding</"
+"literal>."
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "Combinaciones de anotaciones de enlace"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
-msgstr "Un punto de inyección puede incluso especificar múltiples anotaciones de enlace:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
+msgstr ""
+"Un punto de inyección puede incluso especificar múltiples anotaciones de "
+"enlace:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
+#: injection.xml:250
+#, fuzzy, no-c-format
 msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
-msgstr "En este caso, sólo el Web Bean que tiene <emphasis>ambas</emphasis> anotaciones de enlace sería elegible para inyección."
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"En este caso, sólo el Web Bean que tiene <emphasis>ambas</emphasis> "
+"anotaciones de enlace sería elegible para inyección."
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "Anotaciones de enlace y métodos de productor"
-
-#. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "Incluso los métodos de productor pueden especificar anotaciones de enlace:"
-
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:260
 #, no-c-format
-msgid "The default binding type"
-msgstr "El tipo de enlace predeterminado"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:262
 #, no-c-format
 msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
-msgstr "Web Beans define un tipo de enlace <literal>@Current</literal>, el cual es el tipo de enlace predeterminado para cualquier punto de inyección o Web Bean que no especifique explícitamente un tipo de enlace."
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:266
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: para
-#: injection.xml:168
+#: injection.xml:268
 #, no-c-format
 msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
-msgstr "Hay dos circunstancias comunes en que se necesita especificar explícitamente a <literal>@Current</literal>:"
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:173
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
-msgstr "en un campo, para declararlo como un campo inyectado con el tipo de enlace por defecto, y "
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:177
+#: injection.xml:276
 #, no-c-format
 msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
-msgstr "en un Web Bean, el cual tiene otro tipo de enlace además del tipo de enlace predeterminado."
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipos de despliegue"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "Corregir dependencias insatisfechas"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
+#: injection.xml:287
+#, fuzzy, no-c-format
 msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
-msgstr "Todos los Web Beans tienen un <emphasis>tipo de despliegue</emphasis>. Cada tipo de despliegue identifica un conjunto de Web Beans que debería ser instalado bajo condiciones en algunos despliegues del sistema."
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"El algoritmo de resolución typesafe falla cuando, después de considerar las "
+"anotaciones de enlace y los tipos de despliegue de todos los Web Beans que "
+"implementan el tipo API de un punto de inyección, el administrador de Web "
+"Bean no puede identificar con precisión un Web Bean para inyectar."
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"Por ejemplo, podríamos definir un tipo de despliegue llamado <literal>@Mock</"
-"literal>, el cual identificaría Web Beans que deben ser instalados sólo cuando el sistema se ejecute dentro de un entorno de pruebas de integración:"
 
-#. Tag: programlisting
-#: injection.xml:197
+#. Tag: para
+#: injection.xml:298
 #, no-c-format
-msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
-msgstr "Supongamos que tenemos algunos Web Bean que interactuaron con un sistema externo para procesar pagos:"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:309
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
-msgstr "Como este Web Bean no especifica explícitamente un tipo de despliegue, tiene el tipo de despliegue predeterminado <literal>@Production</literal>."
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:321
 #, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
-msgstr "Para prueba de integración o de unidad, el sistema externo está lento o no está disponible. Por lo tanto, creamos el objeto mock:"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:332
 #, no-c-format
 msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
-msgstr "Pero, ¿cómo determina el administrador de Web Bean la aplicación que debe utilizar en un despliegue determinado?"
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "Habilitar tipos de despliegue"
-
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:337
 #, no-c-format
 msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
 msgstr ""
-"Web Beans define dos tipos de despliegue incorporados: <literal>@Production</"
-"literal> y <literal>@Standard</literal>. Por defecto, sólo los Web Beans con tipos de despliegue incorporados se habilitan cuando se despliega el sistema. Podemos identificar tipos de despliegue adicionales en un despliegue particular listándolos en <literal>web-beans.xml</literal>."
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
-msgstr "Volviendo a nuestro ejemplo, cuando desplegamos nuestras pruebas de integración, deseamos que todos nuestros objetos <literal>@Mock</literal> sean instalados:"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:350
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:358
 #, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
+msgid "Just remember: \"There can be only one.\""
 msgstr ""
-"Ahora el administrador de Web Bean identificará e instalará todos los Web Beans anotados <literal>@Production</literal>, <literal>@Standard</literal> o "
-"<literal>@Mock</literal> en el momento del despliegue."
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:361
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
-msgstr "El tipo de despliegue <literal>@Standard</literal> es utilizado únicamente por algunos Web Beans especiales definidos por la especificación de Web Beans. No podemos utilizarlo para nuestros propios Web Beans ni inhabilitarlo."
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
-#, no-c-format
+#: injection.xml:366
+#, fuzzy, no-c-format
 msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
-msgstr "El tipo de despliegue <literal>@Production</literal> es el tipo de despliegue predeterminado para Web Beans que no declaran explícitamente un tipo de despliegue, y que se puede inhabilitar."
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
+"Hay algo más que necesita saber cuando utilice inyección de dependencia en "
+"Web Beans."
 
 #. Tag: title
-#: injection.xml:244
+#: injection.xml:373
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "Prioridad de tipo de despliegue"
+msgid "Client proxies"
+msgstr "Los proxy de cliente"
 
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
+#: injection.xml:375
+#, fuzzy, no-c-format
 msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation &#151; <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider "
-"what happens when the manager encounters this injection point:"
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
 msgstr ""
-"Si ha prestado atención, probablemente se estará preguntando cómo escoge Web Bean "
-"la aplicación &#151; <literal>ExternalPaymentProcessor</"
-"literal> o <literal>MockPaymentProcessor</literal> &#151; . Piense en lo que sucede cuando el administrador encuentra este punto de inyección:"
+"Los clientes de un Web Bean inyectado no suelen mantener una referencia "
+"directa a una instancia de Web Bean."
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
+#: injection.xml:380
+#, fuzzy, no-c-format
 msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
 msgstr ""
-"Ahora hay dos Web Beans que cumplen el contrato <literal>PaymentProcessor</"
-"literal>. Claro está que no podemos utilizar una anotación de enlace para explicar, porque las anotaciones de enlace están codificadas dentro de la fuente en el punto de inyección, y queremos que el administrador pueda decidir en el ¡momento de despliegue!"
+"Imagine que un Web Bean vinculado al ámbito de aplicación mantiene una "
+"referencia directa a un Web Bean vinculado al ámbito de petición. La "
+"aplicación en el ámbito de Web Bean es compartida entre muchas peticiones "
+"diferentes. No obstante, cada petición ¡debe ver una instancia diferente de "
+"la petición en el ámbito de WebBean!"
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
+#: injection.xml:386
+#, fuzzy, no-c-format
 msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
 msgstr ""
-"La solución a este problema es que cada tipo de despliegue tiene una <emphasis>prioridad</emphasis> diferente. La prioridad de los tipos de despliegue es determinada por el orden de aparición en <literal>web-beans.xml</"
-"literal>. En nuestro ejemplo, <literal>@Mock</literal> es posterior a <literal>@Production</literal> por lo tanto tiene mayor prioridad."
+"Ahora imaginemos que un enlace de Web Bean a la sesión mantiene una "
+"referencia directa a un Web Bean enlazado al ámbito de la aplicación. De vez "
+"en cuando, el contexto de sesión se serializa al disco con el fin de "
+"utilizar la memoria de un modo más eficiente. Sin embargo, la aplicación en "
+"el ámbito de la instancia de Web Bean ¡no debe serializarse junto con la "
+"sesión en el ámbito de Web Bean!"
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
+#: injection.xml:393
+#, fuzzy, no-c-format
 msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
-msgstr "Cada vez que el administrador descubre que más de un Web Bean cumple el contrato (tipo API más anotaciones de enlace) especificado por un punto de inyección, considera la prioridad relativa de los Web Beans. Se escoge el Web Bean que tiene prioridad respecto de los otros para inyectar. Por lo tanto, en nuestro ejemplo, el administrador de Web Bean inyectará <literal>MockPaymentProcessor</literal> al ejecutar en nuestro entorno de prueba de integración (que es precisamente lo que queremos)."
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"Por lo tanto, a menos que un Web Bean tenga un ámbito predeterminado "
+"<literal>@Dependent</literal>, el administrador de Web Bean deberá "
+"direccionar indirectamente todas las referencias inyectadas al Web Bean a "
+"través del objeto de proxy. Este <emphasis>proxy de cliente</emphasis> "
+"responsable de garantizar que la instancia de Web Bean reciba un método de "
+"invocación es la instancia asociada con el contexto actual. El proxy de "
+"cliente también permite a los Web Beans vincularse a contextos tales como el "
+"contexto de sesión que debe serializarse al disco sin serializar de modo "
+"recursivo a otros Web Beans inyectados."
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
+#: injection.xml:401
+#, fuzzy, no-c-format
 msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
 msgstr ""
-"Es interesante comparar esta facilidad con las arquitecturas populares del administrador de hoy. Varios contenedores \"ligeros\" también permiten el despliegue condicional de clases existentes en el classpath, pero las clases que van a ser desplegadas deben ser explícitamente, listadas de modo individual en el código de configuración o en algún archivo de configuración XML. Web Beans no admite definición de Web Bean "
-"ni configuración vía XML, pero en el común de los casos donde no se requiere una configuración compleja, los tipos de despliegue permiten habilitar un conjunto completo de Web Beans con una sóla línea de XML. Mientras tanto, un desarrollador que esté navegando el código puede fácilmente identificar en qué escenarios de despliegue se utilizará el Web Bean."
+"Lamentablemente, debido a limitaciones del lenguaje de Java, el "
+"administrador de Web Bean no puede utilizar proxy en algunos tipos de Java. "
+"Por lo tanto, el administrador de Web Bean produce un "
+"<literal>UnproxyableDependencyException</literal> si no se puede aplicar "
+"proxy al tipo de un punto de inyección."
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "Ejemplo de tipos de despliegue"
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "Los tipos de despliegue son útiles para toda clase de cosas, algunos ejemplos a continuación:"
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr ""
+"El administrador de Web Bean no puede aplicar proxy en los siguientes tipos "
+"de Java:"
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
+#: injection.xml:411
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
-msgstr "Tipos de despliegue <literal>@Mock</literal> y <literal>@Staging</literal> para pruebas"
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "las clases que no tienen un constructor no-privado sin parámetros y "
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "<literal>@AustralianTaxLaw</literal> para Web Beans de sitio específico"
-
-#. Tag: para
-#: injection.xml:297
-#, no-c-format
 msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
-msgstr "<literal>@SeamFramework</literal>, <literal>@Guice</literal> para marcos de terceras partes generados en Web Beans"
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"las clases que son declaradas <literal>final</literal> o tienen un método "
+"<literal>final</literal>,"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
-msgstr "<literal>@Standard</literal>para Web Beans estándar definidos por la especificación Web Beans"
+msgid "arrays and primitive types."
+msgstr "matrices y tipos primarios."
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "Estamos seguros que puede pensar en más aplicaciones..."
-
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "Corregir dependencias insatisfechas"
-
-#. Tag: para
-#: injection.xml:315
-#, no-c-format
+#: injection.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
-msgstr "El algoritmo de resolución typesafe falla cuando, después de considerar las anotaciones de enlace y los tipos de despliegue de todos los Web Beans que implementan el tipo API de un punto de inyección, el administrador de Web Bean no puede identificar con precisión un Web Bean para inyectar."
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"Suele ser muy fácil corregir una <literal>UnproxyableDependencyException</"
+"literal>. Basta con añadir un constructor sin parámetros a la clase "
+"inyectada, introducir una interfaz, o cambiar el ámbito del Web Bean "
+"inyectado a <literal>@Dependent</literal>."
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:430
 #, no-c-format
 msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
 msgstr ""
-"Por lo general es fácil corregir una <literal>UnsatisfiedDependencyException</"
-"literal> o una <literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:437
 #, no-c-format
 msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point &#151; or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
-msgstr "Para corregir una <literal>UnsatisfiedDependencyException</literal>, basta con proporcionar un Web Bean que implemente el tipo API y tenga los tipos de enlace del punto de inyección &#151; o permita el tipo de despliegue de un Web Bean que ya implemente el tipo API y tenga los tipos de enlace."
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:442
 #, no-c-format
 msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
 msgstr ""
-"Para corregir una <literal>AmbiguousDependencyException</literal>, introduzca un tipo de enlace para distinguir entre las dos implementaciones del tipo de API o cambie el tipo de despliegue de una de las implementaciones con el fin de que el administrador de Web Bean pueda utilizar la prioridad de tipo de despliegue para escoger entre ellas. Una <literal>AmbiguousDependencyException</literal> sólo puede presentarse si dos Web "
-"Beans comparten un tipo de enlace y tienen exactamente el mismo tipo de despliegue."
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:448
 #, no-c-format
-msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
-msgstr "Hay algo más que necesita saber cuando utilice inyección de dependencia en Web Beans."
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "Los proxy de cliente"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "Obtención de un Web Bean por búsqueda programática"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
 msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
-msgstr "Los clientes de un Web Bean inyectado no suelen mantener una referencia directa a una instancia de Web Bean."
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
-msgstr "Imagine que un Web Bean vinculado al ámbito de aplicación mantiene una referencia directa a un Web Bean vinculado al ámbito de petición. La aplicación en el ámbito de Web Bean es compartida entre muchas peticiones diferentes. No obstante, cada petición ¡debe ver una instancia diferente de la petición en el ámbito de WebBean!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
 msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
-msgstr "Ahora imaginemos que un enlace de Web Bean a la sesión mantiene una referencia directa a un Web Bean enlazado al ámbito de la aplicación. De vez en cuando, el contexto de sesión se serializa al disco con el fin de utilizar la memoria de un modo más eficiente. Sin embargo, la aplicación en el ámbito de la instancia de Web Bean ¡no debe serializarse junto con la sesión en el ámbito de Web Bean!"
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
+msgid "we would like to iterate over all beans of a certain type."
 msgstr ""
-"Por lo tanto, a menos que un Web Bean tenga un ámbito predeterminado <literal>@Dependent</"
-"literal>, el administrador de Web Bean deberá direccionar indirectamente todas las referencias inyectadas al "
-"Web Bean a través del objeto de proxy. Este <emphasis>proxy de cliente</emphasis> responsable de garantizar que la instancia de Web Bean reciba un método de invocación es la instancia asociada con el contexto actual. El proxy de cliente también permite a los Web Beans vincularse a contextos tales como el contexto de sesión que debe serializarse al disco sin serializar de modo recursivo a otros Web Beans inyectados."
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
+#: injection.xml:482
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
-msgstr "Lamentablemente, debido a limitaciones del lenguaje de Java, el administrador de Web Bean no puede utilizar proxy en algunos tipos de Java. Por lo tanto, el administrador de Web Bean produce un <literal>UnproxyableDependencyException</literal> si no se puede aplicar proxy al tipo de un punto de inyección."
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"La aplicación puede obtener una instancia de la interfaz <literal>Manager</"
+"literal> a través de inyección:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "El administrador de Web Bean no puede aplicar proxy en los siguientes tipos de Java:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
+#: injection.xml:489
+#, fuzzy, no-c-format
 msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
-msgstr "las clases que son declaradas <literal>final</literal> o tienen un método <literal>final</literal>,"
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"Tipos de despliegue <literal>@Mock</literal> y <literal>@Staging</literal> "
+"para pruebas"
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "las clases que no tienen un constructor no-privado sin parámetros y "
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "matrices y tipos primarios."
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
+#: injection.xml:504
+#, fuzzy, no-c-format
 msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
-"Suele ser muy fácil corregir una <literal>UnproxyableDependencyException</"
-"literal>. Basta con añadir un constructor sin parámetros a la clase inyectada, introducir una interfaz, o cambiar el ámbito del Web Bean inyectado a <literal>@Dependent</literal>."
+"Los Web Beans sencillos admiten únicamente las devoluciones de llamadas "
+"<literal>@PostConstruct</literal> y <literal>@PreDestroy</literal>."
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "Obtención de un Web Bean por búsqueda programática"
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
 msgstr ""
-"La aplicación puede obtener una instancia de la interfaz <literal>Manager</"
-"literal> a través de inyección:"
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
-msgstr "El objeto <literal>Manager</literal> proporciona un grupo de métodos para obtener una instancia de Web Bean en forma programática."
-
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
 msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
-msgstr "Las anotaciones de enlace se pueden especificar a través de subclasificaciones de la clase auxiliar <literal>AnnotationLiteral</literal>, porque de otra manera es difícil instanciar un tipo de anotación en Java."
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to "
-"create a named subclass:"
-msgstr "Si el tipo de vinculación tiene un miembro de anotación, no podemos utilizar una subclase anónima de <literal>AnnotationLiteral</literal> &#151; en su lugar, necesitaremos crear una subclase llamada:"
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
 "class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
-msgstr ""
-"El ciclo de vida de los callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"y <literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
 msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
-"Los Web Beans de empresa admiten todos los ciclos de vida de las devoluciones de llamadas definidas por la especificación EJB: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> y <literal>@PostActivate</"
-"literal>."
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
 msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
 msgstr ""
-"Los Web Beans sencillos admiten únicamente las devoluciones de llamadas <literal>@PostConstruct</literal> y "
-"<literal>@PreDestroy</literal>."
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
 msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
 msgstr ""
-"Web Beans sencillos y empresariales soportan el uso de <literal>@Resource</"
-"literal>, <literal>@EJB</literal> y <literal>@PersistenceContext</literal> para inyección de recursos de Java EE, EJB y contextos de persistencia JPA, respectivamente. Web Beans sencillos no admiten el uso de "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
-msgstr "La devolución de llamada <literal>@PostConstruct</literal> siempre se presenta tras la inyección de todas las dependencias."
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "El objeto <literal>InjectionPoint</literal>"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
+#: injection.xml:558
+#, fuzzy, no-c-format
 msgid ""
-"There are certain kinds of dependent objects &#151; Web Beans with scope "
-"<literal>@Dependent</literal> &#151; that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
-msgstr "Hay algunas clases de objetos &#151; con ámbito <literal>@Dependent</literal> &#151; que necesitan saber algo acerca del objeto o punto de inyección dentro del cual son inyectados para poder hacer lo que hacen. Por ejemplo:"
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"Hay algunas clases de objetos &#151; con ámbito <literal>@Dependent</"
+"literal> &#151; que necesitan saber algo acerca del objeto o punto de "
+"inyección dentro del cual son inyectados para poder hacer lo que hacen. Por "
+"ejemplo:"
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
 msgid ""
 "The log category for a <literal>Logger</literal> depends upon the class of "
 "the object that owns it."
-msgstr "La categoría de registro para un <literal>Logger</literal> depende de la clase de objeto que lo posea."
+msgstr ""
+"La categoría de registro para un <literal>Logger</literal> depende de la "
+"clase de objeto que lo posea."
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
 msgid ""
 "Injection of a HTTP parameter or header value depends upon what parameter or "
 "header name was specified at the injection point."
-msgstr "La inyección de un parámetro HTTP o valor de encabezado depende del parámetro o del nombre de encabezado especificado en el punto de inyección."
+msgstr ""
+"La inyección de un parámetro HTTP o valor de encabezado depende del "
+"parámetro o del nombre de encabezado especificado en el punto de inyección."
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
 msgid ""
 "Injection of the result of an EL expression evaluation depends upon the "
 "expression that was specified at the injection point."
-msgstr "La inyección del resultado de una prueba de expresión EL depende de la expresión que fue especificada en el punto de inyección."
+msgstr ""
+"La inyección del resultado de una prueba de expresión EL depende de la "
+"expresión que fue especificada en el punto de inyección."
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
+#: injection.xml:577
+#, fuzzy, no-c-format
 msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
 "injection point to which it belongs."
-msgstr "Un Web Bean con ámbito <literal>@Dependent</literal> puede inyectar una instancia de <literal>InjectionPoint</literal> y acceder a metadatos relativos al punto de inyección al que pertenezca."
+msgstr ""
+"Un Web Bean con ámbito <literal>@Dependent</literal> puede inyectar una "
+"instancia de <literal>InjectionPoint</literal> y acceder a metadatos "
+"relativos al punto de inyección al que pertenezca."
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
 msgid ""
 "Let's look at an example. The following code is verbose, and vulnerable to "
 "refactoring problems:"
-msgstr "Veamos un ejemplo. El código siguiente es detallado, y vulnerable a problemas de refactorización:"
+msgstr ""
+"Veamos un ejemplo. El código siguiente es detallado, y vulnerable a "
+"problemas de refactorización:"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
 msgid ""
 "This clever little producer method lets you inject a JDK <literal>Logger</"
 "literal> without explicitly specifying the log category:"
-msgstr "Este método inteligente de productor permite inyectar un <literal>Logger</literal> JDK sin especificar explícitamente la categoría de registro:"
+msgstr ""
+"Este método inteligente de productor permite inyectar un <literal>Logger</"
+"literal> JDK sin especificar explícitamente la categoría de registro:"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
@@ -1294,27 +1352,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "Ahora podemos escribir:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
+#: injection.xml:595
+#, fuzzy, no-c-format
 msgid ""
 "Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
-msgstr "¿No está convencido? Entonces, veamos un segundo ejemplo. Para inyectar parámetros, necesitamos definir el tipo de vinculación:"
+"need to define a qualifier type:"
+msgstr ""
+"¿No está convencido? Entonces, veamos un segundo ejemplo. Para inyectar "
+"parámetros, necesitamos definir el tipo de vinculación:"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1332,13 +1392,15 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
-msgstr "Utilizaríamos este tipo de enlace en puntos de inyección, como a continuación:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
+msgstr ""
+"Utilizaríamos este tipo de enlace en puntos de inyección, como a "
+"continuación:"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1348,13 +1410,13 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "El siguiente método de productor sí funciona:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
@@ -1378,26 +1440,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
+#: injection.xml:608
+#, fuzzy, no-c-format
 msgid ""
 "(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
+"literal> annotation is ignored by the container since it is annotated "
 "<literal>@NonBinding.</literal>)"
 msgstr ""
-"(Observe que el miembro del <literal>valor()</literal> de la anotación <literal>HttpParam</"
-"literal> es ignorado por el administrador de Web Bean porque está anotado como <literal>@NonBinding.</literal>)"
+"(Observe que el miembro del <literal>valor()</literal> de la anotación "
+"<literal>HttpParam</literal> es ignorado por el administrador de Web Bean "
+"porque está anotado como <literal>@NonBinding.</literal>)"
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
+#: injection.xml:611
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
+"The container provides a built-in bean that implements the "
 "<literal>InjectionPoint</literal> interface:"
-msgstr "El administrador de Web Bean proporciona un Web Bean incorporado que implementa la interfaz <literal>InjectionPoint</literal>:"
+msgstr ""
+"El administrador de Web Bean proporciona un Web Bean incorporado que "
+"implementa la interfaz <literal>InjectionPoint</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1416,3 +1481,569 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr ""
+#~ "Web Beans soporta tres mecanismos primarios para inyección de dependencia:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Constructor de inyección de parámetro:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "La inyección de parámetro constructor no es admitida por beans de EJB, "
+#~ "porque EJB es instanciado por el contenedor de EJB, no por el "
+#~ "administrador de Web Bean."
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "Los parámetros de constructores y métodos de inicializador no necesitan "
+#~ "ser anotados explícitamente cuando se aplique el tipo de enlace "
+#~ "predeterminado <literal>@Current</literal>. Los campos inyectados, sin "
+#~ "embargo, <emphasis>deben</emphasis> especificar un tipo de enlace, cuando "
+#~ "se aplique el tipo de enlace predeterminado. Si el campo no especifica "
+#~ "ningún tipo de enlace, no será inyectado."
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "Los métodos de productor también admiten inyección de parámetro:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "Por último, los métodos de observador (que encontraremos en <xref linkend="
+#~ "\"events\"/>), los métodos desechables y los métodos destructores, "
+#~ "admiten inyección de parámetro."
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "permitiendo que una implementación de una API remplace otra "
+#~ "implementación de la misma API en el momento del despliegue, sin cambios "
+#~ "al cliente, mediante <emphasis>prioridad de tipo de despliegue</emphasis>."
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Exploremos cómo el administrador de Web Beans determina una Web Bean para "
+#~ "ser inyectado."
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "Anotaciones de enlace con miembros"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "Las anotaciones de enlace pueden tener miembros:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "En cuyo caso, el valor de miembro es importante:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "Combinaciones de anotaciones de enlace"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "Anotaciones de enlace y métodos de productor"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr ""
+#~ "Incluso los métodos de productor pueden especificar anotaciones de enlace:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "El tipo de enlace predeterminado"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beans define un tipo de enlace <literal>@Current</literal>, el cual "
+#~ "es el tipo de enlace predeterminado para cualquier punto de inyección o "
+#~ "Web Bean que no especifique explícitamente un tipo de enlace."
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "Hay dos circunstancias comunes en que se necesita especificar "
+#~ "explícitamente a <literal>@Current</literal>:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "en un campo, para declararlo como un campo inyectado con el tipo de "
+#~ "enlace por defecto, y "
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "en un Web Bean, el cual tiene otro tipo de enlace además del tipo de "
+#~ "enlace predeterminado."
+
+#~ msgid "Deployment types"
+#~ msgstr "Tipos de despliegue"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "Todos los Web Beans tienen un <emphasis>tipo de despliegue</emphasis>. "
+#~ "Cada tipo de despliegue identifica un conjunto de Web Beans que debería "
+#~ "ser instalado bajo condiciones en algunos despliegues del sistema."
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "Por ejemplo, podríamos definir un tipo de despliegue llamado "
+#~ "<literal>@Mock</literal>, el cual identificaría Web Beans que deben ser "
+#~ "instalados sólo cuando el sistema se ejecute dentro de un entorno de "
+#~ "pruebas de integración:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "Supongamos que tenemos algunos Web Bean que interactuaron con un sistema "
+#~ "externo para procesar pagos:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "Como este Web Bean no especifica explícitamente un tipo de despliegue, "
+#~ "tiene el tipo de despliegue predeterminado <literal>@Production</literal>."
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "Para prueba de integración o de unidad, el sistema externo está lento o "
+#~ "no está disponible. Por lo tanto, creamos el objeto mock:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "Pero, ¿cómo determina el administrador de Web Bean la aplicación que debe "
+#~ "utilizar en un despliegue determinado?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "Habilitar tipos de despliegue"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beans define dos tipos de despliegue incorporados: "
+#~ "<literal>@Production</literal> y <literal>@Standard</literal>. Por "
+#~ "defecto, sólo los Web Beans con tipos de despliegue incorporados se "
+#~ "habilitan cuando se despliega el sistema. Podemos identificar tipos de "
+#~ "despliegue adicionales en un despliegue particular listándolos en "
+#~ "<literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "Volviendo a nuestro ejemplo, cuando desplegamos nuestras pruebas de "
+#~ "integración, deseamos que todos nuestros objetos <literal>@Mock</literal> "
+#~ "sean instalados:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "Ahora el administrador de Web Bean identificará e instalará todos los Web "
+#~ "Beans anotados <literal>@Production</literal>, <literal>@Standard</"
+#~ "literal> o <literal>@Mock</literal> en el momento del despliegue."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "El tipo de despliegue <literal>@Standard</literal> es utilizado "
+#~ "únicamente por algunos Web Beans especiales definidos por la "
+#~ "especificación de Web Beans. No podemos utilizarlo para nuestros propios "
+#~ "Web Beans ni inhabilitarlo."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "El tipo de despliegue <literal>@Production</literal> es el tipo de "
+#~ "despliegue predeterminado para Web Beans que no declaran explícitamente "
+#~ "un tipo de despliegue, y que se puede inhabilitar."
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Prioridad de tipo de despliegue"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "Si ha prestado atención, probablemente se estará preguntando cómo escoge "
+#~ "Web Bean la aplicación &#151; <literal>ExternalPaymentProcessor</literal> "
+#~ "o <literal>MockPaymentProcessor</literal> &#151; . Piense en lo que "
+#~ "sucede cuando el administrador encuentra este punto de inyección:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "Ahora hay dos Web Beans que cumplen el contrato "
+#~ "<literal>PaymentProcessor</literal>. Claro está que no podemos utilizar "
+#~ "una anotación de enlace para explicar, porque las anotaciones de enlace "
+#~ "están codificadas dentro de la fuente en el punto de inyección, y "
+#~ "queremos que el administrador pueda decidir en el ¡momento de despliegue!"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "La solución a este problema es que cada tipo de despliegue tiene una "
+#~ "<emphasis>prioridad</emphasis> diferente. La prioridad de los tipos de "
+#~ "despliegue es determinada por el orden de aparición en <literal>web-beans."
+#~ "xml</literal>. En nuestro ejemplo, <literal>@Mock</literal> es posterior "
+#~ "a <literal>@Production</literal> por lo tanto tiene mayor prioridad."
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "Cada vez que el administrador descubre que más de un Web Bean cumple el "
+#~ "contrato (tipo API más anotaciones de enlace) especificado por un punto "
+#~ "de inyección, considera la prioridad relativa de los Web Beans. Se escoge "
+#~ "el Web Bean que tiene prioridad respecto de los otros para inyectar. Por "
+#~ "lo tanto, en nuestro ejemplo, el administrador de Web Bean inyectará "
+#~ "<literal>MockPaymentProcessor</literal> al ejecutar en nuestro entorno de "
+#~ "prueba de integración (que es precisamente lo que queremos)."
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "Es interesante comparar esta facilidad con las arquitecturas populares "
+#~ "del administrador de hoy. Varios contenedores \"ligeros\" también "
+#~ "permiten el despliegue condicional de clases existentes en el classpath, "
+#~ "pero las clases que van a ser desplegadas deben ser explícitamente, "
+#~ "listadas de modo individual en el código de configuración o en algún "
+#~ "archivo de configuración XML. Web Beans no admite definición de Web Bean "
+#~ "ni configuración vía XML, pero en el común de los casos donde no se "
+#~ "requiere una configuración compleja, los tipos de despliegue permiten "
+#~ "habilitar un conjunto completo de Web Beans con una sóla línea de XML. "
+#~ "Mientras tanto, un desarrollador que esté navegando el código puede "
+#~ "fácilmente identificar en qué escenarios de despliegue se utilizará el "
+#~ "Web Bean."
+
+#~ msgid "Example deployment types"
+#~ msgstr "Ejemplo de tipos de despliegue"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "Los tipos de despliegue son útiles para toda clase de cosas, algunos "
+#~ "ejemplos a continuación:"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr ""
+#~ "<literal>@AustralianTaxLaw</literal> para Web Beans de sitio específico"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> para marcos "
+#~ "de terceras partes generados en Web Beans"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal>para Web Beans estándar definidos por la "
+#~ "especificación Web Beans"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "Estamos seguros que puede pensar en más aplicaciones..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "Por lo general es fácil corregir una "
+#~ "<literal>UnsatisfiedDependencyException</literal> o una "
+#~ "<literal>AmbiguousDependencyException</literal>."
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "Para corregir una <literal>UnsatisfiedDependencyException</literal>, "
+#~ "basta con proporcionar un Web Bean que implemente el tipo API y tenga los "
+#~ "tipos de enlace del punto de inyección &#151; o permita el tipo de "
+#~ "despliegue de un Web Bean que ya implemente el tipo API y tenga los tipos "
+#~ "de enlace."
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "Para corregir una <literal>AmbiguousDependencyException</literal>, "
+#~ "introduzca un tipo de enlace para distinguir entre las dos "
+#~ "implementaciones del tipo de API o cambie el tipo de despliegue de una de "
+#~ "las implementaciones con el fin de que el administrador de Web Bean pueda "
+#~ "utilizar la prioridad de tipo de despliegue para escoger entre ellas. Una "
+#~ "<literal>AmbiguousDependencyException</literal> sólo puede presentarse si "
+#~ "dos Web Beans comparten un tipo de enlace y tienen exactamente el mismo "
+#~ "tipo de despliegue."
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "El objeto <literal>Manager</literal> proporciona un grupo de métodos para "
+#~ "obtener una instancia de Web Bean en forma programática."
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "Las anotaciones de enlace se pueden especificar a través de "
+#~ "subclasificaciones de la clase auxiliar <literal>AnnotationLiteral</"
+#~ "literal>, porque de otra manera es difícil instanciar un tipo de "
+#~ "anotación en Java."
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "Si el tipo de vinculación tiene un miembro de anotación, no podemos "
+#~ "utilizar una subclase anónima de <literal>AnnotationLiteral</literal> "
+#~ "&#151; en su lugar, necesitaremos crear una subclase llamada:"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "El ciclo de vida de los callbacks, <literal>@Resource</literal>, "
+#~ "<literal>@EJB</literal> y <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "Los Web Beans de empresa admiten todos los ciclos de vida de las "
+#~ "devoluciones de llamadas definidas por la especificación EJB: "
+#~ "<literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, "
+#~ "<literal>@PrePassivate</literal> y <literal>@PostActivate</literal>."
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "Web Beans sencillos y empresariales soportan el uso de "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> y "
+#~ "<literal>@PersistenceContext</literal> para inyección de recursos de Java "
+#~ "EE, EJB y contextos de persistencia JPA, respectivamente. Web Beans "
+#~ "sencillos no admiten el uso de <literal>@PersistenceContext(type=EXTENDED)"
+#~ "</literal>."
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "La devolución de llamada <literal>@PostConstruct</literal> siempre se "
+#~ "presenta tras la inyección de todas las dependencias."

Modified: doc/trunk/reference/es-ES/interceptors.po
===================================================================
--- doc/trunk/reference/es-ES/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: interceptors\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 15:37+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,65 +17,64 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "Interceptores"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
+#: interceptors.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
-msgstr "Web Beans reutiliza el interceptor de arquitectura básico de EJB 3.0, extendiendo la funcionalidad en dos direcciones:"
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web Beans ofrece un método de anotación más sofisticado para interceptores "
+"de enlace a Web Beans."
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "Cualquier Web Bean puede tener interceptores, no sólo beans de sesión."
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
+#: interceptors.xml:12
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
-msgstr "Web Beans ofrece un método de anotación más sofisticado para interceptores de enlace a Web Beans."
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "La especificación EJB define dos clases de puntos de interceptación:"
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "la interceptación de método de negocios y"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "la interceptación de devolución de llamadas de ciclo de vida"
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "La especificación EJB define dos clases de puntos de interceptación:"
+
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
-msgstr "Un <emphasis>interceptor de método de negocios</emphasis> se aplica a invocaciones de métodos del Web Bean por clientes del Web Bean:"
+"methods of the bean by clients of the bean:"
+msgstr ""
+"Un <emphasis>interceptor de método de negocios</emphasis> se aplica a "
+"invocaciones de métodos del Web Bean por clientes del Web Bean:"
 
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -85,20 +84,23 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
 "of lifecycle callbacks by the container:"
-msgstr "Un <emphasis>interceptor de devolución de llamadas de ciclo de vida</emphasis> se aplica a invocaciones de devolución de llamadas de ciclo de vida por el contenedor:"
+msgstr ""
+"Un <emphasis>interceptor de devolución de llamadas de ciclo de vida</"
+"emphasis> se aplica a invocaciones de devolución de llamadas de ciclo de "
+"vida por el contenedor:"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
@@ -112,28 +114,60 @@
 msgid ""
 "An interceptor class may intercept both lifecycle callbacks and business "
 "methods."
-msgstr "Una clase de interceptor puede interceptar métodos de devolución de llamadas de ciclo de vida y métodos de negocios."
+msgstr ""
+"Una clase de interceptor puede interceptar métodos de devolución de llamadas "
+"de ciclo de vida y métodos de negocios."
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"Un <emphasis>interceptor de devolución de llamadas de ciclo de vida</"
+"emphasis> se aplica a invocaciones de devolución de llamadas de ciclo de "
+"vida por el contenedor:"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "Enlaces de interceptor"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
+#: interceptors.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "Suponga que deseamos declarar que algunos de nuestros Web Beans son transaccionales. La primera cosa que necesitamos es una <emphasis>anotación de enlace de interceptor</emphasis> para especificar exactamente en cuáles Web Beans estamos interesados:"
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"Suponga que deseamos declarar que algunos de nuestros Web Beans son "
+"transaccionales. La primera cosa que necesitamos es una <emphasis>anotación "
+"de enlace de interceptor</emphasis> para especificar exactamente en cuáles "
+"Web Beans estamos interesados:"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -144,15 +178,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
 "transactional object:"
-msgstr "Ahora podemos especificar con facilidad que nuestro <literal>ShoppingCart</literal> es un objeto transaccional:"
+msgstr ""
+"Ahora podemos especificar con facilidad que nuestro <literal>ShoppingCart</"
+"literal> es un objeto transaccional:"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -162,17 +198,18 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
-msgstr "O, si preferimos, podemos especificar que sólo un método es transaccional:"
+msgstr ""
+"O, si preferimos, podemos especificar que sólo un método es transaccional:"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -180,28 +217,34 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "Implementación de interceptores"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
+#: interceptors.xml:81
+#, fuzzy, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "Es maravilloso, pero en alguna parte de la línea vamos a tener que implementar realmente el interceptor que proporciona este aspecto de manejo de transacción. Todo lo que debemos hacer es crear un interceptor estándar EJB, y anotar <literal>@Interceptor</literal> y <literal>@Transactional</literal>."
+msgstr ""
+"Es maravilloso, pero en alguna parte de la línea vamos a tener que "
+"implementar realmente el interceptor que proporciona este aspecto de manejo "
+"de transacción. Todo lo que debemos hacer es crear un interceptor estándar "
+"EJB, y anotar <literal>@Interceptor</literal> y <literal>@Transactional</"
+"literal>."
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -212,23 +255,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
-msgstr "Todos los interceptores de Web Beans son Web Beans sencillos, y podemos aprovechar las ventajas de inyección de dependencia y administración de ciclo de vida contextual."
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
@@ -244,118 +286,136 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
-msgstr "Múltiples Interceptores pueden utilizar el mismo tipo de vinculación de interceptor."
+msgstr ""
+"Múltiples Interceptores pueden utilizar el mismo tipo de vinculación de "
+"interceptor."
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "Habilitar Interceptores"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
 msgstr ""
-"Por último, necesitamos <emphasis>habilitar</emphasis> nuestro interceptor en "
-"<literal>web-beans.xml</literal>."
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "¿Por qué el corchete angular permanece?"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "Bien, la declaración XML resuelve dos problemas:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
 "system, ensuring deterministic behavior, and"
-msgstr "nos permite especificar una orden total para todos los interceptores en nuestro sistema, garantizando una conducta determinante y "
+msgstr ""
+"nos permite especificar una orden total para todos los interceptores en "
+"nuestro sistema, garantizando una conducta determinante y "
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
-msgstr "nos permite habilitar o inhabilitar clases de interceptores en el momento del despliegue."
+msgstr ""
+"nos permite habilitar o inhabilitar clases de interceptores en el momento "
+"del despliegue."
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
+#: interceptors.xml:130
+#, fuzzy, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
-msgstr "Por ejemplo, podemos especificar que nuestro interceptor de seguridad se ejecuta antes que nuestro <literal>TransactionInterceptor</literal>."
+"transaction interceptor."
+msgstr ""
+"Por ejemplo, podemos especificar que nuestro interceptor de seguridad se "
+"ejecuta antes que nuestro <literal>TransactionInterceptor</literal>."
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "O podemos ¡apagarlo en nuestro entorno de prueba!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "Enlaces de interceptor con miembros"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
 "<literal>@Transactional</literal> annotation:"
 msgstr ""
-"Suponga que deseamos agregar alguna información adicional a nuestra anotación "
-"<literal>@Transactional</literal>:"
+"Suponga que deseamos agregar alguna información adicional a nuestra "
+"anotación <literal>@Transactional</literal>:"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -366,21 +426,25 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
+#: interceptors.xml:150
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beans utilizará el valor de <literal>requiresNew</literal> para escoger entre dos interceptores, <literal>TransactionInterceptor</literal> y <literal>RequiresNewTransactionInterceptor</literal>."
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beans utilizará el valor de <literal>requiresNew</literal> para escoger "
+"entre dos interceptores, <literal>TransactionInterceptor</literal> y "
+"<literal>RequiresNewTransactionInterceptor</literal>."
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -391,41 +455,47 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
 "this:"
-msgstr "Ahora podemos utilizar <literal>RequiresNewTransactionInterceptor</literal> de esta manera:"
+msgstr ""
+"Ahora podemos utilizar <literal>RequiresNewTransactionInterceptor</literal> "
+"de esta manera:"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
+#: interceptors.xml:163
+#, fuzzy, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
-msgstr "Pero, ¿qué sucede si sólo tenemos un interceptor y queremos que el administrador ignore el valor de <literal>requiresNew</literal> al vincular interceptores? Podemos utilizar la anotación <literal>@NonBinding</literal>:"
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"Pero, ¿qué sucede si sólo tenemos un interceptor y queremos que el "
+"administrador ignore el valor de <literal>requiresNew</literal> al vincular "
+"interceptores? Podemos utilizar la anotación <literal>@NonBinding</literal>:"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -436,23 +506,28 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "Anotaciones de enlace de múltiples interceptores"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
+#: interceptors.xml:176
+#, fuzzy, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr "Generalmente utilizamos combinaciones de tipos de interceptores de enlace para vincular múltiples interceptores a un Web Bean. Por ejemplo, la siguiente declaración sería utilizada para enlazar <literal>TransactionInterceptor</literal> y <literal>SecurityInterceptor</literal> al mismo Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
+msgstr ""
+"Generalmente utilizamos combinaciones de tipos de interceptores de enlace "
+"para vincular múltiples interceptores a un Web Bean. Por ejemplo, la "
+"siguiente declaración sería utilizada para enlazar "
+"<literal>TransactionInterceptor</literal> y <literal>SecurityInterceptor</"
+"literal> al mismo Web Bean:"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -462,15 +537,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
 "combination of interceptor binding types:"
-msgstr "Sin embargo, en casos muy complejos, el mismo interceptor puede especificar una combinación de tipos de interceptor de enlace:"
+msgstr ""
+"Sin embargo, en casos muy complejos, el mismo interceptor puede especificar "
+"una combinación de tipos de interceptor de enlace:"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -480,19 +557,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
 "method using any one of the following combinations:"
-msgstr "Entonces este interceptor podría estar vinculado al método <literal>checkout()</literal> mediante cualquiera de las siguientes combinaciones:"
+msgstr ""
+"Entonces este interceptor podría estar vinculado al método <literal>checkout"
+"()</literal> mediante cualquiera de las siguientes combinaciones:"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -500,12 +579,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -514,12 +593,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -528,12 +607,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -542,43 +621,53 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "Herencia del tipo de interceptor de enlace"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
 "annotation inheritance. Really, annotations should have reuse built in, to "
 "allow this kind of thing to work:"
-msgstr "Una limitación de la compatibilidad del lenguaje de Java para anotaciones es la falta de herencia de anotación. En realidad, las anotaciones deberían tener reutilización incorporada, para permitir a este tipo que funcione:"
+msgstr ""
+"Una limitación de la compatibilidad del lenguaje de Java para anotaciones es "
+"la falta de herencia de anotación. En realidad, las anotaciones deberían "
+"tener reutilización incorporada, para permitir a este tipo que funcione:"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
+#: interceptors.xml:216
+#, fuzzy, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "Bueno, afortunadamente, Web Beans funciona en torno a esta característica de Java. Podemos anotar un interceptor de tipo de enlace con otros tipos de interceptores de enlace. Los enlaces de interceptor son transitivos &#151; cualquier Web Bean con el primer enlace de interceptor hereda los enlaces de interceptor declarados como meta-anotaciones."
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"Bueno, afortunadamente, Web Beans funciona en torno a esta característica de "
+"Java. Podemos anotar un interceptor de tipo de enlace con otros tipos de "
+"interceptores de enlace. Los enlaces de interceptor son transitivos &#151; "
+"cualquier Web Bean con el primer enlace de interceptor hereda los enlaces de "
+"interceptor declarados como meta-anotaciones."
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -590,41 +679,44 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
+#: interceptors.xml:225
+#, fuzzy, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
 msgstr ""
 "Cualquier Web Bean anotado <literal>@Action</literal> estará vinculado a "
 "<literal>TransactionInterceptor</literal> y <literal>SecurityInterceptor</"
-"literal>. (E incluso a <literal>TransactionalSecureInterceptor</literal>, si éste existe.)"
+"literal>. (E incluso a <literal>TransactionalSecureInterceptor</literal>, si "
+"éste existe.)"
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "Uso de <literal>@Interceptors</literal>"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
+#: interceptors.xml:236
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
-msgstr "La anotación <literal>@Interceptors</literal> definida por la especificación de EJB es compatible con Web Beans empresariales y sencillos, por ejemplo:"
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"La anotación <literal>@Interceptors</literal> definida por la especificación "
+"de EJB es compatible con Web Beans empresariales y sencillos, por ejemplo:"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
@@ -634,34 +726,88 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "Sin embargo, este enfoque tiene los siguientes inconvenientes:"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
-msgstr "la implementación de interceptor está codificada en código de negocios,"
+msgstr ""
+"la implementación de interceptor está codificada en código de negocios,"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
-msgstr "los interceptores no se pueden fácilmente inhabilitar en el momento del despliegue, y"
+msgstr ""
+"los interceptores no se pueden fácilmente inhabilitar en el momento del "
+"despliegue, y"
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
+#: interceptors.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "la orden del interceptor es no-global &#151; es determinada por la orden en que se listan los interceptores en el nivel de clase."
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"la orden del interceptor es no-global &#151; es determinada por la orden en "
+"que se listan los interceptores en el nivel de clase."
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
-msgstr "Por lo tanto, recomendamos el uso de Web Beans estilo interceptor de enlaces."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
+msgstr ""
+"Por lo tanto, recomendamos el uso de Web Beans estilo interceptor de enlaces."
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans reutiliza el interceptor de arquitectura básico de EJB 3.0, "
+#~ "extendiendo la funcionalidad en dos direcciones:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr ""
+#~ "Cualquier Web Bean puede tener interceptores, no sólo beans de sesión."
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "Todos los interceptores de Web Beans son Web Beans sencillos, y podemos "
+#~ "aprovechar las ventajas de inyección de dependencia y administración de "
+#~ "ciclo de vida contextual."
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Por último, necesitamos <emphasis>habilitar</emphasis> nuestro "
+#~ "interceptor en <literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "O podemos ¡apagarlo en nuestro entorno de prueba!"

Modified: doc/trunk/reference/es-ES/intro.po
===================================================================
--- doc/trunk/reference/es-ES/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: intro\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:28+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -19,56 +19,125 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Comenzando a escribir Web Beans"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
-msgstr "Entonces, ¿está preparado para empezar a escribir su primer Web Bean? O quizás está escéptico, preguntándose por qué tipos de arcos le hará ¡saltar la especificación de Web Beans! La buena noticia es que probablemente ya ha escrito y utilizado cientos, quizás miles de Web Beans. Podría no recordar incluso el primer Web Bean que escribió."
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"Entonces, ¿está preparado para empezar a escribir su primer Web Bean? O "
+"quizás está escéptico, preguntándose por qué tipos de arcos le hará ¡saltar "
+"la especificación de Web Beans! La buena noticia es que probablemente ya ha "
+"escrito y utilizado cientos, quizás miles de Web Beans. Podría no recordar "
+"incluso el primer Web Bean que escribió."
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "Su primer Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "¿Qué es un Web Bean?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
-msgstr "Con determinadas excepciones, muy especiales, toda clase de Java con un constructor que no acepte parámetros es un Web Bean. Esto incluye cada JavaBean. Además, cada sesión estilo EJB 3 es un Web Bean. Por supuesto, los JavaBeans y EJB que usted ha escrito a diario no han podido aprovechar los nuevos servicios definidos por la especificación de Web Beans, pero podrá utilizar cada uno de ellos como Web Beans &#151; inyectándolos en otros Web Beans, configurándolos a través de los servicios de configuración, incluso agregándoles interceptores y decoradores &#151; sin tocar su código existente."
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:27
+#, no-c-format
+msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
 "years in various applications. The first class parses a string into a list "
 "of sentences:"
-msgstr "Suponga que tenemos dos clases existentes de Java, las cuales hemos estado utilizando por años en varias aplicaciones. La primera clase analiza una cadena en un lista de oraciones:"
+msgstr ""
+"Suponga que tenemos dos clases existentes de Java, las cuales hemos estado "
+"utilizando por años en varias aplicaciones. La primera clase analiza una "
+"cadena en un lista de oraciones:"
 
 #. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
+#: intro.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -76,21 +145,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
 msgid ""
 "The second existing class is a stateless session bean front-end for an "
 "external system that is able to translate sentences from one language to "
 "another:"
-msgstr "La segunda clase existente es un bean de front-end sin estado de sesión capaz de traducir oraciones de un idioma a otro:"
+msgstr ""
+"La segunda clase existente es un bean de front-end sin estado de sesión "
+"capaz de traducir oraciones de un idioma a otro:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -99,18 +170,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "Donde <literal>Translator</literal> es la interfaz local:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -119,37 +190,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
+#: intro.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
-msgstr "Lamentablemente, no tenemos una clase preexistente que traduzca todos los documentos de texto. Entonces, escribamos un Web Bean que realice esta tarea:"
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"Lamentablemente, no tenemos una clase preexistente que traduzca todos los "
+"documentos de texto. Entonces, escribamos un Web Bean que realice esta tarea:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
 "sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -175,1031 +246,1021 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
+#: intro.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr "Podemos obtener una instancia de <literal>TextTranslator</literal> inyectándola en una Web Bean, Servlet o EJB: "
-
-#. Tag: programlisting
-#: intro.xml:49
-#, no-c-format
-msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"Pero espere: ¡<literal>TextTranslator</literal> no tiene un constructor sin "
+"parámetros! ¿Es éste aún un Web Bean? Bueno, una clase que no tiene un "
+"constructor sin parámetros aún puede ser un Web Bean si tiene un constructor "
+"anotado <literal>@Initializer</literal>."
 
 #. Tag: para
-#: intro.xml:51
-#, no-c-format
+#: intro.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr "De modo alterno, podemos obtener una instancia llamando directamente un método del administrador de Web Bean:"
-
-#. Tag: programlisting
-#: intro.xml:54
-#, no-c-format
-msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
 msgstr ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"Como pudo adivinar, la anotación <literal>@Initializer</literal> tiene algo "
+"que ver con la ¡inyección de dependencia! <literal>@Initializer</literal> "
+"puede aplicarse a un constructor o método de un Web Bean, y pide a un "
+"administrador de Bean llamar a ese constructor o método cuando inicia el Web "
+"Bean. El administrador de Web Bean inyectará otros Web Beans a los "
+"parámetros del constructor o método."
 
 #. Tag: para
-#: intro.xml:56
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr "Pero espere: ¡<literal>TextTranslator</literal> no tiene un constructor sin parámetros! ¿Es éste aún un Web Bean? Bueno, una clase que no tiene un constructor sin parámetros aún puede ser un Web Bean si tiene un constructor anotado <literal>@Initializer</literal>."
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
 msgstr ""
-"Como pudo adivinar, la anotación <literal>@Initializer</literal> tiene algo que ver con la ¡inyección de dependencia! <literal>@Initializer</literal> puede aplicarse a un constructor o método de un Web Bean, y pide a un administrador de Bean llamar a ese constructor o método cuando inicia el Web "
-"Bean. El administrador de Web Bean inyectará otros Web Beans a los parámetros del constructor o método."
 
-#. Tag: para
-#: intro.xml:68
+#. Tag: programlisting
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> "
-"available &#151; if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed &#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "En el momento de inicialización, el administrador de Web Bean debe confirmar que exista exactamente un Web Bean que complete cada punto de inyección. En nuestro ejemplo, si no estaba disponible ninguna implementación de <literal>Translator</literal>  &#151; si el EJB de <literal>SentenceTranslator</literal> no estaba desplegado &#151; el administrador de Web Bean produciría una <literal>UnsatisfiedDependencyException</literal>. Si más de una implementación de <literal>Translator</literal> estuviera disponible, el administrador de Web Bean produciría una <literal>AmbiguousDependencyException</literal>."
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
+msgstr ""
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "¿Qué es un Web Bean?"
-
 #. Tag: para
-#: intro.xml:82
-#, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "Entonces, ¿qué es, <emphasis>exactamente</emphasis> un Web Bean?"
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "Donde <literal>Translator</literal> es la interfaz local:"
 
 #. Tag: para
-#: intro.xml:84
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
-"Un Web Bean es una clase de aplicación que contiene lógica de negocios. Un Web Bean puede llamarse directamente desde el código de Java, o invocarse a través de Unified EL. "
-"Un Web Bean puede acceder recursos transaccionales. Las dependencias entre Web "
-"Beans son manejadas automáticamente por el administrador de Web Bean. La mayoría de Web Beans son"
-" <emphasis>con estado</emphasis> y <emphasis>contextuales</emphasis>. El ciclo de vida de un Web Bean siempre es manejado por el administrador de Web Bean."
 
 #. Tag: para
-#: intro.xml:91
-#, no-c-format
+#: intro.xml:135
+#, fuzzy, no-c-format
 msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
-msgstr "Volvamos atrás por un segundo. ¿Qué significa \"contextual\"? Puesto que Web Beans puede tener estados, es importante saber <emphasis>qué</emphasis> instancia de bean se tiene. A diferencia de un modelo de componente sin estado (por ejemplo, beans sin estado de sesión) o un modelo de componente singleton (como servlets, o beans singleton), clientes diferentes de un Web Bean ven el Web Bean en estados diferentes. El estado cliente-visible depende de la instancia de Web Bean a la que se refiere el cliente."
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"Podemos obtener una instancia de <literal>TextTranslator</literal> "
+"inyectándola en una Web Bean, Servlet o EJB: "
 
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
 msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
 msgstr ""
-"No obstante, como un modelo sin estado o un modelo singleton, pero <emphasis>a diferencia</"
-"emphasis> de los beans con estado de sesión, el cliente no controla el ciclo de vida de la instancia explícitamente creando y destruyéndolo. En su lugar, el <emphasis>ámbito</emphasis> del Web Bean determina:"
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:105
+#: intro.xml:142
 #, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "el ciclo de vida de cada instancia del Web Bean y"
-
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "los clientes que comparten una referencia a una instancia determinada del Web Bean."
-
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
 msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
 msgstr ""
-"Para un subproceso dado en una aplicación de Web Beans, puede haber un <emphasis>contexto activo</emphasis> asociado con el ámbito del Web "
-"Bean. Este contexto puede ser único para el subproceso (por ejemplo, si el Web Bean tiene un ámbito de petición), o puede compartirse con algunos subprocesos (por ejemplo, si el Web Bean tiene un ámbito de sesión) o incluso con todos los otros subprocesos (si es el ámbito de la aplicación)."
 
 #. Tag: para
-#: intro.xml:119
-#, no-c-format
+#: intro.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr "Los clientes (por ejemplo, otros Web Beans) ejecutando en el mismo contexto verán la misma instancia del Web Bean. Pero los clientes en un contexto diferente verán una instancia diferente."
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"En el momento de inicialización, el administrador de Web Bean debe confirmar "
+"que exista exactamente un Web Bean que complete cada punto de inyección. En "
+"nuestro ejemplo, si no estaba disponible ninguna implementación de "
+"<literal>Translator</literal>  &#151; si el EJB de "
+"<literal>SentenceTranslator</literal> no estaba desplegado &#151; el "
+"administrador de Web Bean produciría una "
+"<literal>UnsatisfiedDependencyException</literal>. Si más de una "
+"implementación de <literal>Translator</literal> estuviera disponible, el "
+"administrador de Web Bean produciría una "
+"<literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: intro.xml:123
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""
-"Una gran ventaja del modelo contextual es que permite a los Web "
-"Beans con estado ser tratados como ¡servicios! El cliente no necesita preocuparse por manejar el ciclo de vida del Web Bean que está utilizando, <emphasis>ni necesita saber qué ciclo de vida es.</emphasis> Los Web Beans interactúan pasando mensajes, y las implementaciones del Web Bean definen el ciclo de vida de su propio estado. Los Web Beans están en parejas sueltas porque:"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "interactúan a través de API públicas bien-definidas"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Comenzando a escribir Web Beans"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "sus ciclos de vida son completamente dispares"
+#~ msgid "Your first Web Bean"
+#~ msgstr "Su primer Web Bean"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "Podemos remplazar un Web Bean por un Web Bean diferente que implemente la misma API y tenga un ciclo de vida diferente (un ámbito diferente) sin afectar la otra implementación de Web Bean. De hecho, Web Beans define una facilidad altamente desarrollada para anular las implementaciones de Web Bean en el momento del despliegue, como también ver en <xref linkend=\"deploymenttypes\"/>."
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "Con determinadas excepciones, muy especiales, toda clase de Java con un "
+#~ "constructor que no acepte parámetros es un Web Bean. Esto incluye cada "
+#~ "JavaBean. Además, cada sesión estilo EJB 3 es un Web Bean. Por supuesto, "
+#~ "los JavaBeans y EJB que usted ha escrito a diario no han podido "
+#~ "aprovechar los nuevos servicios definidos por la especificación de Web "
+#~ "Beans, pero podrá utilizar cada uno de ellos como Web Beans &#151; "
+#~ "inyectándolos en otros Web Beans, configurándolos a través de los "
+#~ "servicios de configuración, incluso agregándoles interceptores y "
+#~ "decoradores &#151; sin tocar su código existente."
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr ""
-"Observe que todos los clientes de una Web Bean son Web Beans. Otros objetos tales como "
-"Servlets o Message-Driven Beans &#151; los cuales son por naturaleza no inyectables, objetos contextuales &#151; también pueden obtener referencias a Web Beans por inyección."
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "De modo alterno, podemos obtener una instancia llamando directamente un "
+#~ "método del administrador de Web Bean:"
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "Más formalmente, de acuerdo con la especificación:"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Un Web Bean comprende:"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "Entonces, ¿qué es, <emphasis>exactamente</emphasis> un Web Bean?"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "Conjunto (no vacío) de Tipos API"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Un Web Bean es una clase de aplicación que contiene lógica de negocios. "
+#~ "Un Web Bean puede llamarse directamente desde el código de Java, o "
+#~ "invocarse a través de Unified EL. Un Web Bean puede acceder recursos "
+#~ "transaccionales. Las dependencias entre Web Beans son manejadas "
+#~ "automáticamente por el administrador de Web Bean. La mayoría de Web Beans "
+#~ "son <emphasis>con estado</emphasis> y <emphasis>contextuales</emphasis>. "
+#~ "El ciclo de vida de un Web Bean siempre es manejado por el administrador "
+#~ "de Web Bean."
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "Un conjunto (no vacío) de tipos de anotación"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "Volvamos atrás por un segundo. ¿Qué significa \"contextual\"? Puesto que "
+#~ "Web Beans puede tener estados, es importante saber <emphasis>qué</"
+#~ "emphasis> instancia de bean se tiene. A diferencia de un modelo de "
+#~ "componente sin estado (por ejemplo, beans sin estado de sesión) o un "
+#~ "modelo de componente singleton (como servlets, o beans singleton), "
+#~ "clientes diferentes de un Web Bean ven el Web Bean en estados diferentes. "
+#~ "El estado cliente-visible depende de la instancia de Web Bean a la que se "
+#~ "refiere el cliente."
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "Un ámbito"
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "No obstante, como un modelo sin estado o un modelo singleton, pero "
+#~ "<emphasis>a diferencia</emphasis> de los beans con estado de sesión, el "
+#~ "cliente no controla el ciclo de vida de la instancia explícitamente "
+#~ "creando y destruyéndolo. En su lugar, el <emphasis>ámbito</emphasis> del "
+#~ "Web Bean determina:"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "Un tipo de despliegue"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "el ciclo de vida de cada instancia del Web Bean y"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "Alternativamente, un nombre de Web Bean"
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr ""
+#~ "los clientes que comparten una referencia a una instancia determinada del "
+#~ "Web Bean."
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "Un conjunto de tipos de interceptor de enlace"
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Para un subproceso dado en una aplicación de Web Beans, puede haber un "
+#~ "<emphasis>contexto activo</emphasis> asociado con el ámbito del Web Bean. "
+#~ "Este contexto puede ser único para el subproceso (por ejemplo, si el Web "
+#~ "Bean tiene un ámbito de petición), o puede compartirse con algunos "
+#~ "subprocesos (por ejemplo, si el Web Bean tiene un ámbito de sesión) o "
+#~ "incluso con todos los otros subprocesos (si es el ámbito de la "
+#~ "aplicación)."
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "Una implementación de Web Bean"
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "Los clientes (por ejemplo, otros Web Beans) ejecutando en el mismo "
+#~ "contexto verán la misma instancia del Web Bean. Pero los clientes en un "
+#~ "contexto diferente verán una instancia diferente."
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "Veamos lo que significan algunos de estos términos, para el desarrollador de Web Bean."
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "Una gran ventaja del modelo contextual es que permite a los Web Beans con "
+#~ "estado ser tratados como ¡servicios! El cliente no necesita preocuparse "
+#~ "por manejar el ciclo de vida del Web Bean que está utilizando, "
+#~ "<emphasis>ni necesita saber qué ciclo de vida es.</emphasis> Los Web "
+#~ "Beans interactúan pasando mensajes, y las implementaciones del Web Bean "
+#~ "definen el ciclo de vida de su propio estado. Los Web Beans están en "
+#~ "parejas sueltas porque:"
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "Tipos API, tipos de enlace e inyección de dependencia"
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "interactúan a través de API públicas bien-definidas"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Los Web Beans suelen adquirir referencias a otros Web Beans a través de la inyección de dependencia. Cualquier atributo inyectado especifica un \"contrato\" que debe cumplir el Web Bean que va a ser inyectado. El contrato es:"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "sus ciclos de vida son completamente dispares"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "Un tipo API, junto con"
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Podemos remplazar un Web Bean por un Web Bean diferente que implemente la "
+#~ "misma API y tenga un ciclo de vida diferente (un ámbito diferente) sin "
+#~ "afectar la otra implementación de Web Bean. De hecho, Web Beans define "
+#~ "una facilidad altamente desarrollada para anular las implementaciones de "
+#~ "Web Bean en el momento del despliegue, como también ver en <xref linkend="
+#~ "\"deploymenttypes\"/>."
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "un conjunto de tipos de enlace."
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "Observe que todos los clientes de una Web Bean son Web Beans. Otros "
+#~ "objetos tales como Servlets o Message-Driven Beans &#151; los cuales son "
+#~ "por naturaleza no inyectables, objetos contextuales &#151; también pueden "
+#~ "obtener referencias a Web Beans por inyección."
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr "Una API es una clase o interfaz de usuario-definida. (Si el Web Bean es un bean EJB de sesión, el tipo API es la vista de bean de interfaz <literal>@Local</literal> o de clase). Un tipo de enlace representa alguna semántica visible de cliente cumplida por algunas implementaciones de API y no por otras."
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "Más formalmente, de acuerdo con la especificación:"
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr "Los tipos de enlace están representados por anotaciones de usuario-definidas hechas por ellas mismas <literal>@BindingType</literal>. Por ejemplo, el siguiente punto de inyección tiene un tipo de <literal>PaymentProcessor</literal> de API y un tipo de enlace <literal>@CreditCard</literal>:"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Un Web Bean comprende:"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "Conjunto (no vacío) de Tipos API"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
-msgstr "Si no está explícito ningún tipo de enlace en el punto de inyección, se asumirá el tipo de enlace predeterminado <literal>@Current</literal>."
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "Un conjunto (no vacío) de tipos de anotación"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
-msgstr "Para cada punto de inyección, el administrador de Web Bean busca un Web Bean que cumpla el contrato (implemente el API, y tenga todos los tipos de enlace), e inyecta ese Web Bean."
+#~ msgid "A scope"
+#~ msgstr "Un ámbito"
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr "El siguiente Web Bean tiene el tipo de enlace <literal>@CreditCard</literal> e implementa el tipo API <literal>PaymentProcessor</literal>. Podría por lo tanto ser inyectado en el punto de inyección de ejemplo:"
+#~ msgid "A deployment type"
+#~ msgstr "Un tipo de despliegue"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "Alternativamente, un nombre de Web Bean"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
-msgstr ""
-"Si un Web Bean no especifica explícitamente un conjunto de tipos de enlace, tiene exactamente un tipo de enlace: el tipo de enlace predeterminado <literal>@Current</"
-"literal>."
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "Un conjunto de tipos de interceptor de enlace"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr "Web Beans define un <emphasis>algoritmo de resolución</emphasis> altamente desarrollado e intuitivo que ayuda al contenedor a decidir qué debe hacer si hay uno más de un Web Beans que cumpla un contrato determinado. Veremos esta información en detalle en <xref linkend=\"injection\"/>."
+#~ msgid "A Web Bean implementation"
+#~ msgstr "Una implementación de Web Bean"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipos de despliegue"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr ""
+#~ "Veamos lo que significan algunos de estos términos, para el desarrollador "
+#~ "de Web Bean."
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr ""
-"Los <emphasis>tipos de despliegue</emphasis> nos permiten clasificar nuestros Web Beans por escenario de despliegue. Un tipo de despliegue es una anotación que representa un escenario de despliegue determinado, por ejemplo, <literal>@Mock</literal>, "
-"<literal>@Staging</literal> o <literal>@AustralianTaxLaw</literal>. Aplicamos la anotación a Web Beans la cual debe ser desplegada en ese escenario. Un tipo de despliegue permite a todo un conjunto de Web Beans ser condicionalmente desplegado, con sólo una línea de configuración."
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "Tipos API, tipos de enlace e inyección de dependencia"
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr ""
-"Muchos Web Beans sólo utilizan el tipo de despliegue predeterminado <literal>@Production</"
-"literal>, en cuyo caso no se necesita especificar ningún tipo de despliegue. Todos los tres Web Bean en nuestro ejemplo tienen un tipo de despliegue <literal>@Production</"
-"literal>."
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "Los Web Beans suelen adquirir referencias a otros Web Beans a través de "
+#~ "la inyección de dependencia. Cualquier atributo inyectado especifica un "
+#~ "\"contrato\" que debe cumplir el Web Bean que va a ser inyectado. El "
+#~ "contrato es:"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "En un entorno de prueba, podríamos desear remplazar el <literal>SentenceTranslator</literal> Web Bean por un \"mock object\":"
+#~ msgid "an API type, together with"
+#~ msgstr "Un tipo API, junto con"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid "a set of binding types."
+#~ msgstr "un conjunto de tipos de enlace."
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "Habilitaremos un tipo de despliegue <literal>@Mock</literal> en nuestro entorno de prueba, para indicar que <literal>MockSentenceTranslator</literal> y cualquier otro Web Bean anotado <literal>@Mock</literal> debería utilizarse."
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "Una API es una clase o interfaz de usuario-definida. (Si el Web Bean es "
+#~ "un bean EJB de sesión, el tipo API es la vista de bean de interfaz "
+#~ "<literal>@Local</literal> o de clase). Un tipo de enlace representa "
+#~ "alguna semántica visible de cliente cumplida por algunas implementaciones "
+#~ "de API y no por otras."
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr ""
-"Hablaremos más acerca de esta característica única y poderosa en <xref linkend="
-"\"deploymenttypes\"/>."
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "Los tipos de enlace están representados por anotaciones de usuario-"
+#~ "definidas hechas por ellas mismas <literal>@BindingType</literal>. Por "
+#~ "ejemplo, el siguiente punto de inyección tiene un tipo de "
+#~ "<literal>PaymentProcessor</literal> de API y un tipo de enlace "
+#~ "<literal>@CreditCard</literal>:"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "Ámbito"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr "El <emphasis>ámbito</emphasis> define el ciclo de vida y visibilidad de instancias del Web Bean. El modelo de contexto de Web Beans es extensible, acomodando los ámbitos arbitrarios. Sin embargo, ciertos ámbitos importantes son incorporados en la especificación y provistos por el administrador de Web Bean. Un ámbito está representado por un tipo de anotación."
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "Si no está explícito ningún tipo de enlace en el punto de inyección, se "
+#~ "asumirá el tipo de enlace predeterminado <literal>@Current</literal>."
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr ""
-"Por ejemplo, cualquier aplicación de red puede tener una <emphasis>sesión en ámbito</"
-"emphasis> de Web Beans:"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "Para cada punto de inyección, el administrador de Web Bean busca un Web "
+#~ "Bean que cumpla el contrato (implemente el API, y tenga todos los tipos "
+#~ "de enlace), e inyecta ese Web Bean."
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "El siguiente Web Bean tiene el tipo de enlace <literal>@CreditCard</"
+#~ "literal> e implementa el tipo API <literal>PaymentProcessor</literal>. "
+#~ "Podría por lo tanto ser inyectado en el punto de inyección de ejemplo:"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr "Una instancia de una sesión en ámbito Web Bean está vinculada a una sesión de usuario y es compartida por todos los solicitantes que ejecutan en el contexto de esa sesión."
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr ""
-"Por defecto, Web Beans pertenece a un ámbito especial llamado el "
-"<emphasis>ámbito seudo dependiente</emphasis>. Web Beans con este ámbito son objetos puros dependientes del objeto en el que son inyectados y su ciclo de vida está vinculado al ciclo de vida del objeto."
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Si un Web Bean no especifica explícitamente un conjunto de tipos de "
+#~ "enlace, tiene exactamente un tipo de enlace: el tipo de enlace "
+#~ "predeterminado <literal>@Current</literal>."
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "Hablaremos más acerca de ámbitos en <xref linkend=\"scopescontexts\"/>."
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Beans define un <emphasis>algoritmo de resolución</emphasis> "
+#~ "altamente desarrollado e intuitivo que ayuda al contenedor a decidir qué "
+#~ "debe hacer si hay uno más de un Web Beans que cumpla un contrato "
+#~ "determinado. Veremos esta información en detalle en <xref linkend="
+#~ "\"injection\"/>."
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Nombres de Web Beans y EL unificado"
+#~ msgid "Deployment types"
+#~ msgstr "Tipos de despliegue"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Un Web Bean puede tener un <emphasis>nombre</emphasis>, que le permita ser utilizado en expresiones EL unificadas. Es fácil especificar el nombre de un Web Bean:"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "Los <emphasis>tipos de despliegue</emphasis> nos permiten clasificar "
+#~ "nuestros Web Beans por escenario de despliegue. Un tipo de despliegue es "
+#~ "una anotación que representa un escenario de despliegue determinado, por "
+#~ "ejemplo, <literal>@Mock</literal>, <literal>@Staging</literal> o "
+#~ "<literal>@AustralianTaxLaw</literal>. Aplicamos la anotación a Web Beans "
+#~ "la cual debe ser desplegada en ese escenario. Un tipo de despliegue "
+#~ "permite a todo un conjunto de Web Beans ser condicionalmente desplegado, "
+#~ "con sólo una línea de configuración."
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "Muchos Web Beans sólo utilizan el tipo de despliegue predeterminado "
+#~ "<literal>@Production</literal>, en cuyo caso no se necesita especificar "
+#~ "ningún tipo de despliegue. Todos los tres Web Bean en nuestro ejemplo "
+#~ "tienen un tipo de despliegue <literal>@Production</literal>."
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "Ahora podemos utilizar el Web Bean en cualquier página JSF o JSP:"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "En un entorno de prueba, podríamos desear remplazar el "
+#~ "<literal>SentenceTranslator</literal> Web Bean por un \"mock object\":"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "Es aún más fácil dejar el nombre predeterminado por el administrador de Web Bean:"
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "Habilitaremos un tipo de despliegue <literal>@Mock</literal> en nuestro "
+#~ "entorno de prueba, para indicar que <literal>MockSentenceTranslator</"
+#~ "literal> y cualquier otro Web Bean anotado <literal>@Mock</literal> "
+#~ "debería utilizarse."
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Hablaremos más acerca de esta característica única y poderosa en <xref "
+#~ "linkend=\"deploymenttypes\"/>."
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "En este caso, el nombre predetermina al <literal>shoppingCart</literal> &#151; el nombre de clase no calificado, con el primer caracter cambiado a minúsculas."
+#~ msgid "Scope"
+#~ msgstr "Ámbito"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "Tipos de interceptor de enlace"
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "El <emphasis>ámbito</emphasis> define el ciclo de vida y visibilidad de "
+#~ "instancias del Web Bean. El modelo de contexto de Web Beans es "
+#~ "extensible, acomodando los ámbitos arbitrarios. Sin embargo, ciertos "
+#~ "ámbitos importantes son incorporados en la especificación y provistos por "
+#~ "el administrador de Web Bean. Un ámbito está representado por un tipo de "
+#~ "anotación."
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr ""
-"Web Beans admite la funcionalidad de interceptor definida por el EJB 3, no sólo por beans EJB, sino también por clases de Java comunes. Además, Web Beans "
-"proporciona un nuevo método para enlazar interceptores de enlace a beans EJB y otras Web "
-"Beans."
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "Por ejemplo, cualquier aplicación de red puede tener una <emphasis>sesión "
+#~ "en ámbito</emphasis> de Web Beans:"
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr "Es posible especificar directamente la clase de interceptor a través de la anotación <literal>@Interceptors</literal>:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "Una instancia de una sesión en ámbito Web Bean está vinculada a una "
+#~ "sesión de usuario y es compartida por todos los solicitantes que ejecutan "
+#~ "en el contexto de esa sesión."
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "Sin embargo, no es más elegante y mejor práctica, llevar indirectamente al interceptor enlazando a través de un <emphasis>tipo de interceptor de enlace</emphasis>:"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "Por defecto, Web Beans pertenece a un ámbito especial llamado el "
+#~ "<emphasis>ámbito seudo dependiente</emphasis>. Web Beans con este ámbito "
+#~ "son objetos puros dependientes del objeto en el que son inyectados y su "
+#~ "ciclo de vida está vinculado al ciclo de vida del objeto."
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr ""
+#~ "Hablaremos más acerca de ámbitos en <xref linkend=\"scopescontexts\"/>."
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr ""
-"Hablaremos acerca de los interceptores y decoradores de Web Beans en <xref linkend="
-"\"interceptors\"/> y <xref linkend=\"decorators\"/>."
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Nombres de Web Beans y EL unificado"
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "¿Qué clase de objetos pueden ser Web Beans?"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Un Web Bean puede tener un <emphasis>nombre</emphasis>, que le permita "
+#~ "ser utilizado en expresiones EL unificadas. Es fácil especificar el "
+#~ "nombre de un Web Bean:"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "Ya hemos visto que JavaBeans, EJB y algunas otras clases de Java pueden ser Web Beans. Pero, exactamente, ¿qué clase de objetos son los Web Beans?"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "Web Beans sencillos"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr "Ahora podemos utilizar el Web Bean en cualquier página JSF o JSP:"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr "La especificación de Web Beans dice que una clase de Java concreta es un Web Bean <emphasis>sencillo</emphasis> si: "
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr "no es un componente de contenedor EE - administrado, como un EJB, un Servlet o una entidad JPA,"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "Es aún más fácil dejar el nombre predeterminado por el administrador de "
+#~ "Web Bean:"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "no es una clase interna no estática,"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "no es un tipo en parámetros, y"
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "En este caso, el nombre predetermina al <literal>shoppingCart</literal> "
+#~ "&#151; el nombre de clase no calificado, con el primer caracter cambiado "
+#~ "a minúsculas."
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr "tiene un constructor sin parámetros o un constructor <literal>@Initializer</literal> anotado."
+#~ msgid "Interceptor binding types"
+#~ msgstr "Tipos de interceptor de enlace"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "Entonces, casi cada JavaBean es un Web Bean sencillo"
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans admite la funcionalidad de interceptor definida por el EJB 3, "
+#~ "no sólo por beans EJB, sino también por clases de Java comunes. Además, "
+#~ "Web Beans proporciona un nuevo método para enlazar interceptores de "
+#~ "enlace a beans EJB y otras Web Beans."
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr "Cada interfaz implementada directamente o indirectamente por un Web Bean sencillo es un tipo API de un Web Bean sencillo. La clase y superclase también son tipos API."
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "Es posible especificar directamente la clase de interceptor a través de "
+#~ "la anotación <literal>@Interceptors</literal>:"
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "Web Beans de empresa"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other "
-"objects &#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr ""
-"La especificación dice que todos los beans de sesión estilo EJB 3- y singleton son "
-"<emphasis>empresariales</emphasis>. Los mensajes de beans no son Web "
-"Beans &#151; porque no están diseñados para ser inyectados en otros objetos &#151; pero pueden aprovechar la mayoría de las funcionalidades de los Web Beans, incluyendo la inyección de dependencia y los interceptores."
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Sin embargo, no es más elegante y mejor práctica, llevar indirectamente "
+#~ "al interceptor enlazando a través de un <emphasis>tipo de interceptor de "
+#~ "enlace</emphasis>:"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr ""
-"No toda interfaz local de un Web Bean empresarial tiene un parámetro de tipo comodín o tipo variable, cada una de sus superinterfaces, es un tipo API del Web Bean de empresa. Si el bean EJB "
-"tiene una vista local de clase de bean, la clase de bean, y cada una de sus superclases, también es un tipo API."
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr "Los beans con estado de sesión deben declarar un método de eliminación sin parámetros o un método de eliminación anotado <literal>@Destructor</literal>. El administrador de Web Bean llama a este método para destruir la instancia de bean con estado de sesión al final del ciclo de vida. Este método se llama el método<emphasis>destructor</emphasis> del Web Bean empresarial."
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "Hablaremos acerca de los interceptores y decoradores de Web Beans en "
+#~ "<xref linkend=\"interceptors\"/> y <xref linkend=\"decorators\"/>."
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "¿Qué clase de objetos pueden ser Web Beans?"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
-msgstr "¿Entonces deberíamos utilizar un Web Bean empresarial en lugar del Web Bean sencillo? Bueno, cada vez que necesitemos los servicios de empresa avanzados ofrecidos por EJB, tales como:"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "Ya hemos visto que JavaBeans, EJB y algunas otras clases de Java pueden "
+#~ "ser Web Beans. Pero, exactamente, ¿qué clase de objetos son los Web Beans?"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "administración de transacciones nivel-método y seguridad,"
+#~ msgid "Simple Web Beans"
+#~ msgstr "Web Beans sencillos"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "gestión de concurrencia,"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "La especificación de Web Beans dice que una clase de Java concreta es un "
+#~ "Web Bean <emphasis>sencillo</emphasis> si: "
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
-msgstr "pasivación de nivel-instancia para beans con estado de sesión y grupo-instancia para beans sin estado de sesión "
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "no es un componente de contenedor EE - administrado, como un EJB, un "
+#~ "Servlet o una entidad JPA,"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "invocación de servicio de red y remoto"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "no es una clase interna no estática,"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "temporizadores y métodos asíncronos,"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "no es un tipo en parámetros, y"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
-msgstr "deberíamos utilizar un Web Bean empresarial. Cuando no necesitemos ninguna de estas cosas, bastará con un Web Bean sencillo."
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "tiene un constructor sin parámetros o un constructor "
+#~ "<literal>@Initializer</literal> anotado."
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
-msgstr "Muchos Web Beans (incluyendo toda sesión o ámbito de aplicación Web Bean) están disponibles para acceso concurrente. Por lo tanto, la administración de concurrencia proporcionada por EJB3.1 es especialmente útil. La mayor parte de la sesión y el ámbito de la aplicación WebBeans debe ser EJB."
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "Entonces, casi cada JavaBean es un Web Bean sencillo"
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr "Los Web Beans que guardan referencias a recursos pesados, o mantienen un montón de estado interno se benefician del ciclo de vida de contenedor avanzado - administrado definido por el modelo EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal>, con el soporte para pasivación y grupo de instancia."
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "Cada interfaz implementada directamente o indirectamente por un Web Bean "
+#~ "sencillo es un tipo API de un Web Bean sencillo. La clase y superclase "
+#~ "también son tipos API."
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr "Por último, suele ser evidente cuando la administración de transacción nivel-método, seguridad nivel-método, temporizadores o métodos remotos o asíncronos se requieren."
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "Web Beans de empresa"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "Suele ser fácil iniciar con un Web Bean sencillo y luego cambiar a un EJB, con sólo añadir una anotación: <literal>@Stateless</literal>, <literal>@Stateful</literal> o <literal>@Singleton</literal>."
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "La especificación dice que todos los beans de sesión estilo EJB 3- y "
+#~ "singleton son <emphasis>empresariales</emphasis>. Los mensajes de beans "
+#~ "no son Web Beans &#151; porque no están diseñados para ser inyectados en "
+#~ "otros objetos &#151; pero pueden aprovechar la mayoría de las "
+#~ "funcionalidades de los Web Beans, incluyendo la inyección de dependencia "
+#~ "y los interceptores."
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "Métodos de productor"
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "No toda interfaz local de un Web Bean empresarial tiene un parámetro de "
+#~ "tipo comodín o tipo variable, cada una de sus superinterfaces, es un tipo "
+#~ "API del Web Bean de empresa. Si el bean EJB tiene una vista local de "
+#~ "clase de bean, la clase de bean, y cada una de sus superclases, también "
+#~ "es un tipo API."
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr ""
-"Un <emphasis>método de productor</emphasis> es un método llamado por el administrador de Web "
-"Bean para obtener una instancia del Web Bean cuando no exista en el actual contexto. Un método de productor permite a la aplicación tomar el control total del proceso de iniciación, en lugar de dejar la instanciación al administrador de Web Bean. Por ejemplo:"
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "Los beans con estado de sesión deben declarar un método de eliminación "
+#~ "sin parámetros o un método de eliminación anotado <literal>@Destructor</"
+#~ "literal>. El administrador de Web Bean llama a este método para destruir "
+#~ "la instancia de bean con estado de sesión al final del ciclo de vida. "
+#~ "Este método se llama el método<emphasis>destructor</emphasis> del Web "
+#~ "Bean empresarial."
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "El resultado de un método de productor es inyectado como cualquier otro Web Bean."
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "¿Entonces deberíamos utilizar un Web Bean empresarial en lugar del Web "
+#~ "Bean sencillo? Bueno, cada vez que necesitemos los servicios de empresa "
+#~ "avanzados ofrecidos por EJB, tales como:"
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "administración de transacciones nivel-método y seguridad,"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
-msgstr "El método de tipo de retorno y todas las interfaces que extiende/implementa directa o indirectamente son tipos API del método del productor. Si el tipo de retorno es una clase, todas las superclases tienen también tipos API. "
+#~ msgid "concurrency management,"
+#~ msgstr "gestión de concurrencia,"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "Algunos métodos de productor retornan objetos que requieren destrucción explícita:"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "pasivación de nivel-instancia para beans con estado de sesión y grupo-"
+#~ "instancia para beans sin estado de sesión "
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "invocación de servicio de red y remoto"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr ""
-"Estos métodos de productor pueden definir <emphasis>métodos desechables</"
-"emphasis>:"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "temporizadores y métodos asíncronos,"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "deberíamos utilizar un Web Bean empresarial. Cuando no necesitemos "
+#~ "ninguna de estas cosas, bastará con un Web Bean sencillo."
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
-msgstr "Este método desechable es llamado automáticamente por el administrador de Web Bean al final de la petición."
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "Muchos Web Beans (incluyendo toda sesión o ámbito de aplicación Web Bean) "
+#~ "están disponibles para acceso concurrente. Por lo tanto, la "
+#~ "administración de concurrencia proporcionada por EJB3.1 es especialmente "
+#~ "útil. La mayor parte de la sesión y el ámbito de la aplicación WebBeans "
+#~ "debe ser EJB."
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
-msgstr ""
-"Hablaremos mucho más acerca de métodos del productor en <xref linkend="
-"\"producermethods\"/>."
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "Los Web Beans que guardan referencias a recursos pesados, o mantienen un "
+#~ "montón de estado interno se benefician del ciclo de vida de contenedor "
+#~ "avanzado - administrado definido por el modelo EJB <literal>@Stateless</"
+#~ "literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal>, con "
+#~ "el soporte para pasivación y grupo de instancia."
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "endpoints de JMS"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "Por último, suele ser evidente cuando la administración de transacción "
+#~ "nivel-método, seguridad nivel-método, temporizadores o métodos remotos o "
+#~ "asíncronos se requieren."
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
-msgstr "Por último, una cola o tópico JMS puede ser un Web Bean. Web Beans libera al desarrollador del tedio de manejar los ciclos de vida de todos los objetos JMS requeridos para enviar mensajes a colas y tópicos. Discutiremos sobre endpoints de JMS en <xref linkend=\"jms\"/>."
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "Suele ser fácil iniciar con un Web Bean sencillo y luego cambiar a un "
+#~ "EJB, con sólo añadir una anotación: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> o <literal>@Singleton</literal>."
 
+#~ msgid "Producer methods"
+#~ msgstr "Métodos de productor"
+
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "Un <emphasis>método de productor</emphasis> es un método llamado por el "
+#~ "administrador de Web Bean para obtener una instancia del Web Bean cuando "
+#~ "no exista en el actual contexto. Un método de productor permite a la "
+#~ "aplicación tomar el control total del proceso de iniciación, en lugar de "
+#~ "dejar la instanciación al administrador de Web Bean. Por ejemplo:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "El resultado de un método de productor es inyectado como cualquier otro "
+#~ "Web Bean."
+
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
+
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "El método de tipo de retorno y todas las interfaces que extiende/"
+#~ "implementa directa o indirectamente son tipos API del método del "
+#~ "productor. Si el tipo de retorno es una clase, todas las superclases "
+#~ "tienen también tipos API. "
+
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr ""
+#~ "Algunos métodos de productor retornan objetos que requieren destrucción "
+#~ "explícita:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Estos métodos de productor pueden definir <emphasis>métodos desechables</"
+#~ "emphasis>:"
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "Este método desechable es llamado automáticamente por el administrador de "
+#~ "Web Bean al final de la petición."
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "Hablaremos mucho más acerca de métodos del productor en <xref linkend="
+#~ "\"producermethods\"/>."
+
+#~ msgid "JMS endpoints"
+#~ msgstr "endpoints de JMS"
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "Por último, una cola o tópico JMS puede ser un Web Bean. Web Beans libera "
+#~ "al desarrollador del tedio de manejar los ciclos de vida de todos los "
+#~ "objetos JMS requeridos para enviar mensajes a colas y tópicos. "
+#~ "Discutiremos sobre endpoints de JMS en <xref linkend=\"jms\"/>."

Modified: doc/trunk/reference/es-ES/master.po
===================================================================
--- doc/trunk/reference/es-ES/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:28+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,58 +17,80 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
 msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "Uso de objetos contextuales"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "Desarrollo de código de acoplamiento flexible"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "Aprovechar al máximo un tecleado fuerte"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans en el ecosistema de Java EE"
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Using contextual objects"
+#~ msgstr "Uso de objetos contextuales"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "Desarrollo de código de acoplamiento flexible"

Modified: doc/trunk/reference/es-ES/next.po
===================================================================
--- doc/trunk/reference/es-ES/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: next\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 09:48+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -26,30 +26,127 @@
 #: next.xml:6
 #, no-c-format
 msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
-msgstr "Debido a que Web Beans es tan reciente, aún no hay mucha información en línea disponible."
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"La implementación de Referencia (IR) de Web Beans se desarrolla en "
+"<literal>http://seamframework.org/WebBeans</literal>. El equipo de "
+"desarrollo de la IR y la especificación de Web Beans lideran el Blog en "
+"<literal>http://in.relation.to</literal>. Este artículo se base en una serie "
+"de entradas de Blog publicadas allí."
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
 msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "Claro está que la especificación de Web Beans es la mejor fuente de información sobre Web Beans. La especificación tiene cerca de 100 páginas, apenas dos veces el tamaño de este artículo y casi tan legible. No obstante, cubre muchos detalles que hemos omitido. La especificación está disponible en <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
 msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
 msgstr ""
-"La implementación de Referencia (IR) de Web Beans se desarrolla en <literal>http://"
-"seamframework.org/WebBeans</literal>. El equipo de desarrollo de la IR y la especificación de Web Beans lideran el Blog en <literal>http://in.relation.to</literal>. Este artículo se base en una serie de entradas de Blog publicadas allí."
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Debido a que Web Beans es tan reciente, aún no hay mucha información en "
+#~ "línea disponible."
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "Claro está que la especificación de Web Beans es la mejor fuente de "
+#~ "información sobre Web Beans. La especificación tiene cerca de 100 "
+#~ "páginas, apenas dos veces el tamaño de este artículo y casi tan legible. "
+#~ "No obstante, cubre muchos detalles que hemos omitido. La especificación "
+#~ "está disponible en <literal>http://jcp.org/en/jsr/detail?id=299</literal>."

Modified: doc/trunk/reference/es-ES/part1.po
===================================================================
--- doc/trunk/reference/es-ES/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part1\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:38+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,220 +17,374 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
+#: part1.xml:14
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
-msgstr "La especificación de Web Beans (JSR-299) define una serie de servicios para el entorno de Java EE que facilitan el desarrollo de aplicaciones. Web Beans entrecruza un ciclo de vida mejorado y un modelo de interacción en tipos de componentes existentes de Java incluyendo los componentes JavaBeans y Enterprise Java Beans. Como complemento para el modelo tradicional de programación Java EE, el servicio de Web Beans proporciona servicios:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"La especificación de Web Beans (JSR-299) define una serie de servicios para "
+"el entorno de Java EE que facilitan el desarrollo de aplicaciones. Web Beans "
+"entrecruza un ciclo de vida mejorado y un modelo de interacción en tipos de "
+"componentes existentes de Java incluyendo los componentes JavaBeans y "
+"Enterprise Java Beans. Como complemento para el modelo tradicional de "
+"programación Java EE, el servicio de Web Beans proporciona servicios:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
+#: part1.xml:23
+#, fuzzy, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
-msgstr "un ciclo de vida mejorada para componentes con estado, vinculados a los <emphasis>contextos</emphasis> bien definidos,"
+msgstr ""
+"un ciclo de vida mejorada para componentes con estado, vinculados a los "
+"<emphasis>contextos</emphasis> bien definidos,"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr "un método typesafe para <emphasis>inyección de dependencia</emphasis>,"
 
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
+msgstr ""
+"interacción a través de un servicio de <emphasis>notificación de eventos</"
+"emphasis>, y"
+
+#. Tag: para
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"un mejor método para vincular <emphasis>interceptores</emphasis> a "
+"componentes, junto con una nueva clase de interceptor, llamado un "
+"<emphasis>decorador</emphasis>, el cual es más apropiado para resolver "
+"problemas de negocios."
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
-msgstr "interacción a través de un servicio de <emphasis>notificación de eventos</emphasis>, y"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:51
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
-msgstr "un mejor método para vincular <emphasis>interceptores</emphasis> a componentes, junto con una nueva clase de interceptor, llamado un <emphasis>decorador</emphasis>, el cual es más apropiado para resolver problemas de negocios."
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:61
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
-msgstr "Inyección de dependencia, junto con la administración de ciclo de vida contextual, ahorra al usuario de un API desconocido el tener que hacer y contestar las siguientes preguntas:"
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:68
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "¿Cuál es el ciclo de vida de este objeto? "
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:71
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "¿Cuántos clientes simultáneos puede tener?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:75
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "¿Es multihilos?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:83
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "¿En dónde puedo obtener uno?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:86
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "¿Necesito destruirlo explícitamente?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:89
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "¿Dónde debo guardar mi referencia a éste cuando no lo estoy usando directamente?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:92
 #, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
-msgstr "¿Cómo puedo agregar una capa de direccionamiento indirecto, para que la implementación de este objeto pueda variar en el momento de despliegue?"
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"Inyección de dependencia, junto con la administración de ciclo de vida "
+"contextual, ahorra al usuario de un API desconocido el tener que hacer y "
+"contestar las siguientes preguntas:"
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "¿Cuál es el ciclo de vida de este objeto? "
+
+#. Tag: para
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "¿Cuántos clientes simultáneos puede tener?"
+
+#. Tag: para
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "¿Es multihilos?"
+
+#. Tag: para
+#: part1.xml:114
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "¿Necesito destruirlo explícitamente?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr ""
+"¿Dónde debo guardar mi referencia a éste cuando no lo estoy usando "
+"directamente?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"¿Cómo puedo agregar una capa de direccionamiento indirecto, para que la "
+"implementación de este objeto pueda variar en el momento de despliegue?"
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "¿Cómo hago para compartir este objeto con otros objetos?"
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
-msgstr "Un Web Bean especifica únicamente el tipo y la semántica de otros Web Beans de los que depende. No se necesita conocer el ciclo de vida real, la implementación concreta, el modelo de hilos u otros clientes de cualquier Web Bean a la que dependa. Mejor aún, la implementación concreta, el ciclo de vida y el modelo de hilos de un Web Bean al que éste depende pueden variar según el escenario de despliegue, sin afectar a ningún cliente."
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
+#: part1.xml:142
+#, fuzzy, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
 msgstr ""
-"Los eventos, los interceptores y los decoradores mejoran el <emphasis>acoplamiento-flexible</"
-"emphasis>inherente en este modelo:"
+"Un Web Bean especifica únicamente el tipo y la semántica de otros Web Beans "
+"de los que depende. No se necesita conocer el ciclo de vida real, la "
+"implementación concreta, el modelo de hilos u otros clientes de cualquier "
+"Web Bean a la que dependa. Mejor aún, la implementación concreta, el ciclo "
+"de vida y el modelo de hilos de un Web Bean al que éste depende pueden "
+"variar según el escenario de despliegue, sin afectar a ningún cliente."
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"Los eventos, los interceptores y los decoradores mejoran el "
+"<emphasis>acoplamiento-flexible</emphasis>inherente en este modelo:"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
 msgid ""
 "<emphasis>event notifications</emphasis> decouple event producers from event "
 "consumers,"
-msgstr "La <emphasis>notificación de eventos</emphasis> separa a los productores de eventos de los consumidores,"
+msgstr ""
+"La <emphasis>notificación de eventos</emphasis> separa a los productores de "
+"eventos de los consumidores,"
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
 msgid ""
 "<emphasis>interceptors</emphasis> decouple technical concerns from business "
 "logic, and"
-msgstr "los <emphasis>interceptores</emphasis> separan las cuestiones técnicas de la lógica de negocios, y"
+msgstr ""
+"los <emphasis>interceptores</emphasis> separan las cuestiones técnicas de la "
+"lógica de negocios, y"
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
 msgid ""
 "<emphasis>decorators</emphasis> allow business concerns to be "
 "compartmentalized."
-msgstr "los <emphasis>decoradores</emphasis> permiten la compartimentación de las cuestiones de negocios."
+msgstr ""
+"los <emphasis>decoradores</emphasis> permiten la compartimentación de las "
+"cuestiones de negocios."
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
+#: part1.xml:168
+#, fuzzy, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
 msgstr ""
-"Más importante, Web Beans ofrece todos los servicios en forma"
-"<emphasis>typesafe</emphasis>. Web Beans nunca utiliza identificadores de cadena para determinar cómo los se ajustan entre sí objetos de colaboración. Además, aunque XML sigue siendo una opción, muy rara vez se utiliza. En su lugar, Web Beans usa la información de teclado disponible en el modelo de objeto Java junto con un nuevo patrón, llamado <emphasis>anotaciones de enlace</emphasis>, para conectar a Web Beans, las dependencias, los interceptores y decoradores y sus consumidores de evento."
+"Más importante, Web Beans ofrece todos los servicios en "
+"forma<emphasis>typesafe</emphasis>. Web Beans nunca utiliza identificadores "
+"de cadena para determinar cómo los se ajustan entre sí objetos de "
+"colaboración. Además, aunque XML sigue siendo una opción, muy rara vez se "
+"utiliza. En su lugar, Web Beans usa la información de teclado disponible en "
+"el modelo de objeto Java junto con un nuevo patrón, llamado "
+"<emphasis>anotaciones de enlace</emphasis>, para conectar a Web Beans, las "
+"dependencias, los interceptores y decoradores y sus consumidores de evento."
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
-msgstr "Los servicios Web Beans son generales y se aplican a los siguientes tipos de componentes existentes en el entorno de Java EE."
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "todos los JavaBeans,"
-
-#. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "todos los EJB, y"
-
-#. Tag: para
-#: part1.xml:111
-#, no-c-format
-msgid "all Servlets."
-msgstr "todos los Servlets."
-
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
+#: part1.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans incluso provee los puntos de integración necesarios para que otras clases de componentes definidos por especificaciones de Java EE futuras, hagan uso de los servicios de Web Beans e interactúen con otra clase de Web Bean."
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans incluso provee los puntos de integración necesarios para que otras "
+"clases de componentes definidos por especificaciones de Java EE futuras, "
+"hagan uso de los servicios de Web Beans e interactúen con otra clase de Web "
+"Bean."
 
 #. Tag: para
-#: part1.xml:120
-#, no-c-format
+#: part1.xml:189
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
-msgstr "Una gran cantidad de marcos existentes de Java, incluyendo Seam, Guice y Spring, influyeron en Web Beans. No obstante, Web Beans tiene su propio carácter distintivo: más typesafe que Seam, más con estado y menos centrada en XML que Spring, red y aplicación empresarial más capaz que Guice."
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Una gran cantidad de marcos existentes de Java, incluyendo Seam, Guice y "
+"Spring, influyeron en Web Beans. No obstante, Web Beans tiene su propio "
+"carácter distintivo: más typesafe que Seam, más con estado y menos centrada "
+"en XML que Spring, red y aplicación empresarial más capaz que Guice."
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
-msgstr "Lo más importante es que Web Beans es un JCP estándar que se integra sin problemas con Java EE y con cualquier entorno SE dónde EJB Lite incrustado esté disponible."
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "¿En dónde puedo obtener uno?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Los servicios Web Beans son generales y se aplican a los siguientes tipos "
+#~ "de componentes existentes en el entorno de Java EE."
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "todos los JavaBeans,"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "todos los EJB, y"
+
+#~ msgid "all Servlets."
+#~ msgstr "todos los Servlets."
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "Lo más importante es que Web Beans es un JCP estándar que se integra sin "
+#~ "problemas con Java EE y con cualquier entorno SE dónde EJB Lite "
+#~ "incrustado esté disponible."

Modified: doc/trunk/reference/es-ES/part2.po
===================================================================
--- doc/trunk/reference/es-ES/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part2\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-14 18:41+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:41+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -20,114 +20,113 @@
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
 msgstr ""
-"El primer tema importante de Web Beans es el <emphasis>acoplamiento "
-"flexible</emphasis>. Ya hemos visto tres medios para lograr dicho "
-"acoplamiento:"
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
 msgstr ""
-"Los <emphasis>tipos de despliegue</emphasis> habilitan el polimorfismo del "
-"tiempo de despliegue,"
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr ""
-"los <emphasis>métodos de productor</emphasis> habilitan el polimorfismo del "
-"tiempo de ejecución, y"
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
 msgstr ""
-"la <emphasis>administración de ciclo de vida contextual</emphasis> separa "
-"los ciclos de vida de WebBean."
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr ""
-"Estas técnicas sirven para habilitar el acoplamiento flexible de cliente y "
-"servidor. El cliente ya no está estrechamente ligado a una implementación de "
-"un API, ni tiene que administrar el ciclo de vida del objeto del servidor. "
-"Este método permite <emphasis>interactuar a los objetos con estado como si "
-"fueran servicios</emphasis>."
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "El primer tema importante de Web Beans es el <emphasis>acoplamiento "
+#~ "flexible</emphasis>. Ya hemos visto tres medios para lograr dicho "
+#~ "acoplamiento:"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr ""
-"El acoplamiento flexible hace más <emphasis>dinámico</emphasis> a un "
-"sistema. El sistema puede responder al cambio de una manera bien definida. "
-"En el pasado, los marcos que trataban de ofrecer los servicios listados "
-"arriba invariablemente lo hacían sacrificando la seguridad. Web Beans es la "
-"primera tecnología que logra este nivel de acoplamiento flexible en una forma "
-"typesafe."
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "Los <emphasis>tipos de despliegue</emphasis> habilitan el polimorfismo "
+#~ "del tiempo de despliegue,"
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr ""
-"Web Beans ofrece tres servicios adicionales importantes que amplían el "
-"objetivo del acoplamiento flexible:"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "los <emphasis>métodos de productor</emphasis> habilitan el polimorfismo "
+#~ "del tiempo de ejecución, y"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr ""
-"los <emphasis>interceptores</emphasis> separan las cuestiones técnicas de la "
-"lógica de negocios,"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "la <emphasis>administración de ciclo de vida contextual</emphasis> separa "
+#~ "los ciclos de vida de WebBean."
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr ""
-"los <emphasis>decoradores</emphasis> pueden ser utilizados para separar "
-"algunas cuestiones de negocios, y"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "Estas técnicas sirven para habilitar el acoplamiento flexible de cliente "
+#~ "y servidor. El cliente ya no está estrechamente ligado a una "
+#~ "implementación de un API, ni tiene que administrar el ciclo de vida del "
+#~ "objeto del servidor. Este método permite <emphasis>interactuar a los "
+#~ "objetos con estado como si fueran servicios</emphasis>."
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr ""
-"las <emphasis>notificaciones de eventos</emphasis> separan a los productores "
-"de eventos de los consumidores de eventos."
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "El acoplamiento flexible hace más <emphasis>dinámico</emphasis> a un "
+#~ "sistema. El sistema puede responder al cambio de una manera bien "
+#~ "definida. En el pasado, los marcos que trataban de ofrecer los servicios "
+#~ "listados arriba invariablemente lo hacían sacrificando la seguridad. Web "
+#~ "Beans es la primera tecnología que logra este nivel de acoplamiento "
+#~ "flexible en una forma typesafe."
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "En primer lugar, exploremos los interceptores."
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beans ofrece tres servicios adicionales importantes que amplían el "
+#~ "objetivo del acoplamiento flexible:"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "los <emphasis>interceptores</emphasis> separan las cuestiones técnicas de "
+#~ "la lógica de negocios,"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "los <emphasis>decoradores</emphasis> pueden ser utilizados para separar "
+#~ "algunas cuestiones de negocios, y"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "las <emphasis>notificaciones de eventos</emphasis> separan a los "
+#~ "productores de eventos de los consumidores de eventos."
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "En primer lugar, exploremos los interceptores."

Modified: doc/trunk/reference/es-ES/part3.po
===================================================================
--- doc/trunk/reference/es-ES/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part3\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:46+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -19,102 +19,251 @@
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "El segundo tema importante de Web Beans es el <emphasis>tecleado fuerte</emphasis>. La información acerca de dependencias, interceptores y decoradores de Web Bean y la información sobre consumidores de eventos para un productor de eventos, está contenida en construcciones de Java typesafe que pueden ser validadas por el compilador."
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "No necesita ver los identificadores de cadena en código de Web Beans, no porque el marco los esté escondiendo del uso inteligente de las reglas &#151; llamadas\"configuración por convención\" &#151; sino porque simplemente ¡no hay cadenas con qué comenzar!"
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "El beneficio evidente de este método es que <emphasis>cualquier</emphasis> IDE puede proporcionar autofinalización, validación y refactorización sin necesitar herramientas especiales. Pero hay un segundo beneficio menos evidente. Resulta que cuando empieza a pensar en identificación de objetos, eventos o interceptores a través de anotaciones en lugar de nombres, tendrá la oportunidad de aumentar el nivel semántico de su código."
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
-msgstr "Web Beans le anima a desarrollar anotaciones que modelen conceptos, por ejemplo, "
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:27
 #, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"El segundo tema importante de Web Beans es el <emphasis>tecleado fuerte</"
+"emphasis>. La información acerca de dependencias, interceptores y "
+"decoradores de Web Bean y la información sobre consumidores de eventos para "
+"un productor de eventos, está contenida en construcciones de Java typesafe "
+"que pueden ser validadas por el compilador."
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"No necesita ver los identificadores de cadena en código de Web Beans, no "
+"porque el marco los esté escondiendo del uso inteligente de las reglas "
+"&#151; llamadas\"configuración por convención\" &#151; sino porque "
+"simplemente ¡no hay cadenas con qué comenzar!"
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"El beneficio evidente de este método es que <emphasis>cualquier</emphasis> "
+"IDE puede proporcionar autofinalización, validación y refactorización sin "
+"necesitar herramientas especiales. Pero hay un segundo beneficio menos "
+"evidente. Resulta que cuando empieza a pensar en identificación de objetos, "
+"eventos o interceptores a través de anotaciones en lugar de nombres, tendrá "
+"la oportunidad de aumentar el nivel semántico de su código."
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Web Beans le anima a desarrollar anotaciones que modelen conceptos, por "
+"ejemplo, "
+
+#. Tag: para
+#: part3.xml:87
+#, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> o"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "en lugar de utilizar nombres compuestos como"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> o"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "Las anotaciones son reutilizables. Ayudan a describir cualidades comunes de partes dispares del sistema. Nos ayudan a categorizar y entender nuestro código. Nos ayudan a tratar las cuestiones comunes en una forma común. Hacer nuestro código más leíble y entendible."
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"Las anotaciones son reutilizables. Ayudan a describir cualidades comunes de "
+"partes dispares del sistema. Nos ayudan a categorizar y entender nuestro "
+"código. Nos ayudan a tratar las cuestiones comunes en una forma común. Hacer "
+"nuestro código más leíble y entendible."
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Los <emphasis>estereotipos</emphasis> de Web Beans van más allá de este paso. Un estereotipo modela un <emphasis>rol</emphasis> común en su arquitectura de aplicación. El estereotipo encapsula varias propiedades del rol, incluyendo ámbito, enlaces de interceptor, tipo de despliegue, etc, en un sólo paquete reutilizable."
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Los <emphasis>estereotipos</emphasis> de Web Beans van más allá de este "
+"paso. Un estereotipo modela un <emphasis>rol</emphasis> común en su "
+"arquitectura de aplicación. El estereotipo encapsula varias propiedades del "
+"rol, incluyendo ámbito, enlaces de interceptor, tipo de despliegue, etc, en "
+"un sólo paquete reutilizable."
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "Incluso metadatos XML de Web Beans es tecleado ¡fuertemente! No hay compilador para XML, por eso Web Beans aprovecha los esquemas XML para validar los tipos de Java y los atributos que aparecen en XML. Este enfoque hace que el archivo XML sea más leíble, así como las anotaciones lo hicieron con nuestro código de Java."
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"Ahora estamos listos para conocer otras funciones más avanzadas de Web "
+"Beans. Tenga en cuenta que estas funciones hacen a nuestro código más fácil "
+"de validar y más entendible. La mayoría del tiempo no se <emphasis>necesita</"
+"emphasis> realmente utilizarlas, pero si se utilizan de modo inteligente, se "
+"llegará a apreciar su poder."
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "Ahora estamos listos para conocer otras funciones más avanzadas de Web Beans. Tenga en cuenta que estas funciones hacen a nuestro código más fácil de validar y más entendible. La mayoría del tiempo no se <emphasis>necesita</emphasis> realmente utilizarlas, pero si se utilizan de modo inteligente, se llegará a apreciar su poder."
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Incluso metadatos XML de Web Beans es tecleado ¡fuertemente! No hay "
+#~ "compilador para XML, por eso Web Beans aprovecha los esquemas XML para "
+#~ "validar los tipos de Java y los atributos que aparecen en XML. Este "
+#~ "enfoque hace que el archivo XML sea más leíble, así como las anotaciones "
+#~ "lo hicieron con nuestro código de Java."

Modified: doc/trunk/reference/es-ES/part4.po
===================================================================
--- doc/trunk/reference/es-ES/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:49+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -20,39 +20,70 @@
 #: part4.xml:5
 #, no-c-format
 msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
 msgstr ""
-"El tercer tema de Web Beans es la <emphasis>integración</emphasis>. Web Beans fue diseñado para trabajar junto con otras tecnologías, ayudando al desarrollador de la aplicación a encajar en otras tecnologías."
-"Web Beans es una tecnología abierta. Forma parte de un ecosistema de Java EE y es por si mismo una base para un nuevo ecosistema de extensiones portátiles e integración con marcos y tecnologías existentes."
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
-msgstr "Ya hemos visto cómo Web Beans ayuda a integrar EJB y JSF, permitiendo a los EJB enlazarse directamente a páginas JSF. Esto es apenas el comienzo. Web Beans ofrece el mismo potencial a otras tecnologías, tales como motores de administración de proceso de negocios, otros marcos de red y modelos de componentes de terceras partes. La plataforma de Java EE nunca podrá estandarizar todas las tecnologías interesantes utilizadas en el mundo del desarrollo de la aplicación Java, pero Web Beans facilita el uso de las tecnologías que aún no hacen parte completamente de la plataforma dentro del entorno Java EE."
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"Ya hemos visto cómo Web Beans ayuda a integrar EJB y JSF, permitiendo a los "
+"EJB enlazarse directamente a páginas JSF. Esto es apenas el comienzo. Web "
+"Beans ofrece el mismo potencial a otras tecnologías, tales como motores de "
+"administración de proceso de negocios, otros marcos de red y modelos de "
+"componentes de terceras partes. La plataforma de Java EE nunca podrá "
+"estandarizar todas las tecnologías interesantes utilizadas en el mundo del "
+"desarrollo de la aplicación Java, pero Web Beans facilita el uso de las "
+"tecnologías que aún no hacen parte completamente de la plataforma dentro del "
+"entorno Java EE."
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
+#: part4.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
-msgstr "Ya estamos a punto de ver cómo aprovechar completamente la plataforma de Java EE en una aplicación que utiliza Web Beans. También veremos brevemente una serie de SPI provistas para soportar extensiones a Web Beans. Puede que nunca las tenga que utilizar directamente, pero es conveniente saber que están allí si se necesitan. Lo más importante, es que podrá aprovecharlas indirectamente cada vez que utilice una extensión de terceras partes."
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Ya estamos a punto de ver cómo aprovechar completamente la plataforma de "
+"Java EE en una aplicación que utiliza Web Beans. También veremos brevemente "
+"una serie de SPI provistas para soportar extensiones a Web Beans. Puede que "
+"nunca las tenga que utilizar directamente, pero es conveniente saber que "
+"están allí si se necesitan. Lo más importante, es que podrá aprovecharlas "
+"indirectamente cada vez que utilice una extensión de terceras partes."
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "El tercer tema de Web Beans es la <emphasis>integración</emphasis>. Web "
+#~ "Beans fue diseñado para trabajar junto con otras tecnologías, ayudando al "
+#~ "desarrollador de la aplicación a encajar en otras tecnologías.Web Beans "
+#~ "es una tecnología abierta. Forma parte de un ecosistema de Java EE y es "
+#~ "por si mismo una base para un nuevo ecosistema de extensiones portátiles "
+#~ "e integración con marcos y tecnologías existentes."

Modified: doc/trunk/reference/es-ES/part5.po
===================================================================
--- doc/trunk/reference/es-ES/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/es-ES/producermethods.po
===================================================================
--- doc/trunk/reference/es-ES/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: producermethods\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 17:00+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -24,13 +24,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "Los métodos de productor nos permiten sobrepasar algunas limitaciones que se "
 "presentan cuando el administrador de Web Bean, en lugar de la aplicación, es "
@@ -39,104 +38,96 @@
 "(Veremos un segundo método en <xref linkend=\"xml\"/>.)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "Según las especificaciones:"
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, fuzzy, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "Ámbito de un método de productor"
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -152,15 +143,15 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, fuzzy, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
@@ -168,29 +159,29 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "Ámbito de un método de productor"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "El ámbito del método de productor está predeterminado a <literal>@Dependent</"
@@ -200,7 +191,7 @@
 "del objeto <literal>PaymentStrategy</literal> para cada sesión de usuario."
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -210,12 +201,12 @@
 "<literal>@SessionScoped</literal> a este método."
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -224,7 +215,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -236,13 +227,13 @@
 "sesión. El método de productor no será llamado otra vez en la misma sesión."
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "Inyección dentro de métodos de productor"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -258,29 +249,29 @@
 "dependencia y no tienen interceptores."
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "Si esto no es lo que deseamos podemos utilizar la inyección de dependencia "
 "dentro del método del productor para obtener las instancias de Web Bean:"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -296,17 +287,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "Espere, ¿qué sucede si <literal>CreditCardPaymentStrategy</literal> es una "
 "petición en ámbito de Web Bean? Entonces el método del productor tiene el "
@@ -319,13 +310,13 @@
 "retornar instancias de Web Bean desde métodos de productor!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "Hay por lo menos tres formas de corregir este error. Podemos cambiar el "
@@ -335,43 +326,43 @@
 "<literal>@RequestScoped</literal>."
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "Pero una solución más común es utilizar la anotación especial de enlace "
 "<literal>@New</literal>."
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "Uso de <literal>@New</literal> con métodos de productor"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "Considere el siguiente método de productor:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -389,7 +380,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -405,6 +396,60 @@
 "contexto de sesión. El objeto dependiente no será destruido hasta que el "
 "objeto <literal>Preferencias</literal> sea destruido, al final de la sesión."
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "Métodos de productor"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/es-ES/resources.po
===================================================================
--- doc/trunk/reference/es-ES/resources.po	                        (rev 0)
+++ doc/trunk/reference/es-ES/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language es-ES translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/es-ES/ri-spi.po
===================================================================
--- doc/trunk/reference/es-ES/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri-spi\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 10:15+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -19,38 +19,58 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, fuzzy, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr "Integración de la IR de Web Beans en otros entornos"
 
 #. Tag: para
 #: ri-spi.xml:6
+#, no-c-format
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:12
 #, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "Carga de recurso"
+
+#. Tag: para
+#: ri-spi.xml:13
+#, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
-"Actualmente la IR de Web Beans sólo se ejecuta en JBoss AS 5; integrando la "
-"IR dentro de otros entornos EE (por ejemplo otro servidor de aplicación como "
-"Glassfish), dentro de un contenedor de servlet (como Tomcat), o con una "
-"implementación incrustada EJB3.1 es bastante fácil. En este apéndice veremos "
-"brevemente los pasos requeridos."
 
+#. Tag: para
+#: ri-spi.xml:21
+#, no-c-format
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:27
 #, fuzzy, no-c-format
-msgid "The Web Beans SPI"
+msgid "The Weld SPI"
 msgstr "SPI RI de Web Beans"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:29
 #, fuzzy, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
 msgstr ""
 "El SPI de Web Beans está ubicado en el módulo <literal>webbeans-ri-spi</"
 "literal>, empaquetado como <literal>webbeans-ri-spi.jar</literal>. Algunos "
@@ -58,7 +78,7 @@
 "requerirán otros."
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:35
 #, no-c-format
 msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
@@ -68,243 +88,205 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean Discovery"
+msgid "Deployment structure"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:58
+#, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
-"<![CDATA[public interface WebBeanDiscovery {\n"
-"   /**\n"
-"    * Gets list of all classes in classpath archives with web-beans.xml "
-"files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all web-beans.xml files in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the web-beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();\n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, fuzzy, no-c-format
+#: ri-spi.xml:67
+#, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
-"El descubirmiento de clases de Web Bean y de archivos <literal>web-bean.xml</"
-"literal> es autoexplicativo (el algoritmo está descrito en la sección 11.1 "
-"de la especificación JSR299 y no se repite aquí)."
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
-#, fuzzy, no-c-format
+#: ri-spi.xml:100
+#, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
-"La IR de Web Beans también delega el descubrimiento de bean EJB3 al "
-"contenedor para no tener que examinar las anotaciones EJB3 o analizar "
-"<literal>ejb-jar.xml</literal>. Para cada EJB en la aplicación se debe "
-"descubrir un EJBDescriptor:"
 
-#. Tag: programlisting
-#: ri-spi.xml:62
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T> {\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();\n"
-"   \n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:124
+#, no-c-format
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:132
+#, no-c-format
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:155
+#, no-c-format
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
 "El <literal>EjbDescriptor</literal> es bastante auto explicativo y debería "
 "devolver los metadatos pertinentes como se define en la especificación de "
 "EJB. Además de estas dos interfaces, está "
@@ -312,142 +294,148 @@
 "interfaz de negocios local (encapsulando la clase de interfaz y el nombre de "
 "jndi a la búsqueda de una instancia del EJB)."
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:171
 #, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
+#. Tag: para
+#: ri-spi.xml:182
 #, no-c-format
-msgid "JPA services"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:189
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:195
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:201
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: title
+#: ri-spi.xml:210
 #, no-c-format
+msgid "EJB services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:212
+#, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:234
 #, no-c-format
-msgid "Transaction Services"
+msgid "JPA services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:253
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:258
 #, no-c-format
 msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
@@ -457,7 +445,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -467,349 +455,302 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
-#, no-c-format
-msgid "JMS services"
-msgstr ""
+#: ri-spi.xml:272
+#, fuzzy, no-c-format
+msgid "Resource Services"
+msgstr "Carga de recurso"
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:274
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:283
 #, fuzzy, no-c-format
-msgid "Resource Services"
+msgid "Injection Services"
 msgstr "Carga de recurso"
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:285
 #, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:291
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:298
 #, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:207
-#, no-c-format
-msgid "The bean store"
-msgstr ""
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "Carga de recurso"
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:309
 #, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:317
 #, no-c-format
-msgid "The application context"
+msgid "Bean Validation Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:319
 #, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Bootstrap and shutdown"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:329
 #, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:337
 #, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:343
 #, no-c-format
 msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:260
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
+msgid "The bean store"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:364
 #, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:282
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid "The application context"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:374
 #, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:383
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Initialization and shutdown"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:384
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:391
 #, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:398
 #, no-c-format
-msgid "Resource loading"
-msgstr "Carga de recurso"
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
-#, fuzzy, no-c-format
+#: ri-spi.xml:405
+#, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
-"times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
-"La IR de Web Beans necesita cargar clases y recursos desde el classpath en "
-"varios momentos. Por defecto, se cargan desde el mismo classloader utilizado "
-"para cargar la IR, sin embargo, puede no ser lo apropiado para algunos "
-"entornos. Si este es el caso, implemente <literal>org.jboss.webbeans.spi."
-"ResourceLoader</literal>:"
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:410
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
-#. Tag: title
-#: ri-spi.xml:331
-#, fuzzy, no-c-format
-msgid "Servlet injection"
-msgstr "Oyente de Servlet"
-
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:414
 #, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:423
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:431
 #, no-c-format
+msgid "Resource loading"
+msgstr "Carga de recurso"
+
+#. Tag: para
+#: ri-spi.xml:433
+#, fuzzy, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+"La IR de Web Beans necesita cargar clases y recursos desde el classpath en "
+"varios momentos. Por defecto, se cargan desde el mismo classloader utilizado "
+"para cargar la IR, sin embargo, puede no ser lo apropiado para algunos "
+"entornos. Si este es el caso, implemente <literal>org.jboss.webbeans.spi."
+"ResourceLoader</literal>:"
+
+#. Tag: title
+#: ri-spi.xml:445
+#, no-c-format
 msgid "The contract with the container"
 msgstr "El contrato con el contenedor"
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 "Hay una serie de requisitos que la IR de Web Beans ubica en el contenedor "
 "para el funcionamiento correcto que está fuera de la implementación de las "
 "API."
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Aislamiento de classloader"
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 "Si se está integrando la IR de Web Beans dentro de un entorno que admite "
 "despliegue de varias aplicaciones, debe habilitar el aislamiento de "
@@ -817,40 +758,46 @@
 "través de la configuración del usuario."
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
-#, no-c-format
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 "Si usted está integrando el Web Beans en un entorno de Servlet debe "
 "registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
 "como oyente de Servlet, ya sea automáticamente o a través de la "
 "configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 "Si usted está integrando el Web Beans en un entorno de Servlet debe "
 "registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
@@ -858,14 +805,12 @@
 "configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 "Si usted está integrando el Web Beans en un entorno de Servlet debe "
 "registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
@@ -873,26 +818,113 @@
 "configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"Si usted está integrando el Web Beans en un entorno de Servlet debe "
+"registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
+"como oyente de Servlet, ya sea automáticamente o a través de la "
+"configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Si usted está integrando el Web Beans en un entorno de Servlet debe "
+"registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
+"como oyente de Servlet, ya sea automáticamente o a través de la "
+"configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Intercepción de sesión de Bean"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 "Si está integrando los Web Beans en un entorno EJB debe registrar "
 "<literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> como un "
@@ -901,7 +933,7 @@
 "Beans empresariales."
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -909,43 +941,488 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, fuzzy, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "El <literal>webbeans-ri.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
-#, fuzzy, no-c-format
+#: ri-spi.xml:590
+#, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
-"Si está integrando el Web Beans dentro de un entorno que admite despliegue "
-"de aplicaciones, debe insertar el <literal>webbeans-ri.jar</literal> dentro "
-"de las aplicaciones del classloader aislado. No se puede cargar desde el "
-"classloader compartido."
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#, fuzzy
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "Actualmente la IR de Web Beans sólo se ejecuta en JBoss AS 5; integrando "
+#~ "la IR dentro de otros entornos EE (por ejemplo otro servidor de "
+#~ "aplicación como Glassfish), dentro de un contenedor de servlet (como "
+#~ "Tomcat), o con una implementación incrustada EJB3.1 es bastante fácil. En "
+#~ "este apéndice veremos brevemente los pasos requeridos."
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean Discovery"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface WebBeanDiscovery {\n"
+#~ "   /**\n"
+#~ "    * Gets list of all classes in classpath archives with web-beans.xml "
+#~ "files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all web-beans.xml files in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the web-beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "El descubirmiento de clases de Web Bean y de archivos <literal>web-bean."
+#~ "xml</literal> es autoexplicativo (el algoritmo está descrito en la "
+#~ "sección 11.1 de la especificación JSR299 y no se repite aquí)."
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "La IR de Web Beans también delega el descubrimiento de bean EJB3 al "
+#~ "contenedor para no tener que examinar las anotaciones EJB3 o analizar "
+#~ "<literal>ejb-jar.xml</literal>. Para cada EJB en la aplicación se debe "
+#~ "descubrir un EJBDescriptor:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T> {\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();\n"
+#~ "   \n"
+#~ "   \n"
+#~ "}]]>"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#, fuzzy
+#~ msgid "Servlet injection"
+#~ msgstr "Oyente de Servlet"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "Si usted está integrando el Web Beans en un entorno de Servlet debe "
+#~ "registrar <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> "
+#~ "como oyente de Servlet, ya sea automáticamente o a través de la "
+#~ "configuración de usuario, para cada aplicación Web Beans que utiliza "
+#~ "Servlet."
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "Si está integrando el Web Beans dentro de un entorno que admite "
+#~ "despliegue de aplicaciones, debe insertar el <literal>webbeans-ri.jar</"
+#~ "literal> dentro de las aplicaciones del classloader aislado. No se puede "
+#~ "cargar desde el classloader compartido."
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "

Modified: doc/trunk/reference/es-ES/scopescontexts.po
===================================================================
--- doc/trunk/reference/es-ES/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: scopescontexts\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:45+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,20 +17,19 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "Ámbitos y contextos"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "Hasta ahora, hemos visto algunos ejemplos de <emphasis>anotaciones de tipo "
 "ámbito</emphasis>. El ámbito de un Web Bean determina el ciclo de vida de "
@@ -39,33 +38,33 @@
 "Beans, un ámbito determina:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "Cuándo se crea una nueva instancia de un Web Bean con ese ámbito"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr ""
 "Cuándo se destruye una instancia existente de cualquier Web Bean con ese "
 "ámbito"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 "Qué referencias se refieren a una instancia de un Web Bean con ese ámbito"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -78,29 +77,37 @@
 "automáticamente la primera vez que se necesite un <literal>UsuarioActual</"
 "literal> en esa sesión, y se destruirá automáticamente al terminar la sesión."
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "Tipos de ámbito"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Beans ofrece un <emphasis>modelo contextual extensible</emphasis>. Es "
 "posible definir nuevos ámbitos creando una nueva anotación de tipo de ámbito:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -109,13 +116,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "Claro está que esa es la parte fácil. Para que este tipo de ámbito sea útil, "
 "necesitaremos también definir un objeto <literal>Contexto</literal> que "
@@ -123,17 +132,17 @@
 "suele ser una tarea muy técnica, únicamente destinada a desarrollo de marco."
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Podemos aplicar un tipo de anotación de ámbito a una clase de implementación "
 "de Web Bean para especificar el ámbito del Web Bean:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -143,56 +152,56 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr ""
 "Por lo general, se utilizará uno de los ámbitos incorporados de Web Beans."
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "Ámbitos incorporados"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beans define cuatro ámbitos incorporados:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Para una aplicación de red que utilice Web Beans:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -202,49 +211,57 @@
 "ámbitos de aplicación, y adicionalmente,"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr ""
 "cualquier petición de JSF tiene acceso a un ámbito de conversación activo."
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "Los ámbitos de petición y aplicación también están activos:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "durante invocaciones de métodos remotos EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "durante pausas EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "durante la entrega de mensaje a un bean controlado por mensajes, y"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "durante invocaciones de servicio de red."
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "Si la aplicación trata de invocar un Web Bean con un ámbito que no tiene un "
 "contexto activo, el administrador de Web Bean produce una "
@@ -252,7 +269,7 @@
 "ejecución."
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -264,19 +281,19 @@
 "explicarlos aquí. No obstante, uno de los ámbitos es nuevo."
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "El ámbito de conversación"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "El ámbito de conversación de Web Beans es un poco parecido al ámbito de "
 "sesión tradicional en que mantiene el estado asociado con el usuario del "
@@ -284,29 +301,28 @@
 "del ámbito de sesión, el ámbito de conversación:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "está demarcado explícitamente por la aplicación, y"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"mantiene un estado asociado con una ficha de navegador de red determinada en "
-"una aplicación JSF."
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "Una conversación representa una tarea, una unidad de trabajo desde el punto "
 "de vista del usuario. El contexto de conversación mantiene un estado "
@@ -315,10 +331,10 @@
 "conversaciones."
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -330,31 +346,30 @@
 "larga</emphasis>."
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "Demarcación de conversación"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans ofrece un Web Bean incorporado para controlar el ciclo de vida de "
 "conversaciones en una aplicación JSF. Dicho Web Bean puede obtenerse por "
 "inyección:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -370,49 +385,47 @@
 "literal>."
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "En el ejemplo a continuación, un Web Bean de conversación en ámbito controla "
 "la conversación con la que está asociada."
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -446,30 +459,30 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Este Web Bean puede controlar su propio ciclo de vida mediante la API de "
 "<literal>Conversación</literal>. No obstante, algunos otros Web Beans tienen "
 "un ciclo de vida que depende totalmente de otro objeto."
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "Propagación de conversación"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "El contexto de conversación se propaga automáticamente con cualquier "
 "petición de JSF (presentación de formulario JSF). No se propaga "
@@ -477,15 +490,15 @@
 "mediante un enlace."
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "Podemos forzar la propagación de una conversación con una petición sin-caras "
 "al incluir el identificador único de la conversación como un parámetro de "
@@ -495,13 +508,13 @@
 "cual tiene el nombre de Web Beans <literal>conversation</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "Por consiguiente, el siguiente enlace propaga la conversación:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -511,15 +524,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "El administrador de Web Bean también se requiere para propagar "
 "conversaciones a través de cualquier redirección, incluso si la conversación "
 "no está marcada como larga. Esto facilita mucho la implementación del patrón "
@@ -528,20 +555,21 @@
 "automáticamente un parámetro a la URL de redirección."
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "Pausa de conversación"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Con el fin de preservar recursos, el administrador de Web Bean puede "
 "destruir una conversación y todo el estado en su contexto en cualquier "
@@ -551,11 +579,11 @@
 "la destrucción de la conversación."
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "El objeto de <literal>Conversación</literal> proporciona un método para "
@@ -563,133 +591,106 @@
 "de Web Bean quién tiene la libertad de pasar por alto la configuración."
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "El seudo ámbito dependiente"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "Además de los cuatro ámbitos incorporados, Web Beans ofrece el "
 "<emphasis>ámbito seudo dependiente</emphasis>. Este es el ámbito para el Web "
 "Bean que no declare explícitamente un tipo de ámbito."
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "Por ejemplo, este Web Bean tiene el ámbito de tipo <literal>@Dependent</"
 "literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Cuando un punto de inyección de un Web Bean apunta a un Web Bean "
-"dependiente, una nueva instancia del Web Bean dependiente es creada cada vez "
-"que el primer Web Bean sea instanciado. Las instancias de Web Beans "
-"dependientes nunca se comparten entre Web Beans o puntos diferentes de "
-"inyección. Ellas son <emphasis>objetos dependientes</emphasis> de alguna "
-"otra instancia de Web Bean."
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"Las instancias dependientes de Web Bean se destruyen cuando la instancia de "
-"la que dependen es destruida."
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Beans facilita la obtención de una instancia dependiente de una clase de "
 "Java o bean EJB, incluso si la clase o el bean EJB ya se declaró como Web "
 "Bean con algún otro tipo de ámbito."
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "La anotación <literal>@New</literal>"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"La anotación de enlace incorporada <literal>@New</literal> permite "
-"definición <emphasis>implícita</emphasis> de un Web Bean dependiente en un "
-"punto de inyección. Imagine que declara el siguiente campo inyectado:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"Entonces un Web Bean con ámbito <literal>@Dependent</literal>, tipo de "
-"enlace <literal>@New</literal>, tipo de API <literal>Calculator</literal>, "
-"clase de implementación <literal>Calculator</literal> y tipo de despliegue "
-"<literal>@Standard</literal> está definido de modo implícito."
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "Esto es cierto incluso si <literal>Calculator</literal> está <emphasis>ya</"
 "emphasis> declarado con un tipo de ámbito diferente, por ejemplo:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -699,7 +700,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -709,14 +710,12 @@
 "instancia diferente a <literal>Calculator</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -727,7 +726,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -742,7 +741,7 @@
 "propietario de <literal>PaymentCalc</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
@@ -750,3 +749,52 @@
 msgstr ""
 "La función es particularmente útil con métodos de productor, así como "
 "veremos en el siguiente capítulo."
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "mantiene un estado asociado con una ficha de navegador de red determinada "
+#~ "en una aplicación JSF."
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Cuando un punto de inyección de un Web Bean apunta a un Web Bean "
+#~ "dependiente, una nueva instancia del Web Bean dependiente es creada cada "
+#~ "vez que el primer Web Bean sea instanciado. Las instancias de Web Beans "
+#~ "dependientes nunca se comparten entre Web Beans o puntos diferentes de "
+#~ "inyección. Ellas son <emphasis>objetos dependientes</emphasis> de alguna "
+#~ "otra instancia de Web Bean."
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "Las instancias dependientes de Web Bean se destruyen cuando la instancia "
+#~ "de la que dependen es destruida."
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "La anotación de enlace incorporada <literal>@New</literal> permite "
+#~ "definición <emphasis>implícita</emphasis> de un Web Bean dependiente en "
+#~ "un punto de inyección. Imagine que declara el siguiente campo inyectado:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "Entonces un Web Bean con ámbito <literal>@Dependent</literal>, tipo de "
+#~ "enlace <literal>@New</literal>, tipo de API <literal>Calculator</"
+#~ "literal>, clase de implementación <literal>Calculator</literal> y tipo de "
+#~ "despliegue <literal>@Standard</literal> está definido de modo implícito."

Modified: doc/trunk/reference/es-ES/specialization.po
===================================================================
--- doc/trunk/reference/es-ES/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: specialization\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:16+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,33 +17,104 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "Specialization"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
 msgstr ""
-"Hemos visto cómo el modelo de inyección de dependencia de Web Beans nos permite "
-"<emphasis>omitir</emphasis> la implementación de un API en el momento del despliegue. Por ejemplo, la siguiente Web Bean empresarial provee una implementación del <literal>Procesador de Pago</literal> de API en producción:"
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless\n"
-"public class CreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
 msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"Hemos visto cómo el modelo de inyección de dependencia de Web Beans nos "
+"permite <emphasis>omitir</emphasis> la implementación de un API en el "
+"momento del despliegue. Por ejemplo, la siguiente Web Bean empresarial "
+"provee una implementación del <literal>Procesador de Pago</literal> de API "
+"en producción:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -51,166 +122,237 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
-#, no-c-format
+#: specialization.xml:61
+#, fuzzy, no-c-format
 msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
 "Pero en nuestro entorno, omitimos esa implementación de "
 "<literal>PaymentProcessor</literal> con un Web Bean diferente:"
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless\n"
+"public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:68
+#, no-c-format
+msgid "<para>or</para>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+
+#. Tag: programlisting
+#: specialization.xml:70
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
-"Lo que hemos tratado de hacer con <literal>StagingCreditCardPaymentProcessor</"
-"literal> es remplazar totalmente a <literal>AsyncPaymentProcessor</literal> en un despliegue particular del sistema. En ese despliegue, el tipo de despliegue <literal>@Staging</literal> tendría una prioridad más alta que el tipo de despliegue predeterminado <literal>@Production</literal>, y por ende los clientes con el siguiente punto de inyección:"
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
 msgstr ""
-"Recibirían una instancia de <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "Lamentablemente, hay varias trampas en las que se puede caer fácilmente:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
-msgstr "el Web Bean de prioridad más alta puede que no implemente todos los tipos de API del Web Bean que intenta omitir,"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
-msgstr "el Web Bean de prioridad más alta puede que no declare todos los tipos de enlace del Web Bean que intenta omitir,"
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
+#. Tag: title
+#: specialization.xml:105
+#, no-c-format
+msgid "A minor problem with alternatives"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:107
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
-msgstr "el Web Bean de prioridad más alta puede que no tenga el mismo nombre que el Web Bean que intenta omitir, o"
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
-msgstr "el Web Bean que intenta omitir podría declarar un método de productor, método desechable o método de observador."
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
-msgstr "En cada uno de estos casos, el Web Bean que hemos tratado de omitir se podría llamar aún en el tiempo de ejecución. Por lo tanto, la omisión de alguna manera tiende a desarrollar error."
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
-#, no-c-format
+#: specialization.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
 msgstr ""
 "Web Beans ofrece una función especial, llamada <emphasis>Specialization</"
-"emphasis>, la cual ayuda al desarrollador a evitar estas trampas. Specialization parece un poco esotérica al comienzo, pero es fácil de utilizar en la práctica y realmente apreciará la seguridad adicional que proporciona."
+"emphasis>, la cual ayuda al desarrollador a evitar estas trampas. "
+"Specialization parece un poco esotérica al comienzo, pero es fácil de "
+"utilizar en la práctica y realmente apreciará la seguridad adicional que "
+"proporciona."
 
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "Uso de Specialization"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
 msgstr ""
-"Specialization es una función específica para Web "
-"Beans sencillos y empresariales. Para hacer uso de Specialization, la Web Bean de prioridad más alta debe:"
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "ser una subclase directa del Web Bean que omite y"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
-msgstr "ser un Web Bean sencillo si el Web Bean que omite es un Web Bean sencillo o un Web Bean empresarial si el Web Bean que omite es un Web Bean empresarial y"
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "estar anotado <literal>@Specializes</literal>."
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"Decimos que el Web Bean de prioridad más alta<emphasis>especializa</"
+"emphasis> su superclase."
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -219,115 +361,214 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
-msgstr "Decimos que el Web Bean de prioridad más alta<emphasis>especializa</emphasis> su superclase."
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "Ventajas de Specialization"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "Cuando se utiliza Specialization:"
-
-#. Tag: para
-#: specialization.xml:91
-#, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
 msgstr ""
-"los tipos de enlace de la superclase son heredados automáticamente por el Web "
-"Bean anotado <literal>@Specializes</literal>, y"
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
-"el nombre de Web Bean de la superclase es heredado automáticamente por el Web "
-"Bean anotado <literal>@Specializes</literal>, y"
 
 #. Tag: para
-#: specialization.xml:99
+#: specialization.xml:172
 #, no-c-format
 msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
-msgstr "los métodos de productor, métodos desechables y métodos de observador declarados por la superclase son llamados por una instancia del Web Bean anotado <literal>@Specializes</literal>."
-
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
 msgstr ""
-"En nuestro ejemplo, el tipo de enlace <literal>@CreditCard</literal> de "
-"<literal>CreditCardPaymentProcessor</literal> es heredado por <literal>StagingCreditCardPaymentProcessor</literal>."
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "Además, el administrador de Web Bean confirmará que:"
+#~ msgid "Specialization"
+#~ msgstr "Specialization"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
-msgstr ""
-"todos los tipos de API de la superclase son tipos de API del Web Bean anotado "
-"<literal>@Specializes</literal> (todas las interfaces locales del bean empresarial de superclase también son interfaces locales de la subclase),"
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "Lo que hemos tratado de hacer con "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> es remplazar "
+#~ "totalmente a <literal>AsyncPaymentProcessor</literal> en un despliegue "
+#~ "particular del sistema. En ese despliegue, el tipo de despliegue "
+#~ "<literal>@Staging</literal> tendría una prioridad más alta que el tipo de "
+#~ "despliegue predeterminado <literal>@Production</literal>, y por ende los "
+#~ "clientes con el siguiente punto de inyección:"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
-msgstr ""
-"el tipo de despliegue del Web Bean anotado <literal>@Specializes</"
-"literal> tiene una prioridad más alta que el tipo de despliegue de la superclase, y "
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "no hay ningún otro Web Bean habilitado que también especialice la superclase."
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Recibirían una instancia de <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
-msgstr "Si se violan algunas condiciones, el administrador de Web Bean produce una excepción en el momento de la inicialización."
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr ""
+#~ "Lamentablemente, hay varias trampas en las que se puede caer fácilmente:"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr ""
-"Por lo tanto, podemos estar seguros que la superclase <emphasis>nunca</"
-"emphasis> será llamada en ningún despliegue del sistema donde el Web Bean anotado <literal>@Specializes</literal> esté desplegado y habilitado."
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "el Web Bean de prioridad más alta puede que no implemente todos los tipos "
+#~ "de API del Web Bean que intenta omitir,"
 
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "el Web Bean de prioridad más alta puede que no declare todos los tipos de "
+#~ "enlace del Web Bean que intenta omitir,"
+
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "el Web Bean de prioridad más alta puede que no tenga el mismo nombre que "
+#~ "el Web Bean que intenta omitir, o"
+
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "el Web Bean que intenta omitir podría declarar un método de productor, "
+#~ "método desechable o método de observador."
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "En cada uno de estos casos, el Web Bean que hemos tratado de omitir se "
+#~ "podría llamar aún en el tiempo de ejecución. Por lo tanto, la omisión de "
+#~ "alguna manera tiende a desarrollar error."
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "Specialization es una función específica para Web Beans sencillos y "
+#~ "empresariales. Para hacer uso de Specialization, la Web Bean de prioridad "
+#~ "más alta debe:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "ser una subclase directa del Web Bean que omite y"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "ser un Web Bean sencillo si el Web Bean que omite es un Web Bean sencillo "
+#~ "o un Web Bean empresarial si el Web Bean que omite es un Web Bean "
+#~ "empresarial y"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "estar anotado <literal>@Specializes</literal>."
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "Ventajas de Specialization"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "Cuando se utiliza Specialization:"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "los tipos de enlace de la superclase son heredados automáticamente por el "
+#~ "Web Bean anotado <literal>@Specializes</literal>, y"
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "el nombre de Web Bean de la superclase es heredado automáticamente por el "
+#~ "Web Bean anotado <literal>@Specializes</literal>, y"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "los métodos de productor, métodos desechables y métodos de observador "
+#~ "declarados por la superclase son llamados por una instancia del Web Bean "
+#~ "anotado <literal>@Specializes</literal>."
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "En nuestro ejemplo, el tipo de enlace <literal>@CreditCard</literal> de "
+#~ "<literal>CreditCardPaymentProcessor</literal> es heredado por "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "Además, el administrador de Web Bean confirmará que:"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "todos los tipos de API de la superclase son tipos de API del Web Bean "
+#~ "anotado <literal>@Specializes</literal> (todas las interfaces locales del "
+#~ "bean empresarial de superclase también son interfaces locales de la "
+#~ "subclase),"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "el tipo de despliegue del Web Bean anotado <literal>@Specializes</"
+#~ "literal> tiene una prioridad más alta que el tipo de despliegue de la "
+#~ "superclase, y "
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr ""
+#~ "no hay ningún otro Web Bean habilitado que también especialice la "
+#~ "superclase."
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "Si se violan algunas condiciones, el administrador de Web Bean produce "
+#~ "una excepción en el momento de la inicialización."
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "Por lo tanto, podemos estar seguros que la superclase <emphasis>nunca</"
+#~ "emphasis> será llamada en ningún despliegue del sistema donde el Web Bean "
+#~ "anotado <literal>@Specializes</literal> esté desplegado y habilitado."

Modified: doc/trunk/reference/es-ES/stereotypes.po
===================================================================
--- doc/trunk/reference/es-ES/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: stereotypes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:23+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,92 +17,96 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "Estereotipos"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "Según la especificación de Web Beans:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
-msgstr "En muchos sistemas, el uso de patrones arquitecturales produce una serie de roles de Web Beans recurrentes. Un estereotipo permite al desarrollador de marco identificar dicho rol y declarar algunos metadatos comunes para Web Beans con ese rol en un lugar central."
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"En muchos sistemas, el uso de patrones arquitecturales produce una serie de "
+"roles de Web Beans recurrentes. Un estereotipo permite al desarrollador de "
+"marco identificar dicho rol y declarar algunos metadatos comunes para Web "
+"Beans con ese rol en un lugar central."
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "Un estereotipo encapsula cualquier combinación de:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "un tipo de despliegue predeterminado,"
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "un tipo de ámbito predeterminado,"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "una restricción en el ámbito de Web Bean,"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "una serie de anotaciones de enlace del interceptor."
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "un requisito que implementa el Web Bean o extiende un cierto tipo y "
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "una serie de anotaciones de enlace del interceptor."
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
-msgstr "Un estereotipo puede también especificar que todos los Web Beans con el estereotipo tengan nombres de Web Beans predeterminados."
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"Un estereotipo puede también especificar que todos los Web Beans con el "
+"estereotipo tengan nombres de Web Beans predeterminados."
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Un Web Bean puede declarar cero, uno o múltiples estereotipos."
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
-msgstr "Un estereotipo es un tipo de anotación Java. Dicho estereotipo identifica clases de acción en algún marco MVC:"
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"Un estereotipo es un tipo de anotación Java. Dicho estereotipo identifica "
+"clases de acción en algún marco MVC:"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -111,13 +115,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "Utilizamos el estereotipo aplicando la anotación al Web Bean."
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -126,269 +130,296 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "El ámbito predeterminado y el tipo de despliegue para un estereotipo"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
-msgstr "Un estereotipo puede especificar un ámbito y /o tipo de despliegue predeterminados para Web Beans con ese estereotipo. Por ejemplo, si el tipo de despliegue <literal>@WebTier</literal> identifica Web Beans que deben ser desplegados sólo cuando el sistema se ejecuta como una aplicación de red, podríamos especificar los siguientes valores por defecto para clases de acción:"
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"Un estereotipo puede también especificar que todos los Web Beans con el "
+"estereotipo tengan nombres de Web Beans predeterminados."
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
-msgstr "Obviamente, una acción particular aún puede omitir estos valores predeterminados si es necesario:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
+msgstr ""
+"Obviamente, una acción particular aún puede omitir estos valores "
+"predeterminados si es necesario:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "Si deseamos forzar todas las acciones a un ámbito determinado, también lo podemos hacer."
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "Restricción de ámbito y tipo con un estereotipo"
+msgid "Interceptor bindings for stereotypes"
+msgstr "Enlaces de interceptor para esterotipos"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
-msgstr "Supongamos que deseamos evitar acciones de declarar determinados ámbitos. Web Beans nos permite especificar explícitamente la serie de ámbitos permitidos para Web Beans con un estereotipo determinado. Por ejemplo:"
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"Un estereotipo puede especificar una serie de enlaces de interceptor para "
+"que sean heredados por todos los Web Beans con ese estereotipo."
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
-#, no-c-format
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
-msgstr "Si una clase de acción determinada intenta especificar un ámbito diferente al ámbito de la petición de Web Beans, el administrador de Web Bean producirá una excepción en el momento de inicialización."
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"¡Esto nos ayuda a obtener cuestiones técnicas aún más allá del código de "
+"negocios!"
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr "Predeterminación de nombre con estereotipos"
+
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
-msgstr "También podemos forzar todos los Web Bean con un estereotipo determinado para implementar una interfaz o extender una clase:"
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"Por último, podemos especificar que todos los Web Beans con un determinado "
+"estereotipo tengan un nombre de Web Bean, predeterminado por el "
+"administrador del Web Bean. Se suele hacer referencia a las acciones en "
+"páginas JSP, así que son un caso de uso perfecto para esta función. Todo lo "
+"que necesitamos es agregar una anotación vacía a <literal>@Named</literal>."
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
-msgstr "Si una clase particular de acción no extiende la clase <literal>AbstractAction</literal>, el administrador de Web Bean producirá una excepción en el momento de inicialización."
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"Ahora, <literal>LoginAction</literal> se llamará<literal>loginAction</"
+"literal>."
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "Enlaces de interceptor para esterotipos"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "Estereotipos estándar"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
-msgstr "Un estereotipo puede especificar una serie de enlaces de interceptor para que sean heredados por todos los Web Beans con ese estereotipo."
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
-msgstr "¡Esto nos ayuda a obtener cuestiones técnicas aún más allá del código de negocios!"
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "Estereotipos"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "Predeterminación de nombre con estereotipos"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "Por último, podemos especificar que todos los Web Beans con un determinado estereotipo tengan un nombre de Web Bean, predeterminado por el administrador del Web Bean. Se suele hacer referencia a las acciones en páginas JSP, así que son un caso de uso perfecto para esta función. Todo lo que necesitamos es agregar una anotación vacía a <literal>@Named</literal>."
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
 "@Stereotype\n"
-"public @interface Action {}]]>"
-msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
-
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"Ahora, <literal>LoginAction</literal> se llamará<literal>loginAction</"
-"literal>."
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "Estereotipos estándar"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
 msgstr ""
-"Ya hemos visto dos estereotipos estándar definidos por la especificación de Web Beans: <literal>@Interceptor</literal> y <literal>@Decorator</"
-"literal>."
+"Ya hemos visto dos estereotipos estándar definidos por la especificación de "
+"Web Beans: <literal>@Interceptor</literal> y <literal>@Decorator</literal>."
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Beans define otro estereotipo estándar:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -398,11 +429,134 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
-msgstr "Este estereotipo está destinado a ser utilizado con JSF. En lugar de usar beans JSF administrados, solamente anote un Web Bean <literal>@Model</literal>, y utilícelo directamente en su página JSF."
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"Este estereotipo está destinado a ser utilizado con JSF. En lugar de usar "
+"beans JSF administrados, solamente anote un Web Bean <literal>@Model</"
+"literal>, y utilícelo directamente en su página JSF."
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "Según la especificación de Web Beans:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "un tipo de despliegue predeterminado,"
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "una restricción en el ámbito de Web Bean,"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr ""
+#~ "un requisito que implementa el Web Bean o extiende un cierto tipo y "
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Un Web Bean puede declarar cero, uno o múltiples estereotipos."
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "Un estereotipo puede especificar un ámbito y /o tipo de despliegue "
+#~ "predeterminados para Web Beans con ese estereotipo. Por ejemplo, si el "
+#~ "tipo de despliegue <literal>@WebTier</literal> identifica Web Beans que "
+#~ "deben ser desplegados sólo cuando el sistema se ejecuta como una "
+#~ "aplicación de red, podríamos especificar los siguientes valores por "
+#~ "defecto para clases de acción:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "Si deseamos forzar todas las acciones a un ámbito determinado, también lo "
+#~ "podemos hacer."
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "Restricción de ámbito y tipo con un estereotipo"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "Supongamos que deseamos evitar acciones de declarar determinados ámbitos. "
+#~ "Web Beans nos permite especificar explícitamente la serie de ámbitos "
+#~ "permitidos para Web Beans con un estereotipo determinado. Por ejemplo:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "Si una clase de acción determinada intenta especificar un ámbito "
+#~ "diferente al ámbito de la petición de Web Beans, el administrador de Web "
+#~ "Bean producirá una excepción en el momento de inicialización."
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "También podemos forzar todos los Web Bean con un estereotipo determinado "
+#~ "para implementar una interfaz o extender una clase:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "Si una clase particular de acción no extiende la clase "
+#~ "<literal>AbstractAction</literal>, el administrador de Web Bean producirá "
+#~ "una excepción en el momento de inicialización."
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Beans define otro estereotipo estándar:"

Modified: doc/trunk/reference/es-ES/viewlayers.po
===================================================================
--- doc/trunk/reference/es-ES/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/es-ES/weldexamples.po
===================================================================
--- doc/trunk/reference/es-ES/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/es-ES/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language es-ES translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/es-ES/xml.po
===================================================================
--- doc/trunk/reference/es-ES/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/es-ES/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:40+1000\n"
 "Last-Translator: Gladys Guerrero Lozano <gguerrer at redhat.com>\n"
 "Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
@@ -17,64 +17,66 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "Definición de Web Beans utilizando XML"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
+#: xml.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
-msgstr "Hasta ahora hemos visto varios ejemplos de Web Beans declarados mediante anotaciones. No obstante, hay un par de ocasiones en que no podemos utilizar anotaciones para definir el Web Bean."
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"Hasta ahora hemos visto varios ejemplos de Web Beans declarados mediante "
+"anotaciones. No obstante, hay un par de ocasiones en que no podemos utilizar "
+"anotaciones para definir el Web Bean."
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
-msgstr "cuando la clase de implementación viene de alguna biblioteca preexistente, o"
+msgstr ""
+"cuando la clase de implementación viene de alguna biblioteca preexistente, o"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "cuando debe haber múltiples Web Beans con la misma clase de implementación."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"cuando debe haber múltiples Web Beans con la misma clase de implementación."
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "En estos casos, Web Beans nos ofrece dos opciones:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "escribir un método de productor, o"
-
-#. Tag: para
-#: xml.xml:24
-#, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "declarar el Web Bean utilizando XML"
-
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
+#: xml.xml:31
+#, fuzzy, no-c-format
 msgid ""
 "Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
 "class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
-msgstr "Muchos marcos utilizan XML para proporcionar metadatos relacionados con clases de Java. Sin embargo, Web Beans usa un método muy diferente para especificar los nombres de clases de Java, campos o métodos para la mayoría de otros marcos. En lugar de escribir nombres de clase y miembro como valores de cadena de elementos XML y atributos, Web Beans le permite utilizar el nombre de clase o miembro como el nombre del elemento XML."
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"Muchos marcos utilizan XML para proporcionar metadatos relacionados con "
+"clases de Java. Sin embargo, Web Beans usa un método muy diferente para "
+"especificar los nombres de clases de Java, campos o métodos para la mayoría "
+"de otros marcos. En lugar de escribir nombres de clase y miembro como "
+"valores de cadena de elementos XML y atributos, Web Beans le permite "
+"utilizar el nombre de clase o miembro como el nombre del elemento XML."
 
 #. Tag: para
-#: xml.xml:33
+#: xml.xml:38
 #, no-c-format
 msgid ""
 "The advantage of this approach is that you can write an XML schema that "
@@ -82,26 +84,37 @@
 "to generate the XML schema automatically from the compiled Java code. Or, an "
 "integrated development environment could perform the same validation without "
 "the need for the explicit intermediate generation step."
-msgstr "La ventaja de este enfoque es que se puede escribir un esquema de XML que evita errores de ortografía en su documento de XML. Es incluso posible que una herramienta genere automáticamente el esquema XML desde el código de Java compilado. O, un entorno de desarrollo integrado podría realizar la misma validación sin la necesidad de una etapa de generación intermedia explícita."
+msgstr ""
+"La ventaja de este enfoque es que se puede escribir un esquema de XML que "
+"evita errores de ortografía en su documento de XML. Es incluso posible que "
+"una herramienta genere automáticamente el esquema XML desde el código de "
+"Java compilado. O, un entorno de desarrollo integrado podría realizar la "
+"misma validación sin la necesidad de una etapa de generación intermedia "
+"explícita."
 
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Declaración de clases de Web Bean"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
+#: xml.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
+"For each Java package, Weld defines a corresponding XML namespace. The "
 "namespace is formed by prepending <literal>urn:java:</literal> to the Java "
 "package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
 "namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Para cada paquete de Java, Web Beans define el espacio de nombre de XML correspondiente. El espacio de nombre se forma añadiendo <literal>urn:java:</literal> al nombre de paquete de Java. Para el paquete <literal>com.mydomain.myapp</literal>, el espacio de nombre de XML es <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"Para cada paquete de Java, Web Beans define el espacio de nombre de XML "
+"correspondiente. El espacio de nombre se forma añadiendo <literal>urn:java:</"
+"literal> al nombre de paquete de Java. Para el paquete <literal>com.mydomain."
+"myapp</literal>, el espacio de nombre de XML es <literal>urn:java:com."
+"mydomain.myapp</literal>."
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
 msgid ""
 "Java types belonging to a package are referred to using an XML element in "
@@ -109,26 +122,32 @@
 "name of the Java type. Fields and methods of the type are specified by child "
 "elements in the same namespace. If the type is an annotation, members are "
 "specified by attributes of the element."
-msgstr "Los tipos Java pertenecientes a un paquete se conocen por un elemento XML en el espacio de nombre correspondiente al paquete. El nombre del elemento es el nombre del tipo de Java y los métodos del tipo están especificados por elementos secundarios en el mismo espacio de nombre. Si el tipo es una anotación, los miembros son especificados por atributos del elemento."
+msgstr ""
+"Los tipos Java pertenecientes a un paquete se conocen por un elemento XML en "
+"el espacio de nombre correspondiente al paquete. El nombre del elemento es "
+"el nombre del tipo de Java y los métodos del tipo están especificados por "
+"elementos secundarios en el mismo espacio de nombre. Si el tipo es una "
+"anotación, los miembros son especificados por atributos del elemento."
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
 msgid ""
 "For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
 "following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Por ejemplo, el elemento <literal>&lt;util:Date/&gt;</literal> en el siguiente fragmento XML se refiere a la clase <literal>java.util.Date</literal>:"
+msgstr ""
+"Por ejemplo, el elemento <literal>&lt;util:Date/&gt;</literal> en el "
+"siguiente fragmento XML se refiere a la clase <literal>java.util.Date</"
+"literal>:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -138,42 +157,48 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
+#: xml.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
-msgstr "¡Y este es todo el código que necesitamos para declarar que <literal>Date</literal> es un Web Bean sencillo! Una instancia de <literal>Date</literal> puede ahora ser inyectada por cualquier otro Web Bean:"
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"¡Y este es todo el código que necesitamos para declarar que <literal>Date</"
+"literal> es un Web Bean sencillo! Una instancia de <literal>Date</literal> "
+"puede ahora ser inyectada por cualquier otro Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Declaración de metadatos de Web Bean"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
+#: xml.xml:80
+#, fuzzy, no-c-format
 msgid ""
 "We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
-msgstr "Podemos declarar el ámbito, el tipo de despliegue y los tipos de enlace de interceptor mediante elementos directos secundarios de la declaración del Web Bean:"
+"using direct child elements of the bean declaration:"
+msgstr ""
+"Podemos declarar el ámbito, el tipo de despliegue y los tipos de enlace de "
+"interceptor mediante elementos directos secundarios de la declaración del "
+"Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -183,29 +208,31 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "Utilizamos exactamente el mismo método para especificar nombres y tipo de enlace:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"Utilizamos exactamente el mismo método para especificar nombres y tipo de "
+"enlace:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -225,38 +252,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
+#: xml.xml:91
+#, fuzzy, no-c-format
 msgid ""
 "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
-msgstr "Donde <literal>@Login</literal> y <literal>@SystemStart</literal> son tipos de anotaciones de enlace."
+"qualifier annotations types."
+msgstr ""
+"Donde <literal>@Login</literal> y <literal>@SystemStart</literal> son tipos "
+"de anotaciones de enlace."
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "Como es usual, un Web Bean puede soportar múltiples tipos de enlace:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -265,20 +294,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
+#: xml.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
-msgstr "Los interceptores y decoradores son sólo Web Beans sencillos, por consiguiente, pueden ser declarados como cualquier otro Web Bean sencillo:"
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"Los interceptores y decoradores son sólo Web Beans sencillos, por "
+"consiguiente, pueden ser declarados como cualquier otro Web Bean sencillo:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -287,42 +318,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Declaración de miembros de Web Bean"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "¡TODO!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "Declaración de Web Beans en línea"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "Web Beans nos permite definir un Web Bean en el punto de inyección. Por ejemplo:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"Web Beans nos permite definir un Web Bean en el punto de inyección. Por "
+"ejemplo:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -337,58 +370,68 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
+#: xml.xml:125
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
-msgstr "El elemento <literal>&lt;Name&gt;</literal> declara un Web Bean sencillo de ámbito <literal>@Dependent</literal> y clase <literal>Name</literal>, con una serie de valores de campo iniciales. Este Web Bean tiene un enlace de contenedor-generado y es, por lo tanto, inyectable únicamente en el punto de inyección en el cual es declarado."
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"El elemento <literal>&lt;Name&gt;</literal> declara un Web Bean sencillo de "
+"ámbito <literal>@Dependent</literal> y clase <literal>Name</literal>, con "
+"una serie de valores de campo iniciales. Este Web Bean tiene un enlace de "
+"contenedor-generado y es, por lo tanto, inyectable únicamente en el punto de "
+"inyección en el cual es declarado."
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
+#: xml.xml:131
+#, fuzzy, no-c-format
 msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
 "solution, but it's close!"
-msgstr "Esta función simple pero poderosa permite que el formato XML de Web Beans pueda utilizarse para especificar gráficos completos de objetos Java. No es del todo una solución para enlazar datos, pero ¡está cerca!"
+msgstr ""
+"Esta función simple pero poderosa permite que el formato XML de Web Beans "
+"pueda utilizarse para especificar gráficos completos de objetos Java. No es "
+"del todo una solución para enlazar datos, pero ¡está cerca!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "Uso de un esquema"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
+#: xml.xml:141
+#, fuzzy, no-c-format
 msgid ""
 "If we want our XML document format to be authored by people who aren't Java "
 "developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
-msgstr "Si deseamos que nuestro formato de documento XML sea creado por personas que no son desarrolladores de Java, o que no tienen acceso a nuestro código, necesitamos proporcionar un esquema. No hay nada específico de Web Beans sobre escribir o utilizar el esquema."
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Si deseamos que nuestro formato de documento XML sea creado por personas que "
+"no son desarrolladores de Java, o que no tienen acceso a nuestro código, "
+"necesitamos proporcionar un esquema. No hay nada específico de Web Beans "
+"sobre escribir o utilizar el esquema."
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
@@ -405,11 +448,22 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
+#: xml.xml:149
+#, fuzzy, no-c-format
 msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
-msgstr "La escritura de un esquema XML es bastante tediosa. Por lo tanto, el proyecto de la IR de Web Beans proporcionará una herramienta que genere automáticamente el esquema de XML desde el código de Java compilado."
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"La escritura de un esquema XML es bastante tediosa. Por lo tanto, el "
+"proyecto de la IR de Web Beans proporcionará una herramienta que genere "
+"automáticamente el esquema de XML desde el código de Java compilado."
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "En estos casos, Web Beans nos ofrece dos opciones:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "escribir un método de productor, o"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "declarar el Web Bean utilizando XML"

Modified: doc/trunk/reference/fr-FR/Author_Group.po
===================================================================
--- doc/trunk/reference/fr-FR/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 22:03+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,117 +14,120 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "Traduction italienne"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "Traduction espagnole"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "Red Hat Middleware LLC"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "Traduction coréenne"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "Traduction en chinois traditionnel"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, fuzzy, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, fuzzy, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "Traduction en chinois traditionnel"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "Red Hat Middleware LLC"

Modified: doc/trunk/reference/fr-FR/Book_Info.po
===================================================================
--- doc/trunk/reference/fr-FR/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 22:05+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,12 +16,18 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Injection de Contextes et de Dépendances Java"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
-msgstr "Le nouveau standard pour l'injection de dépendance et la gestion d'état contextuelle"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
+msgstr ""
+"Le nouveau standard pour l'injection de dépendance et la gestion d'état "
+"contextuelle"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Injection de Contextes et de Dépendances Java"

Added: doc/trunk/reference/fr-FR/beans.po
===================================================================
--- doc/trunk/reference/fr-FR/beans.po	                        (rev 0)
+++ doc/trunk/reference/fr-FR/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language fr-FR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/fr-FR/decorators.po
===================================================================
--- doc/trunk/reference/fr-FR/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 22:25+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,38 +14,69 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "Décorateurs"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
-msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
-msgstr "Les intercepteurs sont une manière puissante de capter et de séparer les problèmes qui sont <emphasis>orthogonaux</emphasis> au type de système. Tout intercepteur est capable d'intercepter les invocations à tout type Java. Cela les rend parfait pour résoudre des problèmes techniques tels que la gestion transactionnelle et la sécurité.Cependant, par nature, les intercepteurs ne sont pas conscients de la sémantique réelle des évênements qu'ils interceptent. En conséquence, les intercepteurs ne sont pas un outil approprié pour séparer problèmes <emphasis>métiers<emphasis>."
+#: decorators.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors are a powerful way to capture and separate concerns which are "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"Les intercepteurs sont une manière puissante de capter et de séparer les "
+"problèmes qui sont <emphasis>orthogonaux</emphasis> au type de système. Tout "
+"intercepteur est capable d'intercepter les invocations à tout type Java. "
+"Cela les rend parfait pour résoudre des problèmes techniques tels que la "
+"gestion transactionnelle et la sécurité.Cependant, par nature, les "
+"intercepteurs ne sont pas conscients de la sémantique réelle des évênements "
+"qu'ils interceptent. En conséquence, les intercepteurs ne sont pas un outil "
+"approprié pour séparer problèmes <emphasis>métiers<emphasis>."
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
-msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
-msgstr "L'inverse est vrai pour les <emphasis>décorateurs</emphasis>. Un décorateur intercepte les invocations uniquement pour une certain interface Java, et est donc conscient de toute la sémantique rattachée à cette interface. Cela fait des décorateurs un outil parfait pour modéliser certains concepts métiers. Cela veut aussi dire qu'un décorateur n'est pas aussi générique qu'un intercepteur. Les décorateurs ne sont pas capables de résoudres des problèmes techniques qui peuvent toucher des types très disparates."
+#: decorators.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
+"intercepts invocations only for a certain Java interface, and is therefore "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
+"that a decorator doesn't have the generality of an interceptor. Decorators "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"L'inverse est vrai pour les <emphasis>décorateurs</emphasis>. Un décorateur "
+"intercepte les invocations uniquement pour une certain interface Java, et "
+"est donc conscient de toute la sémantique rattachée à cette interface. Cela "
+"fait des décorateurs un outil parfait pour modéliser certains concepts "
+"métiers. Cela veut aussi dire qu'un décorateur n'est pas aussi générique "
+"qu'un intercepteur. Les décorateurs ne sont pas capables de résoudres des "
+"problèmes techniques qui peuvent toucher des types très disparates."
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "Supposez que nous ayons une interfaces représentant des comptes:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -56,43 +87,70 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
-msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
-msgstr "Plusieurs Web Beans distincts dans notre système implémentent l'interface <literal>Account</literal>. Nous avons cependant une obligation légale qui nous oblige à enregistrer les grosses transactions faites sur le système dans un journal spécial, et ce, pour tout type de compte. Ceci est un cas d'utilisation idéal d'un décorateur."
+#: decorators.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
+"any kind of account, large transactions must be recorded by the system in a "
+"special log. This is a perfect job for a decorator."
+msgstr ""
+"Plusieurs Web Beans distincts dans notre système implémentent l'interface "
+"<literal>Account</literal>. Nous avons cependant une obligation légale qui "
+"nous oblige à enregistrer les grosses transactions faites sur le système "
+"dans un journal spécial, et ce, pour tout type de compte. Ceci est un cas "
+"d'utilisation idéal d'un décorateur."
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
-msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
-msgstr "Un décorateur est un simple Web Bean qui implémente le type qu'il décore, et qui est annoté <literal>@Decorator</literal>."
+#: decorators.xml:34
+#, fuzzy, no-c-format
+msgid ""
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"Un décorateur est un simple Web Bean qui implémente le type qu'il décore, et "
+"qui est annoté <literal>@Decorator</literal>."
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -120,116 +178,245 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
-msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
-msgstr "Contrairement à d'autres Web Beans simples, un décorateur peut être une classe abstraite. Si le décorateur n'a rien de spécial à faire pour une méthode particulière d'une interface décorée, vous n'avez pas besoin d'implémenter cette méthode."
+#: decorators.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
+"there's nothing special the decorator needs to do for a particular method of "
+"the decorated interface, you don't need to implement that method."
+msgstr ""
+"Contrairement à d'autres Web Beans simples, un décorateur peut être une "
+"classe abstraite. Si le décorateur n'a rien de spécial à faire pour une "
+"méthode particulière d'une interface décorée, vous n'avez pas besoin "
+"d'implémenter cette méthode."
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"Les intercepteurs pour une méthode sont appelés avant les décorateurs qui "
+"s'appliquent à cette méthode."
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "Attributs de délégation"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
-msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
-msgstr "Tous les décorateurs ont un <emphasis>attribut de délégation</emphasis>. Le type et les types liés d'un attribut de délégation déterminent à quel Web Beans le décorateur est relié. Le type de l'attribut délégué doit implémenter ou étendre toutes les interfaces implémentées par le décorateur."
+msgid ""
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
-msgstr "L'attribut de délégation spécifie que le décorateur est lié à tous les Web Beans qui impémentent <literal>Account</literal>:"
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
-msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
-msgstr "Un attribut de délégation peut spécifier une annotation de liaison. Alors, le décorateur sera seulement lié à tous les Web Beans ayant la même liaison."
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
+msgstr "Un décorateur est lié à tout Web Bean qui:"
 
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+#. Tag: para
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr "a le type de l'attribut de délégation comme type d'API, et"
 
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
-msgstr "Un décorateur est lié à tout Web Bean qui:"
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+"a tous les types de liaison qui sont déclarés par l'attribut de délégation."
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
-msgstr "a le type de l'attribut de délégation comme type d'API, et"
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"L'attribut de délégation spécifie que le décorateur est lié à tous les Web "
+"Beans qui impémentent <literal>Account</literal>:"
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
-msgstr "a tous les types de liaison qui sont déclarés par l'attribut de délégation."
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"Un attribut de délégation peut spécifier une annotation de liaison. Alors, "
+"le décorateur sera seulement lié à tous les Web Beans ayant la même liaison."
 
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
-msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
-msgstr "Le décorateur peut invoquer l'attribut de délégation, qui a le même effet que d'appeler <literal>InvocationContext.proceed()</literal> à partir d'un intercepteur."
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"Le décorateur peut invoquer l'attribut de délégation, qui a le même effet "
+"que d'appeler <literal>InvocationContext.proceed()</literal> à partir d'un "
+"intercepteur."
 
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "Activation des décorateurs"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
-msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
-msgstr "Nous avons besoin d'<emphasis>activer</emphasis> notre décorateur dans le fichier <literal>web-beans.xml</literal>."
+msgid ""
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
-msgid "This declaration serves the same purpose for decorators that the <literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "Cette déclaration a le même but pour les décorateurs que la déclaration <literal>&lt;Interceptors&gt;</literal> pour les intercepteurs:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"Cette déclaration a le même but pour les décorateurs que la déclaration "
+"<literal>&lt;Interceptors&gt;</literal> pour les intercepteurs:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
-msgstr "cela nous permet de spécifier un ordre total pour tous les décorateurs dans notre système, assurant un comportement déterministe, et"
+msgid ""
+"it enables us to specify a total ordering for all decorators in our system, "
+"ensuring deterministic behavior, and"
+msgstr ""
+"cela nous permet de spécifier un ordre total pour tous les décorateurs dans "
+"notre système, assurant un comportement déterministe, et"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "cela nous permet d'activer ou désactiver les classes de décorateurs au moment du déploiement."
+msgstr ""
+"cela nous permet d'activer ou désactiver les classes de décorateurs au "
+"moment du déploiement."
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid "Interceptors for a method are called before decorators that apply to that method."
-msgstr "Les intercepteurs pour une méthode sont appelés avant les décorateurs qui s'appliquent à cette méthode."
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "Tous les décorateurs ont un <emphasis>attribut de délégation</emphasis>. "
+#~ "Le type et les types liés d'un attribut de délégation déterminent à quel "
+#~ "Web Beans le décorateur est relié. Le type de l'attribut délégué doit "
+#~ "implémenter ou étendre toutes les interfaces implémentées par le "
+#~ "décorateur."
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "Nous avons besoin d'<emphasis>activer</emphasis> notre décorateur dans le "
+#~ "fichier <literal>web-beans.xml</literal>."

Added: doc/trunk/reference/fr-FR/dependencies.po
===================================================================
--- doc/trunk/reference/fr-FR/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/fr-FR/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language fr-FR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/fr-FR/ee.po
===================================================================
--- doc/trunk/reference/fr-FR/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 22:49+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,33 +21,95 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
-msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
-msgstr "Les Web Beans sont totalement intégrés dans l'environnement Java EE. Les Web Beans ont accès aux ressources Java EE et aux contextes de persistance JPA. Ils peuvent être utilisés dans des expressions Unified EL dans des pages JSF et JSP. Ils peuvent même être injectés dans des certains objets, tels que les Servlets et les Message-Driven Beans, qui ne sont pas des Web Beans."
+#, fuzzy, no-c-format
+msgid ""
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Les Web Beans sont totalement intégrés dans l'environnement Java EE. Les Web "
+"Beans ont accès aux ressources Java EE et aux contextes de persistance JPA. "
+"Ils peuvent être utilisés dans des expressions Unified EL dans des pages JSF "
+"et JSP. Ils peuvent même être injectés dans des certains objets, tels que "
+"les Servlets et les Message-Driven Beans, qui ne sont pas des Web Beans."
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Injecter des ressources Java EE dans un Web Bean"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
-msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
-msgstr "Tous les Web Beans, qu'ils soient simples ou d'entreprise peuvent bénéficier de l'injection de dépendance de Java EE en utilisant <literal>@Resource</literal>; <literal>@EJB</literal> et <literal>@PersistenceContext</literal>. Nous avons déjà vu quelques exemples de cela, bien que nous n'y ayons pas fait attention sur le moment:"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:19
+#. Tag: para
+#: ee.xml:22
 #, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
 msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Injecter des ressources Java EE dans un Web Bean"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
+"examples of this, though we didn't pay much attention at the time:"
+msgstr ""
+"Tous les Web Beans, qu'ils soient simples ou d'entreprise peuvent bénéficier "
+"de l'injection de dépendance de Java EE en utilisant <literal>@Resource</"
+"literal>; <literal>@EJB</literal> et <literal>@PersistenceContext</literal>. "
+"Nous avons déjà vu quelques exemples de cela, bien que nous n'y ayons pas "
+"fait attention sur le moment:"
+
+#. Tag: programlisting
+#: ee.xml:56
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -55,22 +117,20 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -84,53 +144,68 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
-msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
-msgstr "Les rappels de Java EE <literal>@PostContruct</literal> et <literal>@PreDestroy</literal> sont également supportés pour tous les Web Beans, simples ou d'entreprise. La méthode <literal>@PostConstruct</literal> est appelée après que <emphasis>toute</emphasis> injection ait été effectuée."
+#: ee.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"Les rappels de Java EE <literal>@PostContruct</literal> et "
+"<literal>@PreDestroy</literal> sont également supportés pour tous les Web "
+"Beans, simples ou d'entreprise. La méthode <literal>@PostConstruct</literal> "
+"est appelée après que <emphasis>toute</emphasis> injection ait été effectuée."
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
-msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "Il y a une restriction dont vous devez être conscient: <literal>@PersistenceContext(type=EXTENDED)</literal> n'est pas supportée pour les Web Beans simples."
+msgid ""
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Appeler un Web Bean à partir d'un Servlet"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
-msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
-msgstr "Il est facile d'utiliser un Web Bean à partir d'une Servlet dans Java EE 6. Injectez simplement le Web Bean en utilisant les méthodes d'injection de champs ou de méthode d'initialisation."
+#: ee.xml:76
+#, fuzzy, no-c-format
+msgid ""
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"Il est facile d'utiliser un Web Bean à partir d'une Servlet dans Java EE 6. "
+"Injectez simplement le Web Bean en utilisant les méthodes d'injection de "
+"champs ou de méthode d'initialisation."
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -138,7 +213,8 @@
 "    @Current Login login;\n"
 "\n"
 "    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
 "        throws ServletException, IOException {\n"
 "        credentials.setUsername( request.getAttribute(\"username\") ):\n"
 "        credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -154,44 +230,54 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
-msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
-msgstr "Le client proxy Web Beans s'occupe du routage d'invocations de méthodes de la Servlet vers les bonnesi instances de <literal>Credentials</literal> et <literal>Login</literal> pour la requête courante et la session HTTP."
+#: ee.xml:83
+#, fuzzy, no-c-format
+msgid ""
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Le client proxy Web Beans s'occupe du routage d'invocations de méthodes de "
+"la Servlet vers les bonnesi instances de <literal>Credentials</literal> et "
+"<literal>Login</literal> pour la requête courante et la session HTTP."
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Appeler un Web Bean à partir d'un Message-Driven Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
-msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
-msgstr "L'injection de Web Beans s'applique à tous les EJBs, même ceux qui ne sont pas sous le contrôle du gestionnaire de Web Beans (s'ils ont été obtenus par une résolution direct par JNDI, ou par injection utilisant <literal>@EJB</literal>, par exemple). En particulier, vous pouvez utiliser l'injection de Web Beans dans des Message-Driven Beans, qui ne sont pas considérés comme des Web Beans car vous ne pouvez pas les injecter."
+msgid ""
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Vous pouvez même utiliser des liaisons d'intercepteurs de Web Beans avec des Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Vous pouvez même utiliser des liaisons d'intercepteurs de Web Beans avec des "
+"Message-Driven Beans."
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -206,85 +292,135 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
-msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "Donc, recevoir des messages est très facile dans un environnement Web Beans. Mais faites attention, il n'y a pas de session ni de contexte de conversation disponible lorsqu'un message est délivré à un Message-Driven Bean. Seuls les Web Beans <literal>@RequestScoped</literal> et <literal>@ApplicationScoped</literal> sont disponibles."
+#: ee.xml:103
+#, fuzzy, no-c-format
+msgid ""
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"Donc, recevoir des messages est très facile dans un environnement Web Beans. "
+"Mais faites attention, il n'y a pas de session ni de contexte de "
+"conversation disponible lorsqu'un message est délivré à un Message-Driven "
+"Bean. Seuls les Web Beans <literal>@RequestScoped</literal> et "
+"<literal>@ApplicationScoped</literal> sont disponibles."
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "Il est également facile d'envoyer des messages en utilisant des Web Beans."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "Terminaisons JMS"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
-msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
-msgstr "Envoyer des messages en utilisant JMS peut être assez complexe, à cause du nombre d'objets différents que vous devez traiter. Pour les queues, nous avons <literal>Queue</literal>; <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> et <literal>QueueSender</literal>. Pour les topics nous avons <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> et <literal>TopicPublisher</literal>. Chacun de ces objets a son propre cycle de vie et son modèle de threads dont nous devons nous soucier."
+msgid ""
+"Sending messages using JMS can be quite complex, because of the number of "
+"different objects you need to deal with. For queues we have <literal>Queue</"
+"literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
+"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
+"literal>. Each of these objects has its own lifecycle and threading model "
+"that we need to worry about."
+msgstr ""
+"Envoyer des messages en utilisant JMS peut être assez complexe, à cause du "
+"nombre d'objets différents que vous devez traiter. Pour les queues, nous "
+"avons <literal>Queue</literal>; <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> et "
+"<literal>QueueSender</literal>. Pour les topics nous avons <literal>Topic</"
+"literal>, <literal>TopicConnectionFactory</literal>, "
+"<literal>TopicConnection</literal>, <literal>TopicSession</literal> et "
+"<literal>TopicPublisher</literal>. Chacun de ces objets a son propre cycle "
+"de vie et son modèle de threads dont nous devons nous soucier."
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
-msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
-msgstr "Les Web Beans prennent en charge tout cela pour nous. Tout ce que nous avons à faire est de déclarer la queue ou le topic dans <literal>web-beans.xml</literal>, en spécifiant un type de liaison et une usine de connexion."
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
-msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
-msgstr "Maintenant, nous avons juste à injecter la <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> ou <literal>QueueSender</literal> pour une queue, ou le <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> pour un topic."
+msgid ""
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -295,45 +431,149 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
+#. Tag: para
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
 msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"Le cycle de vie des objects JMS injectés est complètement contrôlé par le "
+"gestionnaire de Web Beans."
 
-#. Tag: para
-#: ee.xml:100
-#, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
-msgstr "Le cycle de vie des objects JMS injectés est complètement contrôlé par le gestionnaire de Web Beans."
-
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "Paquetage et déploiement"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
-msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
-msgstr "Les Web Beans ne définissent aucune archive spéciale pour le déploiement. Vous pouvez paqueter des Web Beans dans des JARs, des EJB-JARs ou des WARs : tout emplacement de déploiement dans le classpath de l'application. Cependant, chaque archive contenant des Web Beans doit contenir un fichier nommé <literal>web-beans.xml</literal> dans le dossier <literal>META-INF</literal> ou <literal>WEB-INF</literal>. Le fichier peut être vide. Les Web Beans déployés dans des archives n'ayant pas de fichier <literal>web-beans.xml</literal> ne seront pas disponibles pour utilisation dans l'application."
+#: ee.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"Les Web Beans ne définissent aucune archive spéciale pour le déploiement. "
+"Vous pouvez paqueter des Web Beans dans des JARs, des EJB-JARs ou des WARs : "
+"tout emplacement de déploiement dans le classpath de l'application. "
+"Cependant, chaque archive contenant des Web Beans doit contenir un fichier "
+"nommé <literal>web-beans.xml</literal> dans le dossier <literal>META-INF</"
+"literal> ou <literal>WEB-INF</literal>. Le fichier peut être vide. Les Web "
+"Beans déployés dans des archives n'ayant pas de fichier <literal>web-beans."
+"xml</literal> ne seront pas disponibles pour utilisation dans l'application."
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
-msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Pour une exécution Java SE, les Web Beans peuvent être déployés dans tout emplacement dans lequel des EJBs peuvent être déployés pour exécution par le conteneur d'EJB lite. De nouveau, chaque emplacement doit contenir un fichier <literal>web-beans.xml</literal>."
+#: ee.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Pour une exécution Java SE, les Web Beans peuvent être déployés dans tout "
+"emplacement dans lequel des EJBs peuvent être déployés pour exécution par le "
+"conteneur d'EJB lite. De nouveau, chaque emplacement doit contenir un "
+"fichier <literal>web-beans.xml</literal>."
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "Il y a une restriction dont vous devez être conscient: "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal> n'est pas supportée "
+#~ "pour les Web Beans simples."
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "L'injection de Web Beans s'applique à tous les EJBs, même ceux qui ne "
+#~ "sont pas sous le contrôle du gestionnaire de Web Beans (s'ils ont été "
+#~ "obtenus par une résolution direct par JNDI, ou par injection utilisant "
+#~ "<literal>@EJB</literal>, par exemple). En particulier, vous pouvez "
+#~ "utiliser l'injection de Web Beans dans des Message-Driven Beans, qui ne "
+#~ "sont pas considérés comme des Web Beans car vous ne pouvez pas les "
+#~ "injecter."
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr ""
+#~ "Il est également facile d'envoyer des messages en utilisant des Web Beans."
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Les Web Beans prennent en charge tout cela pour nous. Tout ce que nous "
+#~ "avons à faire est de déclarer la queue ou le topic dans <literal>web-"
+#~ "beans.xml</literal>, en spécifiant un type de liaison et une usine de "
+#~ "connexion."
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "Maintenant, nous avons juste à injecter la <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> ou "
+#~ "<literal>QueueSender</literal> pour une queue, ou le <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> pour un topic."
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/fr-FR/environments.po
===================================================================
--- doc/trunk/reference/fr-FR/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/fr-FR/events.po
===================================================================
--- doc/trunk/reference/fr-FR/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 23:28+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,267 +22,418 @@
 #. Tag: para
 #: events.xml:6
 #, no-c-format
-msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
-msgstr "La structure de notification d'évènement des Web Beans permet aux Web Beans d'interagir de manière totalement découplée. Les <emphasis>producteurs</emphasis> d'évènements lèvent des évènements qui sont ensuite délivrés aux <emphasis>observateurs</emphasis> d'évènements par le gestionnaire de Web Beans. Le schéma basique peut ressembler au patron observateur/observé, mais il y a quelques modifications:"
+msgid ""
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
-msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
-msgstr "non seulement les producteurs d'évènements sont découplés des observauters; mais les les observateurs sont complèment découplés des producteurs,"
+msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
 
 #. Tag: para
 #: events.xml:18
 #, no-c-format
-msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
-msgstr "les observateurs peuvent spécifier une combinaison de \"sélécteurs\" pour limiter le nobmre de notifications d'évènemtns qu'ils vont recevoir, et"
+msgid ""
+"not only are event producers decoupled from observers; observers are "
+"completely decoupled from producers,"
+msgstr ""
+"non seulement les producteurs d'évènements sont découplés des observauters; "
+"mais les les observateurs sont complèment découplés des producteurs,"
 
 #. Tag: para
 #: events.xml:22
 #, no-c-format
-msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
-msgstr "les observateurs peuvent être notifiés immédiatement, ou peuvent spécifier que la délivrance d'un évènement devrait être retardé jusqu'à la fin de la transaction courante"
+msgid ""
+"observers can specify a combination of \"selectors\" to narrow the set of "
+"event notifications they will receive, and"
+msgstr ""
+"les observateurs peuvent spécifier une combinaison de \"sélécteurs\" pour "
+"limiter le nobmre de notifications d'évènemtns qu'ils vont recevoir, et"
 
-#. Tag: title
+#. Tag: para
 #: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "Observateurs d'évènements"
+#, fuzzy, no-c-format
+msgid ""
+"observers can be notified immediately, or can specify that delivery of the "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"les observateurs peuvent être notifiés immédiatement, ou peuvent spécifier "
+"que la délivrance d'un évènement devrait être retardé jusqu'à la fin de la "
+"transaction courante"
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
-msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
-msgstr "Un <emphasis>méthode observatrice</emphasis> est une méthode d'un Web Bean avec un paramètre annoté <literal>@Observes</literal>."
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "Producteurs d'évènements"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgid ""
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
+msgstr ""
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
-msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "Le paramètre annoté est appelé le <emphasis>paramètre évènement</emphasis>. Le type de paramètre évènement est le <emphasis>type de l'évènement</emphasis> observé. Les méthodes observatrices peuvent également spécifier des \"sélecteurs\", qui sont juste des instances de tyoes de liaison de Web Beans. Quand un type de liaison est utilisé comme un sélecteur d'évènement, il est applé un <emphasis>type de liaison d'évènement</emphasis>."
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
-#. Tag: para
-#: events.xml:43
+#. Tag: title
+#: events.xml:57
 #, no-c-format
-msgid "We specify the event bindings of the observer method by annotating the event parameter:"
-msgstr "Nous spécifions les liaisons d'évènements de la méthode observatrice en annotant le paramètre d'évènement:"
+msgid "Event observers"
+msgstr "Observateurs d'évènements"
 
+#. Tag: para
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"Un <emphasis>méthode observatrice</emphasis> est une méthode d'un Web Bean "
+"avec un paramètre annoté <literal>@Observes</literal>."
+
 #. Tag: programlisting
-#: events.xml:46
-#: events.xml:190
+#: events.xml:64
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"Le paramètre annoté est appelé le <emphasis>paramètre évènement</emphasis>. "
+"Le type de paramètre évènement est le <emphasis>type de l'évènement</"
+"emphasis> observé. Les méthodes observatrices peuvent également spécifier "
+"des \"sélecteurs\", qui sont juste des instances de tyoes de liaison de Web "
+"Beans. Quand un type de liaison est utilisé comme un sélecteur d'évènement, "
+"il est applé un <emphasis>type de liaison d'évènement</emphasis>."
+
+#. Tag: programlisting
+#: events.xml:72 events.xml:240
 #, no-c-format
-msgid "An observer method need not specify any event bindings &#151; in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
-msgstr "Il n'est pas obligatoire de spécifier une quelconque liaison d'évènement sur une méthode observatrice : dans ce cas elle s'intéresse à <emphasis>tous</emphasis> les évènements d'un type particulier. Si elle spécifie des liaisons d'évènements, elle s'intéresse uniquement aux évènements qui ont ces liaisons d'évènements."
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
-msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
-msgstr "La méthode observatrice peut avoir des paramètres additionnels, qui sont injectés en fonction de la sémantique usuelle d'injection de paramètres des méthodes de Web Beans:"
+#: events.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"Il n'est pas obligatoire de spécifier une quelconque liaison d'évènement sur "
+"une méthode observatrice : dans ce cas elle s'intéresse à <emphasis>tous</"
+"emphasis> les évènements d'un type particulier. Si elle spécifie des "
+"liaisons d'évènements, elle s'intéresse uniquement aux évènements qui ont "
+"ces liaisons d'évènements."
 
+#. Tag: para
+#: events.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"La méthode observatrice peut avoir des paramètres additionnels, qui sont "
+"injectés en fonction de la sémantique usuelle d'injection de paramètres des "
+"méthodes de Web Beans:"
+
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "Producteurs d'évènements"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
-msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
-msgstr "Le producteur d'évènement peut obtenir un objet de <emphasis>notification d'évènement</emphasis> par injection:"
+msgid ""
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
-msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
-msgstr "L'annotation <literal>@Observable</literal> spécifie implicitement un Web Bean ayant la portée <literal>@Dependant</literal> et un type de déploiement <literal>@Standard</literal>, avec une implémentation fournie par le gestionnaire de Web Beans."
+#: events.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"Un producteur lève des évènements en appelant la méthode <literal>fire()</"
+"literal> de l'interface <literal>Event</literal, en passant un "
+"<emphasis>objet évènement</literal>:"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
-msgstr "Un producteur lève des évènements en appelant la méthode <literal>fire()</literal> de l'interface <literal>Event</literal, en passant un <emphasis>objet évènement</literal>:"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
-msgstr "Un objet évènement peut être une instance de n'importe quel classe Java qui n'a pas de paramètres de type variable ou wildcard. L'évènement sera délivré à toute méthode observatrice qui:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "Un évènement sera délivré à toute méthode observatrice qui:"
 
 #. Tag: para
-#: events.xml:83
-#: events.xml:107
-#: events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
-msgstr "a un paramètre d'évènement pour lequel l'objet évènement est assignable, et"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
+msgstr ""
+"a un paramètre d'évènement pour lequel l'objet évènement est assignable, et"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "ne spécifie aucune liaison d'évènement."
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
-msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Le gestionnaire de Web Beans appelle simplement toutes les méthodes observatrices, en passant l'objet évènement comme valeur du paramètre évènement. Si un méthode observatrice lance une exception, le gestionnaire de Web Beans arrête d'appeler les méthodes observaterices, et l'exception est relancée par la méthode <literal>fire()</literal>."
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Le gestionnaire de Web Beans appelle simplement toutes les méthodes "
+"observatrices, en passant l'objet évènement comme valeur du paramètre "
+"évènement. Si un méthode observatrice lance une exception, le gestionnaire "
+"de Web Beans arrête d'appeler les méthodes observaterices, et l'exception "
+"est relancée par la méthode <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
-msgstr "Pour spécifier un \"sélecteur\", le producteur d'évènement peut passer une instance d'un type de liaison d'évènement à la méthode <literal>fire()</literal>:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
-msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
-msgstr "La classe d'aide <literal>AnnotationLiteral</literal> rend possible d'instancier des types de liaison à la volée, car cela est autrement difficile à faire en Java."
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "Un évènement sera délivré à toute méthode observatrice qui:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
-msgstr "ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> pour les liaision d'évènements passées à <literal>fire()</literal>."
+#: events.xml:144
+#, fuzzy, no-c-format
+msgid ""
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"Tous les évènements déclenchés par cette instance d'<literal>Event</literal> "
+"ont la liaison d'évènement. L'évènement sera délivré à toutes méthode "
+"observatrice qui:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
-msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
-msgstr "Alternativement, les liaisons d'évènements peuvent être spécifiées en annotant les points d'injection d'évènement:"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr ""
+"a un paramètre d'évènement pour lequel l'objet évènement est assignable, et"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
+msgid ""
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> pour "
+"les liaision d'évènements passées à <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
-msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
-msgstr "Tous les évènements déclenchés par cette instance d'<literal>Event</literal> ont la liaison d'évènement. L'évènement sera délivré à toutes méthode observatrice qui:"
+msgid ""
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
-msgstr "ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> les liaisons d'évènements passées à <literal>fire()</literal> ou les liaisons d'évènement annotées du point d'injection de notificateur d'évènement."
+msgid ""
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "Observateurs transactionnels"
+
+#. Tag: para
+#: events.xml:180
 #, no-c-format
-msgid "Registering observers dynamically"
-msgstr "Enregistrer des observateurs dynamiquement"
+msgid ""
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:186
 #, no-c-format
-msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
-msgstr "Il est souvent utile d'enregistrer dynamiquement un observateur d'évènement. L'application peut implémenter l'interface <literal>Observer</literal> et enregistrer une instance avec un notificateur d'évènement en appelant la méthode <literal>observe()</literal>."
+msgid ""
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:144
-#, no-c-format
-msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
-msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+#: events.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:146
+#: events.xml:193
 #, no-c-format
-msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
-msgstr "Les types de liaison d'évènement peuvent être spécifiés par le point d'injection du notificateur d'évènements ou en passant des instances du type de liaison d'évènement à la méthode <literal>observe()</literal>:"
-
-#. Tag: programlisting
-#: events.xml:149
-#, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "Liaison d'évènement avec des membres"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "Un type de liaison d'évènement peut avoir des membres d'annotation:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -293,186 +444,282 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "la valeur membre est utilisée pour préciser d'avantage les messages délivrés à l'observateur:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"la valeur membre est utilisée pour préciser d'avantage les messages délivrés "
+"à l'observateur:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
-msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
-msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgid ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
-msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
-msgstr "Les membres de type de liaison d'évènement peuvent être spécifiés statiquement par le producteur d'évènement, par des annotations au point d'injection du notificateur d'évènement:"
+#: events.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Event qualifier type members may be specified statically by the event "
+"producer, via annotations at the event notifier injection point:"
+msgstr ""
+"Les membres de type de liaison d'évènement peuvent être spécifiés "
+"statiquement par le producteur d'évènement, par des annotations au point "
+"d'injection du notificateur d'évènement:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
-msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
-msgstr "Alternativement, la valeur du membre du type de liaision d'évènement peut être déterminée dynamiquement par le producteur d'évènement.Commençons par écrire une sous-classe abstraite de <literal>AnnotationLiteral</literal>:"
+#: events.xml:217
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"Alternativement, la valeur du membre du type de liaision d'évènement peut "
+"être déterminée dynamiquement par le producteur d'évènement.Commençons par "
+"écrire une sous-classe abstraite de <literal>AnnotationLiteral</literal>:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
-msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
-msgstr "Le producteur d'évènement passe une instance de cette class à <literal>fire()</literal>:"
+#: events.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"The event producer passes an instance of this class to <literal>select()</"
+"literal>:"
+msgstr ""
+"Le producteur d'évènement passe une instance de cette class à <literal>fire()"
+"</literal>:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+#: events.xml:226
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "Plusieurs liaisons d'évènements"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "Les types de liaison d'évènement peuvent être combinés, par exemple:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
-msgid "When this event occurs, all of the following observer methods will be notified:"
-msgstr "Quand cet évènement se product, toutes méthodes observatrices seront notifiées:"
+msgid ""
+"When this event occurs, all of the following observer methods will be "
+"notified:"
+msgstr ""
+"Quand cet évènement se product, toutes méthodes observatrices seront "
+"notifiées:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
-msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
-msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "Observateurs transactionnels"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
-msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
-msgstr "Les Observateurs transactionnels recoivent des notifications d'évènements avant ou après la complétion d'une phase de la transaction dans laquelle l'évènement a été levé. Par exemple, la méthode observatrice suivante a besoin de rafraîchir un ensemble de résultat de requête qui est cachée dans le contexte de l'application, mais seulement quand les transactions qui mettent à jour l'arbre <literal>Category</literal> réussissent:"
+msgid ""
+"Transactional observers receive their event notifications during the before "
+"or after completion phase of the transaction in which the event was raised. "
+"For example, the following observer method needs to refresh a query result "
+"set that is cached in the application context, but only when transactions "
+"that update the <literal>Category</literal> tree succeed:"
+msgstr ""
+"Les Observateurs transactionnels recoivent des notifications d'évènements "
+"avant ou après la complétion d'une phase de la transaction dans laquelle "
+"l'évènement a été levé. Par exemple, la méthode observatrice suivante a "
+"besoin de rafraîchir un ensemble de résultat de requête qui est cachée dans "
+"le contexte de l'application, mais seulement quand les transactions qui "
+"mettent à jour l'arbre <literal>Category</literal> réussissent:"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
-msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
-msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+#: events.xml:256
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
+"CategoryUpdateEvent event) { ... }]]>"
+msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "Il y a trois sortes d'observateurs transactionnels:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
-msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
-msgstr "Les observateurs <literal>@AfterTransactionSuccess</literal> sont appelés après la complétion d'une phase de la transaction, mais seulement si la transaction se termine avec succès"
+msgid ""
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
-msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
-msgstr "Les observateurs <literal>@AfterTransactionFailure</literal> sont appelés après la complétion d'une phase de la transaction, mais seulement si la transaction ne se termine pas correctement"
+#: events.xml:265
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"Les observateurs <literal>@AfterTransactionSuccess</literal> sont appelés "
+"après la complétion d'une phase de la transaction, mais seulement si la "
+"transaction se termine avec succès"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
-msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
-msgstr "Les observateurs <literal>@AfterTransactionCompletion</literal> sont appelés après la complétion de la phase de la transaction"
+#: events.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"Les observateurs <literal>@AfterTransactionFailure</literal> sont appelés "
+"après la complétion d'une phase de la transaction, mais seulement si la "
+"transaction ne se termine pas correctement"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
-msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
-msgstr "Les observateurs <literal>@BeforeTransactionCompletion</literal> sont appelés avant la complétion de la phase de la transaction"
+#: events.xml:277
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"Les observateurs <literal>@AfterTransactionCompletion</literal> sont appelés "
+"après la complétion de la phase de la transaction"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
-msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
-msgstr "Les observateurs transactionels sont très importants dans un modèle d'objets à état tel que Web Beans, parce que l'état est souvent maintenu plus longtemps qu'une simple transaction atomique."
+#: events.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"Les observateurs <literal>@BeforeTransactionCompletion</literal> sont "
+"appelés avant la complétion de la phase de la transaction"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"Les observateurs transactionels sont très importants dans un modèle d'objets "
+"à état tel que Web Beans, parce que l'état est souvent maintenu plus "
+"longtemps qu'une simple transaction atomique."
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "Imaginez que nous ayons caché un ensemble de résultats de requête JPA dans la portée application:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"Imaginez que nous ayons caché un ensemble de résultats de requête JPA dans "
+"la portée application:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -486,7 +733,8 @@
 "    @Produces @Catalog \n"
 "    List<Product> getCatalog() {\n"
 "        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
 "                .getResultList();\n"
 "        }\n"
 "        return products;\n"
@@ -495,39 +743,51 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
-msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
-msgstr "De temps en temps, un <literal>Product</literal> est créé ou détruit. Quand cela survient, nous avons besoin de rafraîchir le catalogue de <literal>Product</literal>. Mais nous devrions attendre jusqu'à <emphasis>après</emphasis> que la transaction se soit finie avec succès avant d'éxécuter ce rafraîchissement!"
+msgid ""
+"From time to time, a <literal>Product</literal> is created or deleted. When "
+"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
+"we should wait until <emphasis>after</emphasis> the transaction completes "
+"successfully before performing this refresh!"
+msgstr ""
+"De temps en temps, un <literal>Product</literal> est créé ou détruit. Quand "
+"cela survient, nous avons besoin de rafraîchir le catalogue de "
+"<literal>Product</literal>. Mais nous devrions attendre jusqu'à "
+"<emphasis>après</emphasis> que la transaction se soit finie avec succès "
+"avant d'éxécuter ce rafraîchissement!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
-msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
-msgstr "Le Web Brans qui crée et détruit les <literal>Product</literal>s pourrait lever des évènements, par exemple:"
+#: events.xml:305
+#, fuzzy, no-c-format
+msgid ""
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"Le Web Brans qui crée et détruit les <literal>Product</literal>s pourrait "
+"lever des évènements, par exemple:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -551,28 +811,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
-msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
-msgstr "Et maintenant <literal>Catalog</literal> peut observer les évènements après l'éxecution avec succès de la transaction:"
+msgid ""
+"And now <literal>Catalog</literal> can observe the events after successful "
+"completion of the transaction:"
+msgstr ""
+"Et maintenant <literal>Catalog</literal> peut observer les évènements après "
+"l'éxecution avec succès de la transaction:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
+"product) {\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
-"        products.add(product);\n"
-"    }\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
+"product) {\n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -580,13 +843,137 @@
 "\n"
 "    ...\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
 "        products.add(product);\n"
 "    }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
 "        products.remove(product);\n"
 "    }\n"
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "La structure de notification d'évènement des Web Beans permet aux Web "
+#~ "Beans d'interagir de manière totalement découplée. Les "
+#~ "<emphasis>producteurs</emphasis> d'évènements lèvent des évènements qui "
+#~ "sont ensuite délivrés aux <emphasis>observateurs</emphasis> d'évènements "
+#~ "par le gestionnaire de Web Beans. Le schéma basique peut ressembler au "
+#~ "patron observateur/observé, mais il y a quelques modifications:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "Nous spécifions les liaisons d'évènements de la méthode observatrice en "
+#~ "annotant le paramètre d'évènement:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "Le producteur d'évènement peut obtenir un objet de <emphasis>notification "
+#~ "d'évènement</emphasis> par injection:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "L'annotation <literal>@Observable</literal> spécifie implicitement un Web "
+#~ "Bean ayant la portée <literal>@Dependant</literal> et un type de "
+#~ "déploiement <literal>@Standard</literal>, avec une implémentation fournie "
+#~ "par le gestionnaire de Web Beans."
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Un objet évènement peut être une instance de n'importe quel classe Java "
+#~ "qui n'a pas de paramètres de type variable ou wildcard. L'évènement sera "
+#~ "délivré à toute méthode observatrice qui:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "Pour spécifier un \"sélecteur\", le producteur d'évènement peut passer "
+#~ "une instance d'un type de liaison d'évènement à la méthode <literal>fire()"
+#~ "</literal>:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "La classe d'aide <literal>AnnotationLiteral</literal> rend possible "
+#~ "d'instancier des types de liaison à la volée, car cela est autrement "
+#~ "difficile à faire en Java."
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "Alternativement, les liaisons d'évènements peuvent être spécifiées en "
+#~ "annotant les points d'injection d'évènement:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> les "
+#~ "liaisons d'évènements passées à <literal>fire()</literal> ou les liaisons "
+#~ "d'évènement annotées du point d'injection de notificateur d'évènement."
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "Enregistrer des observateurs dynamiquement"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "Il est souvent utile d'enregistrer dynamiquement un observateur "
+#~ "d'évènement. L'application peut implémenter l'interface "
+#~ "<literal>Observer</literal> et enregistrer une instance avec un "
+#~ "notificateur d'évènement en appelant la méthode <literal>observe()</"
+#~ "literal>."
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "Les types de liaison d'évènement peuvent être spécifiés par le point "
+#~ "d'injection du notificateur d'évènements ou en passant des instances du "
+#~ "type de liaison d'évènement à la méthode <literal>observe()</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/fr-FR/example.po
===================================================================
--- doc/trunk/reference/fr-FR/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-04 23:07+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,17 +21,23 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
-msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
-msgstr "Illustrons ces idées avec un exemple complet. Nous allons implémenter la connexion/déconnexion d'un utilisateur à une application utilisant JSF. D'abord, nous allons définir un Web Bean pour stocker le nom d'utilisateur et le mot de passe saisis lors de l'identification:"
+#, fuzzy, no-c-format
+msgid ""
+"Let's illustrate these ideas with a full example. We're going to implement "
+"user login/logout for an application that uses JSF. First, we'll define a "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"Illustrons ces idées avec un exemple complet. Nous allons implémenter la "
+"connexion/déconnexion d'un utilisateur à une application utilisant JSF. "
+"D'abord, nous allons définir un Web Bean pour stocker le nom d'utilisateur "
+"et le mot de passe saisis lors de l'identification:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -40,7 +46,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -59,23 +64,26 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Ce Web Bean est lié à l'invite de connexion dans le formulaire JSF suivant:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"Ce Web Bean est lié à l'invite de connexion dans le formulaire JSF suivant:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
 "<![CDATA[<h:form>\n"
@@ -85,53 +93,63 @@
 "        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
 "        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
 "    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
-msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
-msgstr "La tâche réelle est effectuée par un Web Bean de portée session qui maintient l'information à propos de l'utilisateur actuellement connecté et expose l'entité <literal>User</literal> aux autres Web Beans:"
+#, fuzzy, no-c-format
+msgid ""
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"La tâche réelle est effectuée par un Web Bean de portée session qui "
+"maintient l'information à propos de l'utilisateur actuellement connecté et "
+"expose l'entité <literal>User</literal> aux autres Web Beans:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -146,7 +164,8 @@
 "    public void login() {\n"
 "            \n"
 "        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
 "           .setParameter(\"username\", credentials.getUsername())\n"
 "           .setParameter(\"password\", credentials.getPassword())\n"
 "           .getResultList();\n"
@@ -172,19 +191,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "Evidemment, <literal>@LoggedIn</literal> est une annotation de liaison:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -192,26 +227,45 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "Maintenant, n'importe quel autre Web Bean peut facilement injecter l'utilisateur courant:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"Maintenant, n'importe quel autre Web Bean peut facilement injecter "
+"l'utilisateur courant:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -228,8 +282,31 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
-msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
-msgstr "Cet exemple vous donne une idée du modèle de programmation Web Bean. Dans le prochain chapitre, nous explorerons l'injection de dépendance des Web Beans plus en détail."
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
 
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
+msgid ""
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"Cet exemple vous donne une idée du modèle de programmation Web Bean. Dans le "
+"prochain chapitre, nous explorerons l'injection de dépendance des Web Beans "
+"plus en détail."
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr ""
+#~ "Evidemment, <literal>@LoggedIn</literal> est une annotation de liaison:"

Modified: doc/trunk/reference/fr-FR/extend.po
===================================================================
--- doc/trunk/reference/fr-FR/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-04 23:17+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,280 +14,295 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Etendre les Web Beans"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
-msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
-msgstr "Les Web Beans sont conçus pour être une plateforme pour des frameworks, des extensions et l'intégration avec d'autres technologies. Pour cela, les Web Beans exposent une série de SPIs pour l'usage des développeurs d'extensions portables aux Web Beans. Par exemple, les sortes d'extensions suivantes furent envisagées par les concepteurs des Web Beans:"
+#: extend.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Les Web Beans sont conçus pour être une plateforme pour des frameworks, des "
+"extensions et l'intégration avec d'autres technologies. Pour cela, les Web "
+"Beans exposent une série de SPIs pour l'usage des développeurs d'extensions "
+"portables aux Web Beans. Par exemple, les sortes d'extensions suivantes "
+"furent envisagées par les concepteurs des Web Beans:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "intégration avec des moteurs de gestion de processus métiers (BPM),"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
-msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
-msgstr "intégration avec des frameworks tiers tels que Spring, Seam, SWT ou Wicket, et"
+msgid ""
+"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
+"and"
+msgstr ""
+"intégration avec des frameworks tiers tels que Spring, Seam, SWT ou Wicket, "
+"et"
 
 #. Tag: para
-#: extend.xml:21
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
+msgstr ""
+"une nouvelle nouvelle technologie basée sur le modèle de programmation des "
+"Web Beans."
+
+#. Tag: para
+#: extend.xml:27
 #, no-c-format
-msgid "new technology based upon the Web Beans programming model."
-msgstr "une nouvelle nouvelle technologie basée sur le modèle de programmation des Web Beans."
+msgid "More formally, according to the spec:"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:32
 #, no-c-format
-msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
-msgstr "Le centre nerveux pour l'extension des Web Beans est l'objet <literal>Manager</literal>."
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
 
-#. Tag: title
-#: extend.xml:29
+#. Tag: para
+#: extend.xml:35
 #, no-c-format
-msgid "The <literal>Manager</literal> object"
-msgstr "L'object <literal>Manager</literal>"
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:31
+#: extend.xml:40
 #, no-c-format
-msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "L'interface <literal>Manager</literal> nous permet d'enregistrer et d'obtenir des Web Beans, intercepteurs, décorateurs, observateurs et contextes de manière programmatique."
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
 
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object."
+msgstr ""
+"Le centre nerveux pour l'extension des Web Beans est l'objet "
+"<literal>Manager</literal>."
+
+#. Tag: title
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
+msgstr "L'object <literal>Manager</literal>"
+
+#. Tag: para
+#: extend.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"L'interface <literal>Manager</literal> nous permet d'enregistrer et "
+"d'obtenir des Web Beans, intercepteurs, décorateurs, observateurs et "
+"contextes de manière programmatique."
+
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "Nous pouvons obtenir une instance d'un <literal>Manager</literal> par injection:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"Nous pouvons obtenir une instance d'un <literal>Manager</literal> par "
+"injection:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "La classe <literal>Bean</literal>"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
-msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
-msgstr "Les instances de la class abstraite <literal>Bean</literal> représentent les Web Beans. Il y a une instance de <literal>Bean</literal> enregistrée auprès de l'objet <literal>Manager</literal> pour chaque Web Bean dans l'application."
+#: extend.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+"Le centre nerveux pour l'extension des Web Beans est l'objet "
+"<literal>Manager</literal>."
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "L'interface <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"Les instances de la class abstraite <literal>Bean</literal> représentent les "
+"Web Beans. Il y a une instance de <literal>Bean</literal> enregistrée auprès "
+"de l'objet <literal>Manager</literal> pour chaque Web Bean dans "
+"l'application."
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
-msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
-msgstr "Il est possible d'étendre la classe <literal>Bean</literal> et d'enregistrer des instances en appelant la méthode <literal>Manager.addBean()</literal> afin de supporter de nouvelles sortes de Web Beans, en plus de ceux déjà définis dans la spécification Web Beans (Web Beans simple et d'entreprise, méthode productrices et terminaisons JMS). Par exemple, nous pourrions utiliser la classe <literal>Bean</literal> pour permettre aux objets gérés par un autre framework d'être injectés dans des Web Beans."
+#: extend.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"Il est possible d'étendre la classe <literal>Bean</literal> et d'enregistrer "
+"des instances en appelant la méthode <literal>Manager.addBean()</literal> "
+"afin de supporter de nouvelles sortes de Web Beans, en plus de ceux déjà "
+"définis dans la spécification Web Beans (Web Beans simple et d'entreprise, "
+"méthode productrices et terminaisons JMS). Par exemple, nous pourrions "
+"utiliser la classe <literal>Bean</literal> pour permettre aux objets gérés "
+"par un autre framework d'être injectés dans des Web Beans."
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
-msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
-msgstr "Il y a deux sous-classes de <literal>Bean</literal> définies par la spécification Web Beans: <literal>Interceptor</literal> et <literal>Decorator</literal>."
+#: extend.xml:104
+#, fuzzy, no-c-format
+msgid ""
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
+"specification: <literal>Interceptor</literal> and <literal>Decorator</"
+"literal>."
+msgstr ""
+"Il y a deux sous-classes de <literal>Bean</literal> définies par la "
+"spécification Web Beans: <literal>Interceptor</literal> et "
+"<literal>Decorator</literal>."
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "L'interface <literal>Context</literal>"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
-msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
-msgstr "L'interface <literal>Context</literal> supporte l'ajout de nouvelles portées aux Web Beans, ou d'extensions des portées fournies à de nouveaux environnements."
+#: extend.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Context</literal> interface supports addition of new scopes to "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"L'interface <literal>Context</literal> supporte l'ajout de nouvelles portées "
+"aux Web Beans, ou d'extensions des portées fournies à de nouveaux "
+"environnements."
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -300,8 +315,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
-msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
-msgstr "Par exemple, nous pourrions implémenter <literal>Context</literal> pour ajouter une portée de type processus métier aux Web Beans, ou pour ajouter le support d'une portée conversation à une application qui utilise Wicket."
+#: extend.xml:121
+#, fuzzy, no-c-format
+msgid ""
+"For example, we might implement <literal>Context</literal> to add a business "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"Par exemple, nous pourrions implémenter <literal>Context</literal> pour "
+"ajouter une portée de type processus métier aux Web Beans, ou pour ajouter "
+"le support d'une portée conversation à une application qui utilise Wicket."
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Etendre les Web Beans"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "La classe <literal>Bean</literal>"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/fr-FR/extensions.po
===================================================================
--- doc/trunk/reference/fr-FR/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/fr-FR/gettingstarted.po
===================================================================
--- doc/trunk/reference/fr-FR/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,1739 +14,929 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
+#: gettingstarted.xml:5
 #, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
+msgid "Getting started with Weld"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
+#: gettingstarted.xml:7
 #, no-c-format
 msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:13
+#: gettingstarted.xml:16
 #, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:25
+#. Tag: title
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "the latest release of Web Beans,"
+msgid "Prerequisites"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:24
 #, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:30
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid "the latest release of Weld, which contains the examples"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:34
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "Ant 1.7.0."
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:39
+#. Tag: para
+#: gettingstarted.xml:36
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:42
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+msgid "GlassFish 3.0,"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
+#: gettingstarted.xml:45
 #, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:53
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:66
+#: gettingstarted.xml:58
 #, no-c-format
 msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:64
 #, no-c-format
 msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
-#, no-c-format
-msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:80
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, no-c-format
-msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:76
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:98
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid "Deploying to JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:104
+#: gettingstarted.xml:83
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:92
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:115
-#, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:120
-#, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:127
-#, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:108
 #, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:140
+#: gettingstarted.xml:110
 #, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
+msgid "You're now ready to deploy your first example!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:150
-#, no-c-format
-msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:119
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:121
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:167
-#, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:169
-#, no-c-format
-msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:175
+#: gettingstarted.xml:125
 #, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:185
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+msgid "a Windows command window:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:191
+#: gettingstarted.xml:131
 #, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:194
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:138
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:206
+#: gettingstarted.xml:145
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:152
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:158
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:222
+#: gettingstarted.xml:163
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+"<literal>ant explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:227
+#: gettingstarted.xml:168
 #, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:234
-#, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:238
-#, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:173
 #, no-c-format
-msgid "Start Tomcat:"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
-#, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:178
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:185
 #, no-c-format
-msgid "TODO"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:268
-#, no-c-format
 msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:274
-#, no-c-format
-msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:280
-#, no-c-format
-msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:191
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:194
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:200
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr ""
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:399
+#: gettingstarted.xml:206
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:405
+#. Tag: title
+#: gettingstarted.xml:213
 #, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+msgid "Deploying to GlassFish"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:215
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:420
+#: gettingstarted.xml:231
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:240
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
-msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:440
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:443
-#, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:248
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:461
-#, no-c-format
-msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:467
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:472
-#, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:482
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:488
-#, no-c-format
-msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
-msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
-msgstr ""
-
 #. Tag: title
-#: gettingstarted.xml:505
+#: gettingstarted.xml:285
 #, no-c-format
-msgid "Creating the Eclipse project"
+msgid "Deploying to Apache Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:507
+#: gettingstarted.xml:287
 #, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:513
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:297
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
+#. Tag: programlisting
+#: gettingstarted.xml:302
 #, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:312
 #, no-c-format
-msgid "Understanding the code"
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:576
+#. Tag: programlisting
+#: gettingstarted.xml:321
 #, no-c-format
-msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:323
 #, no-c-format
-msgid "Differences are:"
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:586
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:332
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:599
+#: gettingstarted.xml:341
 #, no-c-format
 msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:605
-#, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:346
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:612
-#, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:351
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:356
 #, no-c-format
-msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:631
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:639
+#. Tag: programlisting
+#: gettingstarted.xml:367
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:373
 #, no-c-format
 msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "The numberguess example for Java SE with Swing"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
+#: gettingstarted.xml:396
 #, no-c-format
-msgid "To run this example:"
+msgid ""
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:403
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:679
+#. Tag: programlisting
+#: gettingstarted.xml:408
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:693
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "mvn -Drun"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:699
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:705
+#. Tag: programlisting
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
-#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:930
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:942
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:950
+#. Tag: title
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+msgid "Deploying to Jetty"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:955
+#. Tag: para
+#: gettingstarted.xml:457
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:958
+#: gettingstarted.xml:464
 #, no-c-format
 msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:470
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:971
-#, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:978
+#. Tag: programlisting
+#: gettingstarted.xml:485
 #, no-c-format
 msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:986
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:996
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:1002
+#: gettingstarted.xml:501
 #, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1004
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1010
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
+#. Tag: para
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+msgid "First, initialize the Eclipse project:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:1018
+#. Tag: programlisting
+#: gettingstarted.xml:520
 #, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1022
+#: gettingstarted.xml:522
 #, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
+msgid ""
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:1026
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1028
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1034
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""

Modified: doc/trunk/reference/fr-FR/injection.po
===================================================================
--- doc/trunk/reference/fr-FR/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-05 00:00+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,34 +15,54 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "Injection de dépendance"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Les Web Beans suportent trois principaux mécanismes d'injection de dépendance:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Injection de paramètre de constructeur:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr ""
+"Injection de paramètre dans une méthode d'<emphasis>initialisation</"
+"emphasis>:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -58,23 +78,31 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
-msgstr "Injection de paramètre dans une méthode d'<emphasis>initialisation</emphasis>:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
+msgstr ""
+"Injection de paramètre dans une méthode d'<emphasis>initialisation</"
+"emphasis>:"
+
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -90,18 +118,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "Et injection directe dans un champ:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -112,55 +149,92 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
-msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
-msgstr "L'injection de dépendance se produit toujours lorsque l'instance du Web Bean vient d'être instanciée."
+msgid ""
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
-msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
-msgstr "D'abord, le gestionnaire de Web Beans, appelle le constructeur du Web Bean, pour obtenir une instance d'un Web Bean."
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"L'injection de dépendance se produit toujours lorsque l'instance du Web Bean "
+"vient d'être instanciée."
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
-msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
-msgstr "Ensuite, le gestionnaire de Web Bean initialise les valeurs de tous les champs injectés du Web Bean."
+#: injection.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"D'abord, le gestionnaire de Web Beans, appelle le constructeur du Web Bean, "
+"pour obtenir une instance d'un Web Bean."
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "Puis, le gestionnaire de Web Bean appelle toutes les méthodes d'initalisation du Web Bean."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"Ensuite, le gestionnaire de Web Bean initialise les valeurs de tous les "
+"champs injectés du Web Bean."
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
-msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
-msgstr "Enfin, la méthode <literal>@PostConstruct</literal> du Web Bean, si il en a une, est appelée."
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"Puis, le gestionnaire de Web Bean appelle toutes les méthodes "
+"d'initalisation du Web Bean."
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"Enfin, la méthode <literal>@PostConstruct</literal> du Web Bean, si il en a "
+"une, est appelée."
+
+#. Tag: para
+#: injection.xml:86
 #, no-c-format
-msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "L'injection de paramètre de constructeur n'est pas supportée pour les EJB beans, car l'EJB est instanciée par le conteneurs d'EJB, pas par le gestionnaire de Web Beans."
+msgid ""
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
-msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
-msgstr "Les paramètres des constructeurs et des méthodes d'initialisation n'ont pas besoin d'être annotés explicitement lors que le type de liaison par défaut <literal>@Current</literal> s'applique. Les champs injectés par contre <emphasis>doivent</emphasis> spécifier un type de liaison, même lorsque le type de liaison par défaut s'applique. Si le champ ne spécifie pas de type de liaison, il ne sera pas injecté."
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "Les méthodes productrices supportent également l'injection de paramètre:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -172,66 +246,129 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
-msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
-msgstr "Enfin, les méthodes observatrices (que nous rencontrerons dans <xref linkend=\"events\"/>), de nettoyage et de destructions supportent toutes l'injection de paramètre."
+msgid ""
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:58
+#. Tag: title
+#: injection.xml:110
 #, no-c-format
-msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "La spécification Web Beans définie une procédure, appelée <emphasis>algorithme de résolution typesafe</emphasis>, que le gestionnaire de Web Beans suit lorsqu'il identifie le Web Bean à injecter dans un point d'injection. Cet algorithme paraît complexe à première vue, mais une fois que vous l'avez compris, il est plutôt intuitif. La résolution typesafe est effectuée au moment de l'initialisation du système, ce qui veut dire que le gestionnaire informera l'utilisateur immédiatement si une dépendance d'un Web Bean ne peut être satisfaite, en lançant une <literal>UnsatisfiedDependencyException</literal> ou une <literal>AmbiguousDependencyException</literal>."
+msgid "What gets injected"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
-msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
-msgstr "Le but de cet algorithme est de permettre à plusieurs Web Beans d'implémenter la même API et soit:"
+#: injection.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
+"La spécification Web Beans définie une procédure, appelée "
+"<emphasis>algorithme de résolution typesafe</emphasis>, que le gestionnaire "
+"de Web Beans suit lorsqu'il identifie le Web Bean à injecter dans un point "
+"d'injection. Cet algorithme paraît complexe à première vue, mais une fois "
+"que vous l'avez compris, il est plutôt intuitif. La résolution typesafe est "
+"effectuée au moment de l'initialisation du système, ce qui veut dire que le "
+"gestionnaire informera l'utilisateur immédiatement si une dépendance d'un "
+"Web Bean ne peut être satisfaite, en lançant une "
+"<literal>UnsatisfiedDependencyException</literal> ou une "
+"<literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
-msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
-msgstr "de permettre au client à sélectionner quelle implémentation il souhaite utiliser en utilisant des <emphasis>annotations de liaison</emphasis>,"
+#: injection.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"Le but de cet algorithme est de permettre à plusieurs Web Beans "
+"d'implémenter la même API et soit:"
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:126
+#, fuzzy, no-c-format
+msgid ""
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"de permettre au client à sélectionner quelle implémentation il souhaite "
+"utiliser en utilisant des <emphasis>annotations de liaison</emphasis>,"
+
+#. Tag: para
+#: injection.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"allow the application deployer to select which implementation is appropriate "
+"for a particular deployment, without changes to the client, by enabling or "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"soit permettre à déployeur de l'application de sélectionner quelle "
+"implémentation est appropriée pour un déploiement particulier, sans "
+"changement sur le client, en activant ou en désactivant des <emphasis>types "
+"de déploiement</emphasis>, ou"
+
+#. Tag: para
+#: injection.xml:137
 #, no-c-format
-msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
-msgstr "soit permettre à déployeur de l'application de sélectionner quelle implémentation est appropriée pour un déploiement particulier, sans changement sur le client, en activant ou en désactivant des <emphasis>types de déploiement</emphasis>, ou"
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:143
 #, no-c-format
-msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
-msgstr "en permettant une implémentation d'une API de surcharger une autre implémentation de la même API au moment du déploiement, sans changement sur le client, en utilisant la <emphasis>précédence de type de déploiement</emphasis>."
+msgid ""
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Explorons comment le gestionnaire de Web Beans détermine le Web Bean à injecter."
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "Annotations de liaison"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
-msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
-msgstr "Si nous avons plus d'un Web Bean qui implémente une API, le point d'injection peut spécifier exactement quel Web Bean devrait être injecté en utilisant une annotation de liaison. Par exemple, il peut y avoir deux implémentation de <literal>PaymentProcessor</literal>:"
+#: injection.xml:159
+#, fuzzy, no-c-format
+msgid ""
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
+"<literal>PaymentProcessor</literal>:"
+msgstr ""
+"Si nous avons plus d'un Web Bean qui implémente une API, le point "
+"d'injection peut spécifier exactement quel Web Bean devrait être injecté en "
+"utilisant une annotation de liaison. Par exemple, il peut y avoir deux "
+"implémentation de <literal>PaymentProcessor</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -240,33 +377,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
-msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
-msgstr "Où <literal>@PayByCheque</literal> et <literal>@PayByCreditCard</literal> sont des annotations de liaison:"
+#: injection.xml:169
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"Où <literal>@PayByCheque</literal> et <literal>@PayByCreditCard</literal> "
+"sont des annotations de liaison:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -274,751 +415,891 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
-msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
-msgstr "Un développeur client d'un Web Bean peut utiliser l'annotation de liaison pour spécifier exactement quel Web Bean doit être injecté."
+#: injection.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"Un développeur client d'un Web Bean peut utiliser l'annotation de liaison "
+"pour spécifier exactement quel Web Bean doit être injecté."
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "En utilisant l'injection de champ:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "En  utilisant l'injection de méthode d'initialisation:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "Ou en utilisant l'injection de constructeur:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
-#. Tag: title
-#: injection.xml:125
-#, no-c-format
-msgid "Binding annotations with members"
-msgstr "Annotations de liaisons avec membres"
-
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:193
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "Les annotations de liaison peuvent avoir des membres:"
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:199
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayBy {\n"
-"    PaymentType value();\n"
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayBy {\n"
-"    PaymentType value();\n"
+"<![CDATA[@Initializer\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
+"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
+"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:201
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "Dans ce cas, la valeur du membre est importante:"
-
-#. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:135
+#: injection.xml:206
 #, no-c-format
-msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
-msgstr "Vous pouvez dire au gestionnaire de Web Bean d'ignorer un membre d'un type d'annotation de liaison en annotant le membre <literal>@NonBinding</literal>."
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
 
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:216
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "Combinaison d'annotations de liaison"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
+#: injection.xml:218
 #, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
-msgstr "Un point d'injection peut même spécifier plusieurs annotations de liaison:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayBy {\n"
+"    PaymentType value();\n"
+"}]]>"
 
 #. Tag: para
-#: injection.xml:147
+#: injection.xml:226
 #, no-c-format
-msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
-msgstr "Dans ce cas, seul un Web Bean qui a <emphasis>les deux</emphasis> annotations de liaison serait éligible pour l'injection."
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "Annotations de liaison et méthodes productrices"
+#. Tag: programlisting
+#: injection.xml:230
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "Même les méthodes productrices peuvent spécifier des annotations de liaison:"
+#: injection.xml:232
+#, fuzzy, no-c-format
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"Vous pouvez dire au gestionnaire de Web Bean d'ignorer un membre d'un type "
+"d'annotation de liaison en annotant le membre <literal>@NonBinding</literal>."
 
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:237
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayBy {\n"
+"    PaymentType value();\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:242
 #, no-c-format
-msgid "The default binding type"
-msgstr "Le type de liaison par défaut "
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
-#, no-c-format
-msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
-msgstr "Les Web Beans définissent un type de liaison<literal>@Current</literal> qui est le type de liaison par défaut pour tout point d'injection ou pour un Web Bean qui ne spécifie par explicitement un type de liaison."
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
+msgstr ""
+"Un point d'injection peut même spécifier plusieurs annotations de liaison:"
 
-#. Tag: para
-#: injection.xml:168
-#, no-c-format
-msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
-msgstr "Il y a deux cas où il peut être nécessaire de spécifier explicitement <literal>@Current</literal>:"
+#. Tag: programlisting
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:173
-#, no-c-format
-msgid "on a field, in order to declare it as an injected field with the default binding type, and"
-msgstr "sur un champ, pour le déclarer en tant que champ injecté avec le type de liaison par défaut, et"
+#: injection.xml:250
+#, fuzzy, no-c-format
+msgid ""
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"Dans ce cas, seul un Web Bean qui a <emphasis>les deux</emphasis> "
+"annotations de liaison serait éligible pour l'injection."
 
-#. Tag: para
-#: injection.xml:177
-#, no-c-format
-msgid "on a Web Bean which has another binding type in addition to the default binding type."
-msgstr "sur un Web Bean qui a un autre type de liaison en plus du type de liaison par défaut."
+#. Tag: programlisting
+#: injection.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
 
 #. Tag: title
-#: injection.xml:187
+#: injection.xml:260
 #, no-c-format
-msgid "Deployment types"
-msgstr "Types de déploiement"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:189
+#: injection.xml:262
 #, no-c-format
-msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
-msgstr "Tous les Web Beans ont un <emphasis>type de déploiement</emphasis>. Chaque type de déploiement identifie un ensemble de Web Beans qui doivent être installés conditionnellement à certains déploiement du système."
-
-#. Tag: para
-#: injection.xml:193
-#, no-c-format
-msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
-msgstr "Par exemple, nous pourriont définir un type de déploiement nommé <literal>@Mock</literal>, qui identifierait les Web Beans qui devraient être installés uniquement lorsque le système s'exécute dans un environnement de test d'intégration:"
-
-#. Tag: programlisting
-#: injection.xml:197
-#, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
-#. Tag: para
-#: injection.xml:199
-#, no-c-format
-msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
-msgstr "Supposons que nous ayons un Web Bean qui a interagit avec un sytème externe afin de traiter les paiements:"
-
 #. Tag: programlisting
-#: injection.xml:202
-#, no-c-format
+#: injection.xml:266
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:268
 #, no-c-format
-msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
-msgstr "Puisque ce Web Bean ne spécifie pas explicitement un type de déploiement, il a le type de déploiement par défaut <literal>@Production</literal>."
+msgid ""
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:207
-#, no-c-format
-msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
-msgstr "Pour l'intégration ou le test unitaire, le système de paiement externe est lent ou indisponible. Donc nous créerions un objet bouchon:"
-
 #. Tag: programlisting
-#: injection.xml:210
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:276
 #, no-c-format
-msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
-msgstr "Mais comment le gestionnaire de Web Beans détermine-t-il quelle implémentation utiliser dans un déploiement particulier?"
+msgid ""
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "Activer les types de déploiement"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "Résoudre les dépendances insatisfaites"
 
 #. Tag: para
-#: injection.xml:218
-#, no-c-format
-msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
-msgstr "Les Web Beans définissent deux types de déploiement: <literal>@Production</literal> et <literal>@Standard</literal>. Par défaut, seuls les Web Beans avec les types de déploiement prédéfinis sont activés lorsque le système est déployé. Nous pouvons identifier des types de déploiement comme étant activés dans une déploiement particulier en les listant dans <literal>web-beans.xml</literal>."
+#: injection.xml:287
+#, fuzzy, no-c-format
+msgid ""
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"L'algorithme de résolution typesafe échoue lorsque, après avoir analysé les "
+"annotations de liaison et les types de déploiement de tous les Web Beans qui "
+"implémentent l'API d'un point d'injection, le gestionnaire de Web Bean est "
+"incapable d'identifier exactement un Web Bean à injecter."
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:294
 #, no-c-format
-msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
-msgstr "Revenons à notre exemple, lorsque nous déployons nos tests d'intégration, nous voulons que tous nos objets <literal>@Mock</literal> soient installés:"
-
-#. Tag: programlisting
-#: injection.xml:227
-#, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:298
 #, no-c-format
-msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
-msgstr "A partir de maintenant le gestionnaire de Web Beans va identifier et installer tous les Web Beans annotés  <literal>@Production</literal>, <literal>@Standard</literal> ou <literal>@Mock</literal> au déploiement."
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:304
 #, no-c-format
-msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
-msgstr "Le type de déploiement <literal>@Standard</literal> est utilisé uniquement pour certains Web Beans spéciaux définis par la spécification Web Beans. Nous ne pouvons pas l'utiliser pour nos propres Web Beans, et nous ne pouvons pas le désactiver."
+msgid ""
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:309
 #, no-c-format
-msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
-msgstr "Le type de déploiement <literal>@Production</literal> est le type de déploiement par défaut pour les Web Beans qui n'ont pas déclaré explicitement de type de déploiement, et peuvent être désactivés."
+msgid ""
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:244
+#. Tag: para
+#: injection.xml:314
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "Précédence des type de déploiement"
+msgid ""
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:246
+#: injection.xml:321
 #, no-c-format
-msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation &#151; <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider what happens when the manager encounters this injection point:"
-msgstr "Si vous avez fait attention, vous vous demandez probablement comment le gestionnaire de Web Beans décide quelle implémentation &#151;  <literal>ExternalPaymentProcessor</literal> ou <literal>MockPaymentProcessor</literal>&#151; choisir. Considérez ce qui se passe lorsque le gestionnaire rencontre un point d'injection:"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:251
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:253
+#: injection.xml:332
 #, no-c-format
-msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
-msgstr "Il y a maintenant deux Web Beans qui satisfont le contrat <literal>PaymentProcessor</literal>. Bien sur, nous ne pouvons pas utiliser d'annotation de liaison pour résoudre l'ambiguïté, puisque le annotations de liaison sont codées en dur dans le source au point d'injection, et nous voulons que le gestionnaire puisse décider de cela au déploiement!"
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:258
+#: injection.xml:337
 #, no-c-format
-msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
-msgstr "La solution à ce problème est que chaque type de déploiement a une <emphasis>précédence</emphasis> différente. La précédence des types de déploiement est déterminée par l'ordre dans lequel ils apparaissent dans <literal>web-beans.xml</literal>. Dans notre exemple, <literal>@Mock</literal> apparaît après <literal>@Production</literal> donc il a une précédence plus haute."
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:264
+#: injection.xml:343
 #, no-c-format
-msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
-msgstr "Dés que le gestionnaire découvre qu'il y a plus d'un Web Bean satisfaisant le contrat (API plus annotation de liaison) spécifié à un point d'injection, il considère la précédence relative des Web Beans. S'il y en a un ayant une plus grande précédence que les autres, il choisit le Web Bean de plus grande précédence pour l'injection. Donc, dans notre exemple, le gestionnaire de Web Bean va injecter <literal>MockPaymentProcessor</literal> lorsqu'il s'exécute dans notre environnement de test d'intégration (ce qui est exactement ce que nous voulons)."
+msgid ""
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:271
+#: injection.xml:350
 #, no-c-format
-msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
-msgstr "Il est intéressant de comparer cette manière de faire aux architectures des gestionnaires populaire d'aujourd'hui. Différents conteneurs \"légers\" permettent également un déploiement conditionnel de classes qui existent dans le classpath, mais les classes qui sont déployées doivent être explicitement, individuellement, listées dans du code de configuration ou dans un fichier de configuration XML. Les Web Beans supportent la définition du Web Bean et la configuration par XML, mais dans le cas courant où aucune configuration complexe n'est requise, les types de déploiement permettent à tout un ensemble de Web Beans d'être activés avec une seule ligne en XML. En même temps, un développeur parcourant le code peut facilement identifier dans quels scénarios de déploiement un Web Bean sera utilisé."
+msgid ""
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
+msgstr ""
 
-#. Tag: title
-#: injection.xml:284
+#. Tag: para
+#: injection.xml:358
 #, no-c-format
-msgid "Example deployment types"
-msgstr "Exemple de types de déploiement"
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:286
+#: injection.xml:361
 #, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "Les types de déploiement sont utiles pour tous un tas de choses, en voici quelques exemples:"
+msgid ""
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:290
+#: injection.xml:366
 #, no-c-format
-msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
-msgstr "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:294
+#. Tag: title
+#: injection.xml:373
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+msgid "Client proxies"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:375
 #, no-c-format
-msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
-msgstr "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
+msgid ""
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:380
 #, no-c-format
-msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
-msgstr "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
+msgid ""
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:306
+#: injection.xml:386
 #, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "Je suis sûr que vous pouvez penser à d'autres applications..."
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "Résoudre les dépendances insatisfaites"
-
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:393
 #, no-c-format
-msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
-msgstr "L'algorithme de résolution typesafe échoue lorsque, après avoir analysé les annotations de liaison et les types de déploiement de tous les Web Beans qui implémentent l'API d'un point d'injection, le gestionnaire de Web Bean est incapable d'identifier exactement un Web Bean à injecter."
+msgid ""
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:401
 #, no-c-format
-msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "Il est d'habitude facile de résoudre une <literal>UnsatisfiedDependencyException</literal> ou une <literal>AmbiguousDependencyException</literal>."
+msgid ""
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:407
 #, no-c-format
-msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point &#151; or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
+msgid "The following Java types cannot be proxied by the container:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:411
 #, no-c-format
-msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:414
 #, no-c-format
-msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
+msgid ""
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:341
+#. Tag: para
+#: injection.xml:419
 #, no-c-format
-msgid "Client proxies"
+msgid "arrays and primitive types."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:423
 #, no-c-format
-msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:430
 #, no-c-format
-msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
+msgid ""
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:437
 #, no-c-format
-msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:442
 #, no-c-format
-msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:365
+#: injection.xml:448
 #, no-c-format
-msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
+msgid "But we didn't get around to implementing this yet."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:370
+#. Tag: title
+#: injection.xml:457
 #, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
+msgid "Obtaining a contextual instance by programmatic lookup"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:374
+#: injection.xml:459
 #, no-c-format
-msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
+msgid ""
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:466
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:471
 #, no-c-format
-msgid "arrays and primitive types."
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:385
+#: injection.xml:476
 #, no-c-format
-msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
+msgid "we would like to iterate over all beans of a certain type."
 msgstr ""
 
-#. Tag: title
-#: injection.xml:392
+#. Tag: para
+#: injection.xml:482
 #, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
+msgid ""
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
 msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:394
-#, no-c-format
-msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
+#: injection.xml:489
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
 msgstr ""
+"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
+"for testing"
 
 #. Tag: programlisting
-#: injection.xml:397
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
+#. Tag: para
+#: injection.xml:495
 #, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
+msgid "Qualifiers can be specified in one of two ways:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:501
 #, no-c-format
-msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
+msgid "by annotating the <literal>Instance</literal> injection point, or"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:402
+#. Tag: para
+#: injection.xml:504
 #, no-c-format
-msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:508
 #, no-c-format
-msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+
+#. Tag: para
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:519
 #, no-c-format
-msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to create a named subclass:"
+msgid ""
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
+#: injection.xml:524
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
+#. Tag: para
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:415
+#: injection.xml:533
 #, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:419
+#. Tag: para
+#: injection.xml:535
 #, no-c-format
-msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
+msgid "In some cases, we can use an anonymous class:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:422
+#. Tag: programlisting
+#: injection.xml:539
 #, no-c-format
-msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
+msgid ""
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:542
 #, no-c-format
-msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:429
+#: injection.xml:547
 #, no-c-format
-msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:434
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
-msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
+msgid ""
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
 msgstr ""
 
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:442
+#: injection.xml:558
 #, no-c-format
-msgid "There are certain kinds of dependent objects &#151; Web Beans with scope <literal>@Dependent</literal> &#151; that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
+msgid ""
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
-msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
+msgid ""
+"The log category for a <literal>Logger</literal> depends upon the class of "
+"the object that owns it."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
-msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
+msgid ""
+"Injection of a HTTP parameter or header value depends upon what parameter or "
+"header name was specified at the injection point."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
-msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
+msgid ""
+"Injection of the result of an EL expression evaluation depends upon the "
+"expression that was specified at the injection point."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:461
+#: injection.xml:577
 #, no-c-format
-msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
+msgid ""
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
+"injection point to which it belongs."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
-msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
+msgid ""
+"Let's look at an example. The following code is verbose, and vulnerable to "
+"refactoring problems:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
-msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
+msgid ""
+"This clever little producer method lets you inject a JDK <literal>Logger</"
+"literal> without explicitly specifying the log category:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:477
+#: injection.xml:593
 #, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:479
+#: injection.xml:595
 #, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
+msgid ""
+"Not convinced? Then here's a second example. To inject HTTP parameters, we "
+"need to define a qualifier type:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1030,13 +1311,13 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:484
+#: injection.xml:600
 #, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1044,39 +1325,45 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:492
+#: injection.xml:608
 #, no-c-format
-msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
+msgid ""
+"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
+"literal> annotation is ignored by the container since it is annotated "
+"<literal>@NonBinding.</literal>)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:495
+#: injection.xml:611
 #, no-c-format
-msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
+msgid ""
+"The container provides a built-in bean that implements the "
+"<literal>InjectionPoint</literal> interface:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1088,3 +1375,454 @@
 "}]]>"
 msgstr ""
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr ""
+#~ "Les Web Beans suportent trois principaux mécanismes d'injection de "
+#~ "dépendance:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Injection de paramètre de constructeur:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "L'injection de paramètre de constructeur n'est pas supportée pour les EJB "
+#~ "beans, car l'EJB est instanciée par le conteneurs d'EJB, pas par le "
+#~ "gestionnaire de Web Beans."
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "Les paramètres des constructeurs et des méthodes d'initialisation n'ont "
+#~ "pas besoin d'être annotés explicitement lors que le type de liaison par "
+#~ "défaut <literal>@Current</literal> s'applique. Les champs injectés par "
+#~ "contre <emphasis>doivent</emphasis> spécifier un type de liaison, même "
+#~ "lorsque le type de liaison par défaut s'applique. Si le champ ne spécifie "
+#~ "pas de type de liaison, il ne sera pas injecté."
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr ""
+#~ "Les méthodes productrices supportent également l'injection de paramètre:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "Enfin, les méthodes observatrices (que nous rencontrerons dans <xref "
+#~ "linkend=\"events\"/>), de nettoyage et de destructions supportent toutes "
+#~ "l'injection de paramètre."
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "en permettant une implémentation d'une API de surcharger une autre "
+#~ "implémentation de la même API au moment du déploiement, sans changement "
+#~ "sur le client, en utilisant la <emphasis>précédence de type de "
+#~ "déploiement</emphasis>."
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Explorons comment le gestionnaire de Web Beans détermine le Web Bean à "
+#~ "injecter."
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "Annotations de liaisons avec membres"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "Les annotations de liaison peuvent avoir des membres:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "Dans ce cas, la valeur du membre est importante:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "Combinaison d'annotations de liaison"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "Annotations de liaison et méthodes productrices"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr ""
+#~ "Même les méthodes productrices peuvent spécifier des annotations de "
+#~ "liaison:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "Le type de liaison par défaut "
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Les Web Beans définissent un type de liaison<literal>@Current</literal> "
+#~ "qui est le type de liaison par défaut pour tout point d'injection ou pour "
+#~ "un Web Bean qui ne spécifie par explicitement un type de liaison."
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "Il y a deux cas où il peut être nécessaire de spécifier explicitement "
+#~ "<literal>@Current</literal>:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "sur un champ, pour le déclarer en tant que champ injecté avec le type de "
+#~ "liaison par défaut, et"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "sur un Web Bean qui a un autre type de liaison en plus du type de liaison "
+#~ "par défaut."
+
+#~ msgid "Deployment types"
+#~ msgstr "Types de déploiement"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "Tous les Web Beans ont un <emphasis>type de déploiement</emphasis>. "
+#~ "Chaque type de déploiement identifie un ensemble de Web Beans qui doivent "
+#~ "être installés conditionnellement à certains déploiement du système."
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "Par exemple, nous pourriont définir un type de déploiement nommé "
+#~ "<literal>@Mock</literal>, qui identifierait les Web Beans qui devraient "
+#~ "être installés uniquement lorsque le système s'exécute dans un "
+#~ "environnement de test d'intégration:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "Supposons que nous ayons un Web Bean qui a interagit avec un sytème "
+#~ "externe afin de traiter les paiements:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "Puisque ce Web Bean ne spécifie pas explicitement un type de déploiement, "
+#~ "il a le type de déploiement par défaut <literal>@Production</literal>."
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "Pour l'intégration ou le test unitaire, le système de paiement externe "
+#~ "est lent ou indisponible. Donc nous créerions un objet bouchon:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "Mais comment le gestionnaire de Web Beans détermine-t-il quelle "
+#~ "implémentation utiliser dans un déploiement particulier?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "Activer les types de déploiement"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Les Web Beans définissent deux types de déploiement: "
+#~ "<literal>@Production</literal> et <literal>@Standard</literal>. Par "
+#~ "défaut, seuls les Web Beans avec les types de déploiement prédéfinis sont "
+#~ "activés lorsque le système est déployé. Nous pouvons identifier des types "
+#~ "de déploiement comme étant activés dans une déploiement particulier en "
+#~ "les listant dans <literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "Revenons à notre exemple, lorsque nous déployons nos tests d'intégration, "
+#~ "nous voulons que tous nos objets <literal>@Mock</literal> soient "
+#~ "installés:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "A partir de maintenant le gestionnaire de Web Beans va identifier et "
+#~ "installer tous les Web Beans annotés  <literal>@Production</literal>, "
+#~ "<literal>@Standard</literal> ou <literal>@Mock</literal> au déploiement."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "Le type de déploiement <literal>@Standard</literal> est utilisé "
+#~ "uniquement pour certains Web Beans spéciaux définis par la spécification "
+#~ "Web Beans. Nous ne pouvons pas l'utiliser pour nos propres Web Beans, et "
+#~ "nous ne pouvons pas le désactiver."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "Le type de déploiement <literal>@Production</literal> est le type de "
+#~ "déploiement par défaut pour les Web Beans qui n'ont pas déclaré "
+#~ "explicitement de type de déploiement, et peuvent être désactivés."
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Précédence des type de déploiement"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "Si vous avez fait attention, vous vous demandez probablement comment le "
+#~ "gestionnaire de Web Beans décide quelle implémentation &#151;  "
+#~ "<literal>ExternalPaymentProcessor</literal> ou "
+#~ "<literal>MockPaymentProcessor</literal>&#151; choisir. Considérez ce qui "
+#~ "se passe lorsque le gestionnaire rencontre un point d'injection:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "Il y a maintenant deux Web Beans qui satisfont le contrat "
+#~ "<literal>PaymentProcessor</literal>. Bien sur, nous ne pouvons pas "
+#~ "utiliser d'annotation de liaison pour résoudre l'ambiguïté, puisque le "
+#~ "annotations de liaison sont codées en dur dans le source au point "
+#~ "d'injection, et nous voulons que le gestionnaire puisse décider de cela "
+#~ "au déploiement!"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "La solution à ce problème est que chaque type de déploiement a une "
+#~ "<emphasis>précédence</emphasis> différente. La précédence des types de "
+#~ "déploiement est déterminée par l'ordre dans lequel ils apparaissent dans "
+#~ "<literal>web-beans.xml</literal>. Dans notre exemple, <literal>@Mock</"
+#~ "literal> apparaît après <literal>@Production</literal> donc il a une "
+#~ "précédence plus haute."
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "Dés que le gestionnaire découvre qu'il y a plus d'un Web Bean "
+#~ "satisfaisant le contrat (API plus annotation de liaison) spécifié à un "
+#~ "point d'injection, il considère la précédence relative des Web Beans. "
+#~ "S'il y en a un ayant une plus grande précédence que les autres, il "
+#~ "choisit le Web Bean de plus grande précédence pour l'injection. Donc, "
+#~ "dans notre exemple, le gestionnaire de Web Bean va injecter "
+#~ "<literal>MockPaymentProcessor</literal> lorsqu'il s'exécute dans notre "
+#~ "environnement de test d'intégration (ce qui est exactement ce que nous "
+#~ "voulons)."
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "Il est intéressant de comparer cette manière de faire aux architectures "
+#~ "des gestionnaires populaire d'aujourd'hui. Différents conteneurs \"légers"
+#~ "\" permettent également un déploiement conditionnel de classes qui "
+#~ "existent dans le classpath, mais les classes qui sont déployées doivent "
+#~ "être explicitement, individuellement, listées dans du code de "
+#~ "configuration ou dans un fichier de configuration XML. Les Web Beans "
+#~ "supportent la définition du Web Bean et la configuration par XML, mais "
+#~ "dans le cas courant où aucune configuration complexe n'est requise, les "
+#~ "types de déploiement permettent à tout un ensemble de Web Beans d'être "
+#~ "activés avec une seule ligne en XML. En même temps, un développeur "
+#~ "parcourant le code peut facilement identifier dans quels scénarios de "
+#~ "déploiement un Web Bean sera utilisé."
+
+#~ msgid "Example deployment types"
+#~ msgstr "Exemple de types de déploiement"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "Les types de déploiement sont utiles pour tous un tas de choses, en voici "
+#~ "quelques exemples:"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "Je suis sûr que vous pouvez penser à d'autres applications..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "Il est d'habitude facile de résoudre une "
+#~ "<literal>UnsatisfiedDependencyException</literal> ou une "
+#~ "<literal>AmbiguousDependencyException</literal>."

Modified: doc/trunk/reference/fr-FR/interceptors.po
===================================================================
--- doc/trunk/reference/fr-FR/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,71 +14,66 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:6
+#: interceptors.xml:7
 #, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:11
+#: interceptors.xml:12
 #, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:14
+#: interceptors.xml:18
 #, no-c-format
-msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
+msgid "business method interception, and"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:22
+#: interceptors.xml:21
 #, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+msgid "lifecycle callback interception."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:25
 #, no-c-format
-msgid "business method interception, and"
+msgid "In addition, the EJB specification defines timeout method interception."
 msgstr ""
 
 #. Tag: para
 #: interceptors.xml:29
 #, no-c-format
-msgid "lifecycle callback interception."
-msgstr ""
-
-#. Tag: para
-#: interceptors.xml:33
-#, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
+"methods of the bean by clients of the bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:36
+#: interceptors.xml:34
 #, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
@@ -90,8 +85,8 @@
 #, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 
@@ -103,33 +98,52 @@
 "methods."
 msgstr ""
 
+#. Tag: para
+#: interceptors.xml:47
+#, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:51
+#: interceptors.xml:57
 #, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:55
+#: interceptors.xml:62
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
@@ -137,7 +151,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -145,113 +159,123 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:64
+#: interceptors.xml:74
 #, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:71
+#: interceptors.xml:81
 #, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:76
+#: interceptors.xml:87
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
+msgid "Interceptors can take advantage of dependency injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
+#: interceptors.xml:93
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:97
+#: interceptors.xml:114
 #, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
@@ -259,43 +283,52 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:109
+#: interceptors.xml:130
 #, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
+"transaction interceptor."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
@@ -303,39 +336,40 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:124
+#: interceptors.xml:148
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:126
+#: interceptors.xml:150
 #, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:130
+#: interceptors.xml:155
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
@@ -343,52 +377,53 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:134
+#: interceptors.xml:161
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:136
+#: interceptors.xml:163
 #, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:140
+#: interceptors.xml:169
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:147
+#: interceptors.xml:176
 #, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -396,7 +431,7 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
@@ -404,7 +439,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -412,7 +447,7 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
@@ -420,52 +455,52 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:162
+#: interceptors.xml:196
 #, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:164
+#: interceptors.xml:198
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:166
+#: interceptors.xml:200
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:168
+#: interceptors.xml:202
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
@@ -474,99 +509,98 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:181
+#: interceptors.xml:216
 #, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:186
+#: interceptors.xml:223
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:188
+#: interceptors.xml:225
 #, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:197
+#: interceptors.xml:236
 #, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:200
+#: interceptors.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:212
+#: interceptors.xml:255
 #, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order in "
-"which interceptors are listed at the class level."
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:217
+#: interceptors.xml:262
 #, no-c-format
-msgid ""
-"Therefore, we recommend the use of Web Beans-style interceptor bindings."
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr ""

Modified: doc/trunk/reference/fr-FR/intro.po
===================================================================
--- doc/trunk/reference/fr-FR/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -16,1060 +16,327 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
+msgid "Introduction"
 msgstr ""
 
 #. Tag: para
 #: intro.xml:6
 #, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
 msgstr ""
 
 #. Tag: title
 #: intro.xml:13
 #, no-c-format
-msgid "Your first Web Bean"
+msgid "What is a bean?"
 msgstr ""
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
-"years in various applications. The first class parses a string into a list "
-"of sentences:"
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
-msgid ""
-"<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:27
 #, no-c-format
 msgid ""
-"The second existing class is a stateless session bean front-end for an "
-"external system that is able to translate sentences from one language to "
-"another:"
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateless\n"
-"public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:37
+#: intro.xml:36
 #, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
 msgid ""
-"<![CDATA[@Local\n"
-"public interface Translator {\n"
-"    public String translate(String sentence);\n"
-"}]]>"
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:41
+#: intro.xml:45
 #, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator {\n"
-"    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:49
-#, no-c-format
-msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:51
-#, no-c-format
-msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr ""
-
-#. Tag: programlisting
 #: intro.xml:54
 #, no-c-format
-msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+msgid "Now let's see how to create your first bean that actually uses CDI."
 msgstr ""
 
-#. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr ""
-
-#. Tag: para
+#. Tag: title
 #: intro.xml:61
 #, no-c-format
-msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
+msgid "Getting our feet wet"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:68
+#: intro.xml:63
 #, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> "
-"available &#151; if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed &#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
 msgstr ""
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:82
-#, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:91
-#, no-c-format
-msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid ""
-"which clients share a reference to a particular instance of the Web Bean."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:191
+#: intro.xml:68
 #, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
 msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
+"<![CDATA[public class SentenceParser {\n"
+"   public List<String> parse(String text) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:196
+#: intro.xml:70
 #, no-c-format
 msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:204
+#: intro.xml:75
 #, no-c-format
 msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator {\n"
+"   public String translate(String sentence) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:206
+#: intro.xml:77
 #, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:233
+#: intro.xml:79
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
+"<![CDATA[@Local\n"
+"public interface Translator {\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:236
+#: intro.xml:81
 #, no-c-format
 msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:257
+#: intro.xml:85
 #, no-c-format
 msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid ""
-"It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr ""
-
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other "
-"objects &#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
+"<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
+"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:380
+#: intro.xml:87
 #, no-c-format
 msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:387
+#: intro.xml:93
 #, no-c-format
-msgid "method-level transaction management and security,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
 msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:397
+#: intro.xml:100
 #, no-c-format
-msgid "remote and web service invocation, and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
 msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:407
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:435
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
 "\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
+"   private String inputText;\n"
+"   private String translation;\n"
 "\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:437
+#: intro.xml:119
 #, no-c-format
-msgid ""
-"The result of a producer method is injected just like any other Web Bean."
+msgid "Field injection of <literal>TextTranslator</literal> instance"
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:441
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:445
+#: intro.xml:135
 #, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
 msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:451
+#: intro.xml:140
 #, no-c-format
 msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:453
+#: intro.xml:142
 #, no-c-format
 msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:456
+#: intro.xml:148
 #, no-c-format
 msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
 msgstr ""
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:463
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""

Modified: doc/trunk/reference/fr-FR/master.po
===================================================================
--- doc/trunk/reference/fr-FR/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-05 00:03+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,64 +14,100 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "Note"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
-#, fuzzy, no-c-format
+#: master.xml:19
+#, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
-"La JSR-299 a récemment été renommée de \"Web Beans\" vers \"Java Contexts "
-"and Dependency Injection\". Ce guide de référence réfère toujours la JSR-299 "
-"comme \"Web Beans\" et l'implémentation de référence de la JSR-299 comme "
-"\"Web Beans RI\". D'autres documentations, blogs, articles de forums etc. "
-"peuvent utiliser la nouvelle nomenclature, y compris le nouveau nom pour "
-"l'implémentation de référence de la JSR-299 - \"Web Beans\"."
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "Utiliser des objets contextuels"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "Développer du code faiblement couplé"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "Tirer meilleur parti du typage fort"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans et l'écosystème Java EE"
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Note"
+#~ msgstr "Note"
+
+#, fuzzy
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "La JSR-299 a récemment été renommée de \"Web Beans\" vers \"Java Contexts "
+#~ "and Dependency Injection\". Ce guide de référence réfère toujours la JSR-"
+#~ "299 comme \"Web Beans\" et l'implémentation de référence de la JSR-299 "
+#~ "comme \"Web Beans RI\". D'autres documentations, blogs, articles de "
+#~ "forums etc. peuvent utiliser la nouvelle nomenclature, y compris le "
+#~ "nouveau nom pour l'implémentation de référence de la JSR-299 - \"Web Beans"
+#~ "\"."
+
+#~ msgid "Using contextual objects"
+#~ msgstr "Utiliser des objets contextuels"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "Développer du code faiblement couplé"

Modified: doc/trunk/reference/fr-FR/next.po
===================================================================
--- doc/trunk/reference/fr-FR/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-02 23:32+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,18 +22,129 @@
 #. Tag: para
 #: next.xml:6
 #, no-c-format
-msgid "Because Web Beans is so new, there's not yet a lot of information available online."
-msgstr "Comme les Web Beans sont très récents, il n'y a pas encore beaucoup d'informations disponibles en ligne à leur sujet."
+msgid ""
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"L'implémentation de référence des Web Beans est en train d'être développée "
+"sur <literal>http://seamframework.org/WebBeans</literal>. L'équipe de "
+"développement de l'implémentation de référence et le blog du chef de spec "
+"des Web Beans est disponible sur <literal>http://in.relation.to</literal>. "
+"Cet article se base en grande partie sur une série de billets publiées là."
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
-msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "Evidemment, la spécification des Web Beans est la meilleure source d'information supplémentaire à propos des Web Beans. La spec fait environ 100 pages de long, seulement deux fois la longueur de cet article et presque aussi lisible. Mais, bien sûr, elle couvre beaucoup de détails que nous avons évités. La spec est disponible sur <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+msgid ""
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
-msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
-msgstr "L'implémentation de référence des Web Beans est en train d'être développée sur <literal>http://seamframework.org/WebBeans</literal>. L'équipe de développement de l'implémentation de référence et le blog du chef de spec des Web Beans est disponible sur <literal>http://in.relation.to</literal>. Cet article se base en grande partie sur une série de billets publiées là."
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Comme les Web Beans sont très récents, il n'y a pas encore beaucoup "
+#~ "d'informations disponibles en ligne à leur sujet."
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "Evidemment, la spécification des Web Beans est la meilleure source "
+#~ "d'information supplémentaire à propos des Web Beans. La spec fait environ "
+#~ "100 pages de long, seulement deux fois la longueur de cet article et "
+#~ "presque aussi lisible. Mais, bien sûr, elle couvre beaucoup de détails "
+#~ "que nous avons évités. La spec est disponible sur <literal>http://jcp.org/"
+#~ "en/jsr/detail?id=299</literal>."

Modified: doc/trunk/reference/fr-FR/part1.po
===================================================================
--- doc/trunk/reference/fr-FR/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,216 +14,295 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: para
-#: part1.xml:5
+#: part1.xml:14
 #, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:14
+#: part1.xml:23
 #, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
 #, no-c-format
 msgid ""
-"interaction via an <emphasis>event notification</emphasis> facility, and"
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:38
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:45
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:51
 #, no-c-format
-msgid "what is the lifecycle of this object?"
+msgid ""
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:61
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:68
 #, no-c-format
-msgid "is it multithreaded?"
+msgid "managed beans, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:71
 #, no-c-format
-msgid "where can I get one from?"
+msgid "EJB session beans."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:75
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:83
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
+msgid "message-driven beans,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:86
 #, no-c-format
+msgid "interceptors,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:89
+#, no-c-format
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:92
+#, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "What is the lifecycle of this object?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:108
 #, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:111
+#, no-c-format
+msgid "Is it multithreaded?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:114
+#, no-c-format
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:120
+#, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
+"Where should I keep the reference to it when I'm not currently using it?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:72
+#: part1.xml:125
 #, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:131
 #, no-c-format
+msgid "How should I go about sharing this object between other objects?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:137
+#, no-c-format
 msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers,"
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:142
 #, no-c-format
 msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic, and"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:149
 #, no-c-format
 msgid ""
-"<emphasis>decorators</emphasis> allow business concerns to be "
-"compartmentalized."
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:90
+#: part1.xml:155
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:159
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:105
+#: part1.xml:163
 #, no-c-format
-msgid "all JavaBeans,"
+msgid ""
+"<emphasis>decorators</emphasis> allow business concerns to be "
+"compartmentalized."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:108
+#: part1.xml:168
 #, no-c-format
-msgid "all EJBs, and"
+msgid ""
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:111
+#: part1.xml:177
 #, no-c-format
-msgid "all Servlets."
+msgid ""
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:115
+#: part1.xml:183
 #, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:120
+#: part1.xml:189
 #, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
 msgstr ""

Modified: doc/trunk/reference/fr-FR/part2.po
===================================================================
--- doc/trunk/reference/fr-FR/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,86 +17,28 @@
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
 msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
 msgid ""
-"<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
 msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr ""
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
 msgstr ""
-
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr ""

Modified: doc/trunk/reference/fr-FR/part3.po
===================================================================
--- doc/trunk/reference/fr-FR/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 15:15+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,102 +16,254 @@
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Le second thème majeur des Web Beans est <emphasis>le typage fort</emphasis>. L'information sur les dépendances, les intercepteurs et les décorateurs d'un Web Bean, et l'information sur les consommateurs évènements pour un producteur d'évènements, est contenue dans des constructions Java typesafe qui peuvent être validées par le compilateur."
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "Vous ne voyez pas d'identifiants basés sur des chaînes de caractères dans un code Web Bean, pas parce que le framework vous les cache en utilisant des règles par défaut intelligentes &#151; les soit-disant \"configuration par convention\" &#151; mais parce qu'il n'y a même pas de chaînes de caractères pour commencer!"
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "Le bénéfice évident de cette approche est que <emphasis>tout<emphasis> EDI peuvet fournir de l'autocomplétion, de la validation et du refactoring sans avoir besoin d'une outillage spécial. Mais il y a un second bénéfice, moins évident. Quand vous pensez à identifier des objets, des évènements ou des intercepteurs via annotations à la place de noms, vous avez l'opportunité d'élever le niveau sémantique de votre code."
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
-msgstr "Les Web Beans vous encouragent à développer des annotaions qui modélisent des concepts, par exemple,"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:27
 #, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Le second thème majeur des Web Beans est <emphasis>le typage fort</"
+"emphasis>. L'information sur les dépendances, les intercepteurs et les "
+"décorateurs d'un Web Bean, et l'information sur les consommateurs évènements "
+"pour un producteur d'évènements, est contenue dans des constructions Java "
+"typesafe qui peuvent être validées par le compilateur."
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Vous ne voyez pas d'identifiants basés sur des chaînes de caractères dans un "
+"code Web Bean, pas parce que le framework vous les cache en utilisant des "
+"règles par défaut intelligentes &#151; les soit-disant \"configuration par "
+"convention\" &#151; mais parce qu'il n'y a même pas de chaînes de caractères "
+"pour commencer!"
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"Le bénéfice évident de cette approche est que <emphasis>tout<emphasis> EDI "
+"peuvet fournir de l'autocomplétion, de la validation et du refactoring sans "
+"avoir besoin d'une outillage spécial. Mais il y a un second bénéfice, moins "
+"évident. Quand vous pensez à identifier des objets, des évènements ou des "
+"intercepteurs via annotations à la place de noms, vous avez l'opportunité "
+"d'élever le niveau sémantique de votre code."
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Les Web Beans vous encouragent à développer des annotaions qui modélisent "
+"des concepts, par exemple,"
+
+#. Tag: para
+#: part3.xml:87
+#, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> or"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "au lieu d'utiliser des noms composés comme"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> or"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "Les annotations sont réutilisables. Ils aident à décrire des qualités communes de parties disparates du système. Elles nous aident à catégoriser et à comprendre notre code. Elles nous aident à traiter des problèmes communs d'une manière commune. Elles rendent notre code plus litéral et plus compréhensible."
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"Les annotations sont réutilisables. Ils aident à décrire des qualités "
+"communes de parties disparates du système. Elles nous aident à catégoriser "
+"et à comprendre notre code. Elles nous aident à traiter des problèmes "
+"communs d'une manière commune. Elles rendent notre code plus litéral et plus "
+"compréhensible."
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Les <emphasis>stéréotypes</emphasis> Web Beans poussent cette idée d'une étape supplémentaire. Un stéréotype modélise un <emphasis>role</emphasis> commun dans votre architecture d'application. Il encapsule des propriétés variées du rôle, comme la portée, les liaisions d'intercepteurs, le type de déploiement, etc, dans un seul paquetage réutilisable."
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Les <emphasis>stéréotypes</emphasis> Web Beans poussent cette idée d'une "
+"étape supplémentaire. Un stéréotype modélise un <emphasis>role</emphasis> "
+"commun dans votre architecture d'application. Il encapsule des propriétés "
+"variées du rôle, comme la portée, les liaisions d'intercepteurs, le type de "
+"déploiement, etc, dans un seul paquetage réutilisable."
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "Même les métadonnées XML des Web Beans sont fortement typées! Il n'y a pas de compilateur XML, donc les Web Beans utilisent des schémas XML pour valider les types Java et les attributs qui apparaissent dans le XML. Cette approche permet de rendre le XML plus litéral, tout comme les annotations rendent notre code Java plus litéral."
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"Nous commes maintenant prêts à découvrir quelques fonctionnalités plus "
+"avancées des Web Beans. Gardez à l'esprit que ces fonctionnalités existent "
+"pour rendre notre code à la fois plus facile à valider et plus "
+"compréhensible. La plupart du temps nous n'avons pas réellement "
+"<emphasis>besoin</emphaiss> d'utiliser ces fonctionnalités, mais si vous les "
+"utilisez sagement, vous en viendrez à apprécier leur pouvoir."
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "Nous commes maintenant prêts à découvrir quelques fonctionnalités plus avancées des Web Beans. Gardez à l'esprit que ces fonctionnalités existent pour rendre notre code à la fois plus facile à valider et plus compréhensible. La plupart du temps nous n'avons pas réellement <emphasis>besoin</emphaiss> d'utiliser ces fonctionnalités, mais si vous les utilisez sagement, vous en viendrez à apprécier leur pouvoir."
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Même les métadonnées XML des Web Beans sont fortement typées! Il n'y a "
+#~ "pas de compilateur XML, donc les Web Beans utilisent des schémas XML pour "
+#~ "valider les types Java et les attributs qui apparaissent dans le XML. "
+#~ "Cette approche permet de rendre le XML plus litéral, tout comme les "
+#~ "annotations rendent notre code Java plus litéral."

Modified: doc/trunk/reference/fr-FR/part4.po
===================================================================
--- doc/trunk/reference/fr-FR/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 15:02+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,18 +16,73 @@
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
-msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
-msgstr "Le troisième thème des Web Beans est l'<emphasis>intégration</emphasis>. Les Web Beans ont été conçus pour travailler de concert avec d'autres technologies, en aidant le développeur d'application à emboîter les autres technologies les une dans les autres. Les Web Beans sont une technologie ouverte. Ils font parti de l'écosystème Java EE, et ils sont la fondation d'un nouvel écosystème d'extensions portables et d'intégrations avec des frameworks et technologies existantes."
+msgid ""
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
-msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
-msgstr "Nous avons déjà vu comment les Web Beans aident à intégrer les EJB et JSF, en permettant aux EJB d'être directement liés aux pages JSF. Mais c'est juste le début. Les Web Beans offrent le même potentiel pour intégrer d'autres technologies, telles que des moteurs de gestion de processus métiers, d'autres Frameworks Web, et des modèles à composants tiers. La plateforme Java EE ne sera jamais capable de standardiser toutes les technologies intéressantes utilisées dans le monde Java, mais les Web Beans rendent plus facile l'utilisation de technologies qui ne font pas encore parti de la plateforme de manière transparente dans un environnement Java EE."
+#, fuzzy, no-c-format
+msgid ""
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"Nous avons déjà vu comment les Web Beans aident à intégrer les EJB et JSF, "
+"en permettant aux EJB d'être directement liés aux pages JSF. Mais c'est "
+"juste le début. Les Web Beans offrent le même potentiel pour intégrer "
+"d'autres technologies, telles que des moteurs de gestion de processus "
+"métiers, d'autres Frameworks Web, et des modèles à composants tiers. La "
+"plateforme Java EE ne sera jamais capable de standardiser toutes les "
+"technologies intéressantes utilisées dans le monde Java, mais les Web Beans "
+"rendent plus facile l'utilisation de technologies qui ne font pas encore "
+"parti de la plateforme de manière transparente dans un environnement Java EE."
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
-msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
-msgstr "Nous sommes sur le point de tirer plein avantage de la plateforme Java EE dans une application utilisant les Web Beans. Nous rencontrerons aussi brièvement un ensemble de SPIs qui sont fournies pour supporter des extensions portables à Web Beans. Vous pouvez ne pas avoir besoin d'utiliser ces SPIs directement, mais il est bon de savoir qu'elles sont là si vous avez besoin d'elles. Et plus important , vous en tirerez avantage indirectement chaque fois que vous utilisez une extension tierce."
+#: part4.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"We're about to see how to take full advantage of the Java EE platform in an "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Nous sommes sur le point de tirer plein avantage de la plateforme Java EE "
+"dans une application utilisant les Web Beans. Nous rencontrerons aussi "
+"brièvement un ensemble de SPIs qui sont fournies pour supporter des "
+"extensions portables à Web Beans. Vous pouvez ne pas avoir besoin d'utiliser "
+"ces SPIs directement, mais il est bon de savoir qu'elles sont là si vous "
+"avez besoin d'elles. Et plus important , vous en tirerez avantage "
+"indirectement chaque fois que vous utilisez une extension tierce."
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Le troisième thème des Web Beans est l'<emphasis>intégration</emphasis>. "
+#~ "Les Web Beans ont été conçus pour travailler de concert avec d'autres "
+#~ "technologies, en aidant le développeur d'application à emboîter les "
+#~ "autres technologies les une dans les autres. Les Web Beans sont une "
+#~ "technologie ouverte. Ils font parti de l'écosystème Java EE, et ils sont "
+#~ "la fondation d'un nouvel écosystème d'extensions portables et "
+#~ "d'intégrations avec des frameworks et technologies existantes."

Modified: doc/trunk/reference/fr-FR/part5.po
===================================================================
--- doc/trunk/reference/fr-FR/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/fr-FR/producermethods.po
===================================================================
--- doc/trunk/reference/fr-FR/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -23,156 +23,147 @@
 #: producermethods.xml:7
 #, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, no-c-format
 msgid "For example, producer methods let us:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:70
+#: producermethods.xml:76
 #, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -180,17 +171,17 @@
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:78
+#: producermethods.xml:87
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -199,13 +190,13 @@
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -216,96 +207,96 @@
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:94
+#: producermethods.xml:106
 #, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:97
+#: producermethods.xml:111
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:113
 #, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:107
+#: producermethods.xml:122
 #, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:129
 #, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:123
+#: producermethods.xml:138
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -315,3 +306,57 @@
 "<literal>Preferences</literal> object is destroyed, at the end of the "
 "session."
 msgstr ""
+
+#. Tag: title
+#: producermethods.xml:150
+#, no-c-format
+msgid "Disposer methods"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""

Added: doc/trunk/reference/fr-FR/resources.po
===================================================================
--- doc/trunk/reference/fr-FR/resources.po	                        (rev 0)
+++ doc/trunk/reference/fr-FR/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language fr-FR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/fr-FR/ri-spi.po
===================================================================
--- doc/trunk/reference/fr-FR/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-20 22:07+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -16,39 +16,64 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr ""
 
 #. Tag: para
 #: ri-spi.xml:6
 #, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:12
 #, no-c-format
-msgid "The Web Beans SPI"
+msgid "Enterprise Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:13
 #, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:21
 #, no-c-format
 msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:27
+#, no-c-format
+msgid "The Weld SPI"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:29
+#, no-c-format
+msgid ""
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:35
+#, no-c-format
+msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
 "<literal>Forwarding</literal> class located in the <literal>helpers</"
 "literal> sub package. Additional, commonly used, utility classes, and "
@@ -56,289 +81,350 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
+msgid "Deployment structure"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
+#. Tag: para
+#: ri-spi.xml:58
 #, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:37
+#: ri-spi.xml:67
 #, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
+#: ri-spi.xml:100
 #, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:62
+#. Tag: para
+#: ri-spi.xml:106
 #, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:124
 #, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:132
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:98
+#: ri-spi.xml:153
 #, no-c-format
-msgid "JPA services"
+msgid "EJB descriptors"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:155
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:160
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:171
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: para
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:182
+#, no-c-format
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:189
+#, no-c-format
+msgid ""
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:195
+#, no-c-format
+msgid ""
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:201
+#, no-c-format
+msgid ""
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:210
 #, no-c-format
-msgid "Transaction Services"
+msgid "EJB services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:212
 #, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:225
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:234
+#, no-c-format
+msgid "JPA services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:253
+#, no-c-format
+msgid ""
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:258
+#, no-c-format
+msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
 "be passed to the <literal>registerSynchronization()</literal> method and the "
 "SPI implementation should immediately register the synchronization with the "
@@ -346,7 +432,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -356,383 +442,448 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
+#: ri-spi.xml:272
 #, no-c-format
-msgid "JMS services"
+msgid "Resource Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:274
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:283
 #, no-c-format
-msgid "Resource Services"
+msgid "Injection Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:285
 #, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:291
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:298
 #, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:307
 #, no-c-format
-msgid "The bean store"
+msgid "Security Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:309
 #, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:317
 #, no-c-format
-msgid "The application context"
+msgid "Bean Validation Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:319
 #, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Bootstrap and shutdown"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:329
 #, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:337
 #, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:343
 #, no-c-format
 msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:260
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
+msgid "The bean store"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:364
 #, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:282
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid "The application context"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:374
 #, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:383
 #, no-c-format
-msgid "JNDI"
+msgid "Initialization and shutdown"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:384
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:391
 #, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:398
 #, no-c-format
-msgid "Resource loading"
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
+#: ri-spi.xml:405
 #, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
-"times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:410
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:331
+#. Tag: para
+#: ri-spi.xml:414
 #, no-c-format
-msgid "Servlet injection"
+msgid ""
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:423
 #, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:431
+#, no-c-format
+msgid "Resource loading"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:433
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:445
 #, no-c-format
 msgid "The contract with the container"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:358
+#: ri-spi.xml:447
 #, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:370
+#: ri-spi.xml:458
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:470
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:432
+#: ri-spi.xml:571
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -740,34 +891,174 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:454
+#: ri-spi.xml:590
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""

Modified: doc/trunk/reference/fr-FR/scopescontexts.po
===================================================================
--- doc/trunk/reference/fr-FR/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,97 +14,106 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:6
+#: scopescontexts.xml:7
 #, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:14
+#: scopescontexts.xml:16
 #, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+msgid "When a new instance of any bean with that scope is created"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:17
+#: scopescontexts.xml:19
 #, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:20
+#: scopescontexts.xml:22
 #, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:25
+#: scopescontexts.xml:27
 #, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
 "and automatically destroyed when the session ends."
 msgstr ""
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:34
+#: scopescontexts.xml:43
 #, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
+#: scopescontexts.xml:48
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:39
+#: scopescontexts.xml:50
 #, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:44
+#: scopescontexts.xml:57
 #, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -112,55 +121,55 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:58
+#: scopescontexts.xml:63
 #, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:65
+#: scopescontexts.xml:70
 #, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+msgid "CDI defines four built-in scopes:"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:82
+#: scopescontexts.xml:87
 #, no-c-format
-msgid "For a web application that uses Web Beans:"
+msgid "For a web application that uses CDI:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -168,52 +177,60 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:121
 #, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -222,78 +239,78 @@
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:124
+#: scopescontexts.xml:136
 #, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:138
+#: scopescontexts.xml:154
 #, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:143
+#: scopescontexts.xml:160
 #, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:151
+#: scopescontexts.xml:169
 #, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
+#: scopescontexts.xml:174
 #, no-c-format
-msgid "@Current Conversation conversation;"
+msgid "@Inject Conversation conversation;"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -304,93 +321,91 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:161
+#: scopescontexts.xml:182
 #, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
+#: scopescontexts.xml:186
 #, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:166
+#: scopescontexts.xml:188
 #, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:175
+#: scopescontexts.xml:198
 #, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:179
+#: scopescontexts.xml:203
 #, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -398,145 +413,148 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
 
+#. Tag: para
+#: scopescontexts.xml:223
+#, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:202
+#: scopescontexts.xml:235
 #, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:208
+#: scopescontexts.xml:242
 #, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:220
+#: scopescontexts.xml:256
 #, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:224
+#: scopescontexts.xml:261
 #, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:234
+#: scopescontexts.xml:273
 #, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
 
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
-
 #. Tag: title
-#: scopescontexts.xml:247
+#: scopescontexts.xml:281
 #, no-c-format
-msgid "The <literal>@New</literal> annotation"
+msgid "The <literal>@New</literal> qualifier"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
+#: scopescontexts.xml:287
 #, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:260
+#: scopescontexts.xml:291
 #, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -544,7 +562,7 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -552,19 +570,17 @@
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
+#: scopescontexts.xml:302
 #, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -574,7 +590,7 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "

Modified: doc/trunk/reference/fr-FR/specialization.po
===================================================================
--- doc/trunk/reference/fr-FR/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,278 +14,344 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
+msgid "Specialization, inheritance and alternatives"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless\n"
-"public class CreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:23
 #, no-c-format
 msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:16
+#. Tag: para
+#: specialization.xml:29
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:37
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:24
-#, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr ""
-
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:43
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:28
+#. Tag: title
+#: specialization.xml:51
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
+msgid "Using alternative stereotypes"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:32
+#: specialization.xml:53
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:36
+#. Tag: programlisting
+#: specialization.xml:59
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:61
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:66
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:68
 #, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: specialization.xml:70
+#, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
 
-#. Tag: title
-#: specialization.xml:58
+#. Tag: para
+#: specialization.xml:77
 #, no-c-format
-msgid "Using specialization"
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:60
+#. Tag: programlisting
+#: specialization.xml:84
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:86
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:68
+#. Tag: programlisting
+#: specialization.xml:90
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
+#: specialization.xml:92
 #, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
 msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:77
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
 msgstr ""
 
 #. Tag: title
-#: specialization.xml:85
+#: specialization.xml:105
 #, no-c-format
-msgid "Advantages of specialization"
+msgid "A minor problem with alternatives"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:107
 #, no-c-format
-msgid "When specialization is used:"
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:91
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:99
+#: specialization.xml:123
 #, no-c-format
 msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
 msgstr ""
 
+#. Tag: title
+#: specialization.xml:132
+#, no-c-format
+msgid "Using specialization"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:105
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:109
+#: specialization.xml:141
 #, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
+msgid "directly extend the bean class of the second bean, or"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:113
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:119
+#: specialization.xml:152
 #, no-c-format
 msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
 msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:124
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"there is no other enabled Web Bean that also specializes the superclass."
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:129
+#: specialization.xml:161
 #, no-c-format
 msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:132
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
+
+#. Tag: para
+#: specialization.xml:172
+#, no-c-format
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""

Modified: doc/trunk/reference/fr-FR/stereotypes.po
===================================================================
--- doc/trunk/reference/fr-FR/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,324 +14,335 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
+msgid "The CDI specification defines a stereotype as follows:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
+#: stereotypes.xml:11
 #, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr ""
-
-#. Tag: para
 #: stereotypes.xml:21
 #, no-c-format
-msgid "a default scope type,"
+msgid "a default scope, and"
 msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:24
 #, no-c-format
-msgid "a restriction upon the Web Bean scope,"
+msgid "a set of interceptor bindings."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
+msgid "A stereotype may also specify that:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
+#: stereotypes.xml:34
 #, no-c-format
-msgid "a set of interceptor binding annotations."
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:34
+#: stereotypes.xml:37
 #, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
+msgid "all beans with the stereotype are alternatives."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:37
+#: stereotypes.xml:41
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:41
+#: stereotypes.xml:48
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:44
+#: stereotypes.xml:53
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:46
+#: stereotypes.xml:55
 #, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
+#: stereotypes.xml:66
 #, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+msgid "Default scope for a stereotype"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:53
+#: stereotypes.xml:68
 #, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:59
+#: stereotypes.xml:72
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:61
+#: stereotypes.xml:74
 #, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
+msgid "A particular action may still override this default if necessary:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:64
+#: stereotypes.xml:78
 #, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
 msgid ""
-"If we want to force all actions to a particular scope, we can do that too."
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
+msgid "Interceptor bindings for stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:74
+#: stereotypes.xml:90
 #, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:78
+#: stereotypes.xml:94
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
 #, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
 msgstr ""
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr ""
+
 #. Tag: para
-#: stereotypes.xml:84
+#: stereotypes.xml:105
 #, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:87
+#: stereotypes.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:89
+#: stereotypes.xml:112
 #, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:96
+#: stereotypes.xml:119
 #, no-c-format
-msgid "Interceptor bindings for stereotypes"
+msgid "Alternative stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
+#: stereotypes.xml:126
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
 #, no-c-format
-msgid "Name defaulting with stereotypes"
+msgid "Stereotype stacking"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:143
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
 msgstr ""
 
-#. Tag: programlisting
-#: stereotypes.xml:116
+#. Tag: para
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
 msgstr ""
 
-#. Tag: para
-#: stereotypes.xml:118
+#. Tag: programlisting
+#: stereotypes.xml:155
 #, no-c-format
 msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
+"@Target(TYPE)\n"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:124
+#: stereotypes.xml:160
 #, no-c-format
-msgid "Standard stereotypes"
+msgid "Built-in stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:126
+#: stereotypes.xml:162
 #, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
+#: stereotypes.xml:172
 #, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
@@ -339,14 +350,13 @@
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:133
+#: stereotypes.xml:174
 #, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
 msgstr ""

Modified: doc/trunk/reference/fr-FR/viewlayers.po
===================================================================
--- doc/trunk/reference/fr-FR/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/fr-FR/weldexamples.po
===================================================================
--- doc/trunk/reference/fr-FR/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/fr-FR/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language fr-FR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/fr-FR/xml.po
===================================================================
--- doc/trunk/reference/fr-FR/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/fr-FR/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-07 14:53+0100\n"
 "Last-Translator: Vincent Latombe <vincent.latombe at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,93 +14,135 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "Définir des Web Beans en utilisant XML"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
-msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
-msgstr "Jusqu'ici, nous avons vu plein d'exemples de Web Beans déclarés à l'aide d'annotations. Cependant, il y a quelques cas où nous ne pouvons pas utiliser les annotations pour définir un Web Bean:"
+#: xml.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"Jusqu'ici, nous avons vu plein d'exemples de Web Beans déclarés à l'aide "
+"d'annotations. Cependant, il y a quelques cas où nous ne pouvons pas "
+"utiliser les annotations pour définir un Web Bean:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr "quand la class d'implémentation provient d'une librairie existante, ou"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "quand il y aurait plusieurs Web Beans ayant la même classe d'implémentation."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"quand il y aurait plusieurs Web Beans ayant la même classe d'implémentation."
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "Dans tous ces cas, les Web Beans nous offrent deux possibilités:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "écrire une méthode productrice, ou"
+#: xml.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"Many frameworks use XML to provide metadata relating to Java classes. "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
+"class and member names as the string values of XML elements and attributes, "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"De nombreux frameworks utilisent XML pour fournir des métadonnées relatives "
+"aux classes Java. Cependant, les Web Beans utilisent une approche très "
+"différente pour spécifier les noms des classes, champs ou méthodes Java aux "
+"autres frameworks. Au lieu d'écrire les noms des classes et des membres dans "
+"des éléments et attributs XML, les Web Beans vous permettent d'utiliser le "
+"nom de class ou de membre comme nom de l'élément XML."
 
 #. Tag: para
-#: xml.xml:24
+#: xml.xml:38
 #, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "déclarer le Web Bean en utilisant XML."
+msgid ""
+"The advantage of this approach is that you can write an XML schema that "
+"prevents spelling errors in your XML document. It's even possible for a tool "
+"to generate the XML schema automatically from the compiled Java code. Or, an "
+"integrated development environment could perform the same validation without "
+"the need for the explicit intermediate generation step."
+msgstr ""
+"L'avantage de cette méthode est que vous pouvez écrire une schéma XML qui "
+"empêche les erreurs de saisies dans votre document XML. Il est même possible "
+"de générer le schéma XML automatiquement à partir du code Java compilé, "
+"grâce à un outil. Ou, un environnement de développement intégré pourrait "
+"effectuer la même validation sans avoir besoin d'une étape de génération "
+"explicite."
 
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
-msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
-msgstr "De nombreux frameworks utilisent XML pour fournir des métadonnées relatives aux classes Java. Cependant, les Web Beans utilisent une approche très différente pour spécifier les noms des classes, champs ou méthodes Java aux autres frameworks. Au lieu d'écrire les noms des classes et des membres dans des éléments et attributs XML, les Web Beans vous permettent d'utiliser le nom de class ou de membre comme nom de l'élément XML."
-
-#. Tag: para
-#: xml.xml:33
-#, no-c-format
-msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
-msgstr "L'avantage de cette méthode est que vous pouvez écrire une schéma XML qui empêche les erreurs de saisies dans votre document XML. Il est même possible de générer le schéma XML automatiquement à partir du code Java compilé, grâce à un outil. Ou, un environnement de développement intégré pourrait effectuer la même validation sans avoir besoin d'une étape de génération explicite."
-
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Déclarer des classes Web Beans"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
-msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Pour chaque paquetage Java, les Web Beans définissent un espace de nom XML correspondant. L'espace de nom est fabriqué en préfixant le nom du paquetage Java par <literal>urn:java:</literal>. Pour le paquetage <literal>com.mydomain.myapp</literal>, l'espace de nom XML est <literal>urn:java:com.mydomain.myapp</literal>."
+#: xml.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"For each Java package, Weld defines a corresponding XML namespace. The "
+"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
+"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
+"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"Pour chaque paquetage Java, les Web Beans définissent un espace de nom XML "
+"correspondant. L'espace de nom est fabriqué en préfixant le nom du paquetage "
+"Java par <literal>urn:java:</literal>. Pour le paquetage <literal>com."
+"mydomain.myapp</literal>, l'espace de nom XML est <literal>urn:java:com."
+"mydomain.myapp</literal>."
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
-msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
-msgstr "Les types Java appartenant à un paquetage sont référencés dans un élément XML du namespace correspondant au paquetage. Le nom de l'élément est le nom du type Java. Les champs et méthodes du type sont spécifiés par des éléments enfants dans le même espace de noms. Si le type est une annotation, les membres sont spécifiés par des attributs de l'élément."
+msgid ""
+"Java types belonging to a package are referred to using an XML element in "
+"the namespace corresponding to the package. The name of the element is the "
+"name of the Java type. Fields and methods of the type are specified by child "
+"elements in the same namespace. If the type is an annotation, members are "
+"specified by attributes of the element."
+msgstr ""
+"Les types Java appartenant à un paquetage sont référencés dans un élément "
+"XML du namespace correspondant au paquetage. Le nom de l'élément est le nom "
+"du type Java. Les champs et méthodes du type sont spécifiés par des éléments "
+"enfants dans le même espace de noms. Si le type est une annotation, les "
+"membres sont spécifiés par des attributs de l'élément."
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
-msgid "For example, the element <literal>&lt;util:Date/&gt;</literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Par exemple, l'élément <literal>&lt;util:Date/&gt;</literal> dans le fragment XML suivant référencela class <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Par exemple, l'élément <literal>&lt;util:Date/&gt;</literal> dans le "
+"fragment XML suivant référencela class <literal>java.util.Date</literal>:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -110,37 +152,49 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
-msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
-msgstr "Et ceci est tout le code dont nous avons besoin pour déclarer que <literal>Date</literal> est un simple Web  Bean! Un instance de <literal>Date</literal> peut maintenant être injectée par n'importe quel autre Web Bean:"
+#: xml.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"And this is all the code we need to declare that <literal>Date</literal> is "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"Et ceci est tout le code dont nous avons besoin pour déclarer que "
+"<literal>Date</literal> est un simple Web  Bean! Un instance de "
+"<literal>Date</literal> peut maintenant être injectée par n'importe quel "
+"autre Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Déclarer les métadonnées d'un Web Bean"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
-msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
-msgstr "Nous pouvons déclarer la portée, le type de déploiement et les types de liaison d'intercepteurs en utilisant les éléments enfants directs de la déclaration du Web Bean:"
+#: xml.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"We can declare the scope, deployment type and interceptor binding types "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"Nous pouvons déclarer la portée, le type de déploiement et les types de "
+"liaison d'intercepteurs en utilisant les éléments enfants directs de la "
+"déclaration du Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -150,29 +204,31 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "Nous utilisons exactement la même approche pour spécifier les noms et les types de liaison:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"Nous utilisons exactement la même approche pour spécifier les noms et les "
+"types de liaison:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -192,36 +248,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
-msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
-msgstr "Où <literal>@Login</literal> et <literal>@SystemStart</literal> sont des types d'annotations de liaison."
+#: xml.xml:91
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
+"qualifier annotations types."
+msgstr ""
+"Où <literal>@Login</literal> et <literal>@SystemStart</literal> sont des "
+"types d'annotations de liaison."
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "Comme d'habitude, un Web Bean supporte plusieurs types de liaison:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -230,18 +290,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
-msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
-msgstr "Les intercepteurs et les décorateurs sont juste de Web Beans simples, donc ils peuvent être déclarés comme n'importe quel Web Bean simple:"
+#: xml.xml:101
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"Les intercepteurs et les décorateurs sont juste de Web Beans simples, donc "
+"ils peuvent être déclarés comme n'importe quel Web Bean simple:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -250,42 +314,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Déclarer des membres de Web Beans"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "TODO!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "Déclarer des Web Beans à la volée"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "Les Web Beans nous permettent de définir un Web Bean à un point d'injection. Par exemple:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"Les Web Beans nous permettent de définir un Web Bean à un point d'injection. "
+"Par exemple:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -300,50 +366,77 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
-msgid "The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
-msgstr "L'élément <literal>&lt;Name&gt;</literal> déclare un Web Bean simple de portée <literal>@Dependant</literal> et la classe <literal>Name</literal>, avec un ensembl de valeurs initials sur ses champs. Ce Web Bean a une liaison spéciale générée par le conteneur, et est par conséquent injectable seulement au point d'injection spécifique où il a été déclaré."
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"L'élément <literal>&lt;Name&gt;</literal> déclare un Web Bean simple de "
+"portée <literal>@Dependant</literal> et la classe <literal>Name</literal>, "
+"avec un ensembl de valeurs initials sur ses champs. Ce Web Bean a une "
+"liaison spéciale générée par le conteneur, et est par conséquent injectable "
+"seulement au point d'injection spécifique où il a été déclaré."
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
-msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
-msgstr "Cette fonctionnalité simple, mais puissante permet au format XML des Web Beans d'être utilisé pour spécifier des graphes entiers d'objets Java. Ce n'est pas une solution intégrale pour la liaison de données, mais cela s'en approche!"
+#: xml.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
+"solution, but it's close!"
+msgstr ""
+"Cette fonctionnalité simple, mais puissante permet au format XML des Web "
+"Beans d'être utilisé pour spécifier des graphes entiers d'objets Java. Ce "
+"n'est pas une solution intégrale pour la liaison de données, mais cela s'en "
+"approche!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "Utiliser un schéma"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
-msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
-msgstr "Si nous voulons que le format de notre document XML soit écrit par des gens qui ne sont pas des développeurs Java, ou qui n'ont pas accès à notre code, nous devons fournir un schéma. Ecrire ou utiliser le schéma n'a rien de spécifique aux Web Beans."
+#: xml.xml:141
+#, fuzzy, no-c-format
+msgid ""
+"If we want our XML document format to be authored by people who aren't Java "
+"developers, or who don't have access to our code, we need to provide a "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Si nous voulons que le format de notre document XML soit écrit par des gens "
+"qui ne sont pas des développeurs Java, ou qui n'ont pas accès à notre code, "
+"nous devons fournir un schéma. Ecrire ou utiliser le schéma n'a rien de "
+"spécifique aux Web Beans."
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
 "          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
 "\n"
 "    <myapp:System>\n"
 "        ...\n"
@@ -352,8 +445,22 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
-msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
-msgstr "Ecrire un schéma XML est assez ennuyeux. C'est pour cela que le projet Web Beans RI fournira un outil qui génèrera automatiquement le schéma XML à partir du code Java compilé."
+#: xml.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"Ecrire un schéma XML est assez ennuyeux. C'est pour cela que le projet Web "
+"Beans RI fournira un outil qui génèrera automatiquement le schéma XML à "
+"partir du code Java compilé."
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "Dans tous ces cas, les Web Beans nous offrent deux possibilités:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "écrire une méthode productrice, ou"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "déclarer le Web Bean en utilisant XML."

Modified: doc/trunk/reference/it-IT/Author_Group.po
===================================================================
--- doc/trunk/reference/it-IT/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-30 21:41+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,113 +14,123 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
-msgstr "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
+msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
-msgstr "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
+msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
+#, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>David</firstname> <surname>Allen</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
 #, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>David</firstname> <surname>Allen</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28
-#: Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "Traduzione italiana"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "Traduzione spagnola"
 
-#. Tag: orgname
-#: Author_Group.xml:35
-#: Author_Group.xml:43
-#: Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "Red Hat Middleware LLC"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "Traduzione coreana"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "Traduzione cinese (tradizionale)"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Sean</firstname> <surname>Wu</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "Traduzione cinese semplificato"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr "Kava Community"
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
 
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "Red Hat Middleware LLC"
+
+#~ msgid "Kava Community"
+#~ msgstr "Kava Community"

Modified: doc/trunk/reference/it-IT/Book_Info.po
===================================================================
--- doc/trunk/reference/it-IT/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-01 22:20+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,31 +16,41 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Contesti Java e Dependency Injection"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
-msgstr "Il nuovo standard Java per la dependency injection e la gestione contestuale dello stato"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
+msgstr ""
+"Il nuovo standard Java per la dependency injection e la gestione contestuale "
+"dello stato"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Contesti Java e Dependency Injection"
+
 #~ msgid "Introduction to Web Beans"
 #~ msgstr "Introduzione a Web Beans"
+
 #~ msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 #~ msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
 #~ "Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Responsabile della specifica di Web Beans (JSR-299)</jobtitle> "
 #~ "<orgname>Red Hat Middleware LLC</orgname>"
+
 #~ msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 #~ msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead</jobtitle> "
 #~ "<orgname>Red Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Responsabile per l'implementazione della documentazione Web "
 #~ "Beans (JSR-299)</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
-

Added: doc/trunk/reference/it-IT/beans.po
===================================================================
--- doc/trunk/reference/it-IT/beans.po	                        (rev 0)
+++ doc/trunk/reference/it-IT/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language it-IT translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/it-IT/decorators.po
===================================================================
--- doc/trunk/reference/it-IT/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-11 21:50+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,39 +14,71 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "Decoratori"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
-msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
-msgstr "Gli interceptor sono un potente modo per catturare e separare i concern (N.d.T. un concern è un particolare concetto o area di interesse) che sono <emphasis>ortogonali</emphasis> al sistema tipo. Qualsiasi interceptor è capace di intercettare le invocazioni di qualsiasi tipo Java. Questo li rende perfetti per risolvere concern tecnici quali gestione delle transazioni e la sicurezza. Comunque, per natura, gli interceptor non sono consapevoli dell'attuale semantica degli eventi che intercettano. Quindi gli interceptor non sono il giusto strumento per separare i concern di tipo business."
+#: decorators.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors are a powerful way to capture and separate concerns which are "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"Gli interceptor sono un potente modo per catturare e separare i concern (N.d."
+"T. un concern è un particolare concetto o area di interesse) che sono "
+"<emphasis>ortogonali</emphasis> al sistema tipo. Qualsiasi interceptor è "
+"capace di intercettare le invocazioni di qualsiasi tipo Java. Questo li "
+"rende perfetti per risolvere concern tecnici quali gestione delle "
+"transazioni e la sicurezza. Comunque, per natura, gli interceptor non sono "
+"consapevoli dell'attuale semantica degli eventi che intercettano. Quindi gli "
+"interceptor non sono il giusto strumento per separare i concern di tipo "
+"business."
 
 # ...concerns that cut across many disparate types = ?
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
-msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
-msgstr "Il contrario è vero per i <emphasis>decoratori</emphasis>. Un decoratore intercetta le invocazioni solamente per una certa interfaccia Java, e quindi è consapevole della semantica legata a questa. Ciò rende i decoratori uno strumento perfetto per modellare alcuni tipi di concern di business. E significa pure che un decoratore non ha la generalità di un interceptor. I decoratori non sono capaci di risolvere i concern tecnici che agiscono per diversi tipi."
+#: decorators.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
+"intercepts invocations only for a certain Java interface, and is therefore "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
+"that a decorator doesn't have the generality of an interceptor. Decorators "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"Il contrario è vero per i <emphasis>decoratori</emphasis>. Un decoratore "
+"intercetta le invocazioni solamente per una certa interfaccia Java, e quindi "
+"è consapevole della semantica legata a questa. Ciò rende i decoratori uno "
+"strumento perfetto per modellare alcuni tipi di concern di business. E "
+"significa pure che un decoratore non ha la generalità di un interceptor. I "
+"decoratori non sono capaci di risolvere i concern tecnici che agiscono per "
+"diversi tipi."
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "Supponiamo di avere un'interfaccia che rappresenti degli account:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -57,43 +89,69 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
-msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
-msgstr "Parecchi Web Beans del nostro sistema implementano l'interfaccia <literal>Account</literal>. Abbiamo come comune requisito legale, per ogni tipo di account, che le transazioni lunghe vengano registrate dal sistema in uno speciale log. Questo è un lavoro perfetto per un decoratore."
+#: decorators.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
+"any kind of account, large transactions must be recorded by the system in a "
+"special log. This is a perfect job for a decorator."
+msgstr ""
+"Parecchi Web Beans del nostro sistema implementano l'interfaccia "
+"<literal>Account</literal>. Abbiamo come comune requisito legale, per ogni "
+"tipo di account, che le transazioni lunghe vengano registrate dal sistema in "
+"uno speciale log. Questo è un lavoro perfetto per un decoratore."
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
-msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
-msgstr "Un decorator è un semplice Web Beans che implementa il tipo che decora ed è annotato con <literal>@Decorator</literal>.\""
+#: decorators.xml:34
+#, fuzzy, no-c-format
+msgid ""
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"Un decorator è un semplice Web Beans che implementa il tipo che decora ed è "
+"annotato con <literal>@Decorator</literal>.\""
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -121,119 +179,247 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
-msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
-msgstr "Diversamente dai semplici Web Beans, un decoratore può essere una classe astratta. Se un decoratore non ha niente da fare per un particolare metodo, allora non occorre implementare quel metodo."
+#: decorators.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
+"there's nothing special the decorator needs to do for a particular method of "
+"the decorated interface, you don't need to implement that method."
+msgstr ""
+"Diversamente dai semplici Web Beans, un decoratore può essere una classe "
+"astratta. Se un decoratore non ha niente da fare per un particolare metodo, "
+"allora non occorre implementare quel metodo."
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"Gli interceptor per un metodo sono chiamati prima dei decoratori che vengono "
+"applicati a tali metodo."
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "Attributi delegate"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
-msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
-msgstr "Tutti i decoratori hanno un <emphasis>attributo delegato</emphasis>. Il tipo ed i tipi di binding dell'attributo delegato determinano a quali Web Beans è legato il decoratore. Il tipo di attributo delegato deve implementare o estendere tutte le interfacce implementate dal decoratore."
+msgid ""
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
+#. Tag: programlisting
+#: decorators.xml:65
 #, no-c-format
-msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
-msgstr "Quest'attributo delegate specifica che ildecorator è legao a tutti i Web Beans che implementano <literal>Account</literal>:"
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
+#. Tag: para
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
+msgstr "Un decorator è legato ad un qualsiasi Web Bean che:"
+
+#. Tag: para
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr "ha il tipo di attributo delegate come un tipo API, e"
+
+#. Tag: para
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+"ha tutti i tipi di binding che sono dichiarati dall'attributo delegate."
+
+#. Tag: para
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"Quest'attributo delegate specifica che ildecorator è legao a tutti i Web "
+"Beans che implementano <literal>Account</literal>:"
+
 #. Tag: programlisting
-#: decorators.xml:53
-#, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
 msgstr "<![CDATA[@Decorates Account account;]]>"
 
 # E' corretto tradurre BOUND con LEGATO in questo particolare contesto?
 # ....rivedere alcune frasi sopra.
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
-msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
-msgstr "Un attributo delegato può specificare un'annotazione di binding. E quindi il decoratore verrà associato a Web Beans con lo stesso binding."
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"Un attributo delegato può specificare un'annotazione di binding. E quindi il "
+"decoratore verrà associato a Web Beans con lo stesso binding."
 
 #. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
 msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
 
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
-msgstr "Un decorator è legato ad un qualsiasi Web Bean che:"
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"Il decoratore può invocare l'attributo delegate, il ché ha lo stesso effetto "
+"come chiamare <literal>InvocationContext.proceed()</literal> da un "
+"interceptor."
 
-#. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
-msgstr "ha il tipo di attributo delegate come un tipo API, e"
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
 
-#. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
-msgstr "ha tutti i tipi di binding che sono dichiarati dall'attributo delegate."
-
-#. Tag: para
-#: decorators.xml:71
-#, no-c-format
-msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
-msgstr "Il decoratore può invocare l'attributo delegate, il ché ha lo stesso effetto come chiamare <literal>InvocationContext.proceed()</literal> da un interceptor."
-
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "Abilitare i decoratori"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
-msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
-msgstr "Occorre <emphasis>abilitare</emphasis> il decoratore in <literal>web-beans.xml</literal>."
+msgid ""
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 # Rivedere la frase?
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
-msgid "This declaration serves the same purpose for decorators that the <literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "Per i decoratori questa dichiarazione provvede alle stesse finalità di quanto la dichiarazione <literal>&lt;Interceptors&gt;</literal> fa per gli interceptor."
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"Per i decoratori questa dichiarazione provvede alle stesse finalità di "
+"quanto la dichiarazione <literal>&lt;Interceptors&gt;</literal> fa per gli "
+"interceptor."
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
-msgstr "Consente di specificare un ordinamento totale per tutti i decoratori del sistema, assicurando un comportamento deterministico, e"
+msgid ""
+"it enables us to specify a total ordering for all decorators in our system, "
+"ensuring deterministic behavior, and"
+msgstr ""
+"Consente di specificare un ordinamento totale per tutti i decoratori del "
+"sistema, assicurando un comportamento deterministico, e"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "consente di abilitare o disabilitare le classi decorato durante la fase di deploy."
+msgstr ""
+"consente di abilitare o disabilitare le classi decorato durante la fase di "
+"deploy."
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid "Interceptors for a method are called before decorators that apply to that method."
-msgstr "Gli interceptor per un metodo sono chiamati prima dei decoratori che vengono applicati a tali metodo."
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "Tutti i decoratori hanno un <emphasis>attributo delegato</emphasis>. Il "
+#~ "tipo ed i tipi di binding dell'attributo delegato determinano a quali Web "
+#~ "Beans è legato il decoratore. Il tipo di attributo delegato deve "
+#~ "implementare o estendere tutte le interfacce implementate dal decoratore."
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "Occorre <emphasis>abilitare</emphasis> il decoratore in <literal>web-"
+#~ "beans.xml</literal>."

Added: doc/trunk/reference/it-IT/dependencies.po
===================================================================
--- doc/trunk/reference/it-IT/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/it-IT/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language it-IT translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/it-IT/ee.po
===================================================================
--- doc/trunk/reference/it-IT/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-10 15:21+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,33 +21,95 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
-msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
-msgstr "Web Beans è pienamente integrata nell'ambiente Java EE. Web Beans ha accesso alle risorse Java EE ed ai contesti di persistenza JPA. I Web Beans possono essere usati in espressioni Unified EL dentro pagine JSF e JSP. Possono anche essere iniettati negli oggetti, come Servlet e Message-Driven Beans, che non sono Web Beans."
+#, fuzzy, no-c-format
+msgid ""
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Web Beans è pienamente integrata nell'ambiente Java EE. Web Beans ha accesso "
+"alle risorse Java EE ed ai contesti di persistenza JPA. I Web Beans possono "
+"essere usati in espressioni Unified EL dentro pagine JSF e JSP. Possono "
+"anche essere iniettati negli oggetti, come Servlet e Message-Driven Beans, "
+"che non sono Web Beans."
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Iniettare risorse Java EE in un Web Bean"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
-msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
-msgstr "Tutti i Web Beans sia semplici che enterprise si avvantaggiano della dependency injection di Java EE usando <literal>@Resource</literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal>. Abbiamo già visto un paio di esempi a riguardo, sebbene non ci siamo soffermati molto a suo tempo."
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:19
+#. Tag: para
+#: ee.xml:22
 #, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
 msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Iniettare risorse Java EE in un Web Bean"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
+"examples of this, though we didn't pay much attention at the time:"
+msgstr ""
+"Tutti i Web Beans sia semplici che enterprise si avvantaggiano della "
+"dependency injection di Java EE usando <literal>@Resource</literal>, "
+"<literal>@EJB</literal> e <literal>@PersistenceContext</literal>. Abbiamo "
+"già visto un paio di esempi a riguardo, sebbene non ci siamo soffermati "
+"molto a suo tempo."
+
+#. Tag: programlisting
+#: ee.xml:56
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -55,22 +117,20 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -84,53 +144,69 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
-msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
-msgstr "Le chiamate Java EE <literal>@PostConstruct</literal> e <literal>@PreDestroy</literal> vengono anche supportate per tutti i Web Beans (semplici e enterprise). Il metodo <literal>@PostConstruct</literal> viene chiamato dopo che <emphasis>tutta</emphasis> l'injection è stata eseguita."
+#: ee.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"Le chiamate Java EE <literal>@PostConstruct</literal> e "
+"<literal>@PreDestroy</literal> vengono anche supportate per tutti i Web "
+"Beans (semplici e enterprise). Il metodo <literal>@PostConstruct</literal> "
+"viene chiamato dopo che <emphasis>tutta</emphasis> l'injection è stata "
+"eseguita."
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
-msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "C'è una restrizione di cui essere informati: <literal>@PersistenceContext(type=EXTENDED)</literal> non è supportato per i Web Beans semplici."
+msgid ""
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Chiamare un Web Bean da un servlet"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
-msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
-msgstr "E' facile utilizzare i Web Beans da un Servlet in Java EE 6. Semplicemente si inietti il Web Bean utilizzando l'injection del campo Web Bean o del metodo inizializzatore."
+#: ee.xml:76
+#, fuzzy, no-c-format
+msgid ""
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"E' facile utilizzare i Web Beans da un Servlet in Java EE 6. Semplicemente "
+"si inietti il Web Bean utilizzando l'injection del campo Web Bean o del "
+"metodo inizializzatore."
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -138,7 +214,8 @@
 "    @Current Login login;\n"
 "\n"
 "    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
 "        throws ServletException, IOException {\n"
 "        credentials.setUsername( request.getAttribute(\"username\") ):\n"
 "        credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -154,45 +231,55 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
-msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
-msgstr "Il client proxy Web Beans si occupa di instradare le invocazioni dei metodi da un Servlet alle corrette istanze di <literal>Credentials</literal> e <literal>Login</literal> per la richiesta corrente e la sessione HTTP."
+#: ee.xml:83
+#, fuzzy, no-c-format
+msgid ""
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Il client proxy Web Beans si occupa di instradare le invocazioni dei metodi "
+"da un Servlet alle corrette istanze di <literal>Credentials</literal> e "
+"<literal>Login</literal> per la richiesta corrente e la sessione HTTP."
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Chiamare un Web Bean da un Message-Driven Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
-msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
-msgstr "L'injection dei Web Beans si applica a tutti gli EJB3, perfino quando non sono sotto il controllo del manager Web Bean (per esempio se sono stati ottenuti da ricerca JNDI diretta, o injection usando <literal>@EJB</literal>) In particolaresi può usare l'injection di Web Beans nei Message-Driven Beans, che non sono considerati Web Beans poiché non possono essere iniettati."
+msgid ""
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 # Web Beans interceptor bindings =?
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Si possono perfino associare degli interceptor Web Beans ai Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Si possono perfino associare degli interceptor Web Beans ai Message-Driven "
+"Beans."
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -207,85 +294,135 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
-msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "Quindi ricevere i messaggi è veramente facile in ambiente Web Beans. Ma attenzione che non è disponibile alcun contesto di sessione o conversazione quando il messaggio viene consegnato al Message-Driven Bean. Solamente i Web Beans <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> sono disponibili."
+#: ee.xml:103
+#, fuzzy, no-c-format
+msgid ""
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"Quindi ricevere i messaggi è veramente facile in ambiente Web Beans. Ma "
+"attenzione che non è disponibile alcun contesto di sessione o conversazione "
+"quando il messaggio viene consegnato al Message-Driven Bean. Solamente i Web "
+"Beans <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</"
+"literal> sono disponibili."
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "E' anche molto facile spedire messaggi usando Web Beans."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "Endpoint JMS"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
-msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
-msgstr "La spedizione dei messaggi usando JMS può essere abbastanza complessa, a causa del numero di oggetti differenti da trattare. Per le code si hanno <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> e <literal>QueueSender</literal>. Per i topic si hanno <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> e <literal>TopicPublisher</literal>. Ciascuno di questi oggetti ha il proprio ciclo di vita e modello di thread di cui bisogna (pre)occuparsi."
+msgid ""
+"Sending messages using JMS can be quite complex, because of the number of "
+"different objects you need to deal with. For queues we have <literal>Queue</"
+"literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
+"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
+"literal>. Each of these objects has its own lifecycle and threading model "
+"that we need to worry about."
+msgstr ""
+"La spedizione dei messaggi usando JMS può essere abbastanza complessa, a "
+"causa del numero di oggetti differenti da trattare. Per le code si hanno "
+"<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> e "
+"<literal>QueueSender</literal>. Per i topic si hanno <literal>Topic</"
+"literal>, <literal>TopicConnectionFactory</literal>, "
+"<literal>TopicConnection</literal>, <literal>TopicSession</literal> e "
+"<literal>TopicPublisher</literal>. Ciascuno di questi oggetti ha il proprio "
+"ciclo di vita e modello di thread di cui bisogna (pre)occuparsi."
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
-msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
-msgstr "I Web Beans si prendono cura di tutto questo per noi. Tutto ciò che occorre fare è dichiarare la coda od il topic in <literal>web-beans.xml</literal>, specificando un "
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
-msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
-msgstr "Ora è possibile iniettare <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> o <literal>QueueSender</literal> per una coda, oppure <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> o <literal>TopicPublisher</literal> per un topic."
+msgid ""
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -296,45 +433,145 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
+#. Tag: para
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
 msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"Il ciclo di vita degli oggetti JMS iniettati è interamente controllato dal "
+"manager Web Bean."
 
-#. Tag: para
-#: ee.xml:100
-#, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
-msgstr "Il ciclo di vita degli oggetti JMS iniettati è interamente controllato dal manager Web Bean."
-
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "Packaging and deployment"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
-msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
-msgstr "Web Beans non definisce nessuno archivio speciale per il deploy. Si può impacchettare i Web Beans in JAR, EJB-JAR o WAR &#151; qualsiasi locazione di deploy nel classpath dell'applicazione. Comunque ciascun archivio che contiene Web Beans devi includere un file chiamato <literal>web-beans.xml</literal> nella directory <literal>META-INF</literal> o <literal>WEB-INF</literal>. Il file può essere vuoto. I Web Beans collocati negli archivi che non hanno un file <literal>web-beans.xml</literal> non saranno disponibili per l'uso nell'applicazione."
+#: ee.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"Web Beans non definisce nessuno archivio speciale per il deploy. Si può "
+"impacchettare i Web Beans in JAR, EJB-JAR o WAR &#151; qualsiasi locazione "
+"di deploy nel classpath dell'applicazione. Comunque ciascun archivio che "
+"contiene Web Beans devi includere un file chiamato <literal>web-beans.xml</"
+"literal> nella directory <literal>META-INF</literal> o <literal>WEB-INF</"
+"literal>. Il file può essere vuoto. I Web Beans collocati negli archivi che "
+"non hanno un file <literal>web-beans.xml</literal> non saranno disponibili "
+"per l'uso nell'applicazione."
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
-msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Per l'esecuzione in Java SE, Web Beans può essere deployato in un qualsiasi posto nel quale gli EJB siano stati messi per essere eseguito da un embeddable EJB Lite container.  Di nuovo ogni locazioni deve contenere un file <literal>web-beans.xml</literal>."
+#: ee.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Per l'esecuzione in Java SE, Web Beans può essere deployato in un qualsiasi "
+"posto nel quale gli EJB siano stati messi per essere eseguito da un "
+"embeddable EJB Lite container.  Di nuovo ogni locazioni deve contenere un "
+"file <literal>web-beans.xml</literal>."
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "C'è una restrizione di cui essere informati: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> non è supportato per i Web Beans semplici."
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "L'injection dei Web Beans si applica a tutti gli EJB3, perfino quando non "
+#~ "sono sotto il controllo del manager Web Bean (per esempio se sono stati "
+#~ "ottenuti da ricerca JNDI diretta, o injection usando <literal>@EJB</"
+#~ "literal>) In particolaresi può usare l'injection di Web Beans nei Message-"
+#~ "Driven Beans, che non sono considerati Web Beans poiché non possono "
+#~ "essere iniettati."
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "E' anche molto facile spedire messaggi usando Web Beans."
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "I Web Beans si prendono cura di tutto questo per noi. Tutto ciò che "
+#~ "occorre fare è dichiarare la coda od il topic in <literal>web-beans.xml</"
+#~ "literal>, specificando un "
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "Ora è possibile iniettare <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> o "
+#~ "<literal>QueueSender</literal> per una coda, oppure <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> o <literal>TopicPublisher</literal> per un topic."
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/it-IT/environments.po
===================================================================
--- doc/trunk/reference/it-IT/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-05 22:49+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,185 +16,259 @@
 
 #. Tag: title
 #: environments.xml:4
-#, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+#, fuzzy, no-c-format
+msgid "Application servers and environments supported by Weld"
 msgstr "Application Server ed ambienti supportati da Web Beans"
 
 #. Tag: title
 #: environments.xml:7
-#, no-c-format
-msgid "Using Web Beans with JBoss AS"
+#, fuzzy, no-c-format
+msgid "Using Weld with JBoss AS"
 msgstr "Usare Web Beans con JBoss AS"
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
-msgid "No special configuration of your application, beyond adding either <literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</literal> is needed."
-msgstr "Non occorre alcuna configurazione speciale dell'applicazione oltre all'aggiunta di <literal>META-INF/beans.xml</literal> o <literal>WEB-INF/beans.xml</literal>."
+msgid ""
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
+msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
-msgid "If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as an extra. First we need to tell Web Beans where JBoss is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>jboss.home</literal> property. For example:"
-msgstr "Se si usa JBoss AS 5.0.1.GA allora occorre installare Web Beans come extra. Innanzitutto occorre dire a Web Beans dove si trova JBoss. Modificare <literal>jboss-as/build.properties</literal> ed impostare la proprietà <literal>jboss.home</literal>. Per esempio:"
+msgid ""
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
+msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+#: environments.xml:27
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
-msgstr "Ora installiamo Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
+msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
-#, no-c-format
+#: environments.xml:33
+#, fuzzy, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 "$ cd webbeans-$VERSION/jboss-as\n"
 "$ ant update"
 
 #. Tag: para
-#: environments.xml:31
-#, no-c-format
-msgid "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans to query the EJB3 container and discover which EJBs are installed in your application."
-msgstr "Un nuovo deploer - <literal>webbeans.deployer</literal> - viene aggiunto a JBoss AS. Questo aggiunge a JBoss AS il supporto ai deploy JSR-299, e consente a Web Beans di interrogare il container EJB3 per scoprire quali EJB sono installati nell'applicazione."
+#: environments.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
+msgstr ""
+"Un nuovo deploer - <literal>webbeans.deployer</literal> - viene aggiunto a "
+"JBoss AS. Questo aggiunge a JBoss AS il supporto ai deploy JSR-299, e "
+"consente a Web Beans di interrogare il container EJB3 per scoprire quali EJB "
+"sono installati nell'applicazione."
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr "Web Beans è incluso in tutte le release di JBoss AS da 5.1 in avanti."
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr "GlassFish"
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
-msgstr "DA FARE"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
+msgstr ""
 
 #. Tag: title
-#: environments.xml:53
-#, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+#: environments.xml:56
+#, fuzzy, no-c-format
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr "Servlet Container (come Tomcat o Jetty)"
 
 #. Tag: para
-#: environments.xml:55
-#, no-c-format
-msgid "Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty 6.1."
-msgstr "Web Beans può essere usato in ogni Servlet container come Tomcat 6.0 o Jetty 6.1."
+#: environments.xml:58
+#, fuzzy, no-c-format
+msgid ""
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
+msgstr ""
+"Web Beans può essere usato in ogni Servlet container come Tomcat 6.0 o Jetty "
+"6.1."
 
 #. Tag: para
-#: environments.xml:58
-#, no-c-format
-msgid "Web Beans doesn't support deploying session beans, injection using <literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using transactional events in Servlet containers."
-msgstr "Web Beans non supporta il deploy di session bean, l'injection usando <literal>@EJB</literal>, o <literal>@PersistenceContext</literal> o l'uso di eventi transazionali nei Servlet container."
+#: environments.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
+msgstr ""
+"Web Beans non supporta il deploy di session bean, l'injection usando "
+"<literal>@EJB</literal>, o <literal>@PersistenceContext</literal> o l'uso di "
+"eventi transazionali nei Servlet container."
 
 #. Tag: para
-#: environments.xml:66
-#, no-c-format
-msgid "Web Beans should be used as a web application library in a servlet container. You should place <literal>webbeans-servlet.jar</literal> in <literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is an \"uber-jar\" provided for your convenience. Alternatively, you could use its component jars:"
-msgstr "Web Beans dovrebbe essere usata come libreria per web application in un servlet container. Si dovrebbe mettere <literal>webbeans-servlet.jar</literal> in <literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> è un \"sovra-jar\" fornito per comodità. Invece, è possibile usare i suoi jar componenti:"
+#: environments.xml:72
+#, fuzzy, no-c-format
+msgid ""
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
+msgstr ""
+"Web Beans dovrebbe essere usata come libreria per web application in un "
+"servlet container. Si dovrebbe mettere <literal>webbeans-servlet.jar</"
+"literal> in <literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</"
+"literal> è un \"sovra-jar\" fornito per comodità. Invece, è possibile usare "
+"i suoi jar componenti:"
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr "jsr299-api.jar"
 
 #. Tag: literal
-#: environments.xml:82
-#, no-c-format
-msgid "webbeans-api.jar"
+#: environments.xml:89
+#, fuzzy, no-c-format
+msgid "weld-api.jar"
 msgstr "webbeans-api.jar"
 
 #. Tag: literal
-#: environments.xml:87
-#, no-c-format
-msgid "webbeans-spi.jar"
+#: environments.xml:94
+#, fuzzy, no-c-format
+msgid "weld-spi.jar"
 msgstr "webbeans-spi.jar"
 
 #. Tag: literal
-#: environments.xml:92
-#, no-c-format
-msgid "webbeans-core.jar"
+#: environments.xml:99
+#, fuzzy, no-c-format
+msgid "weld-core.jar"
 msgstr "webbeans-core.jar"
 
 #. Tag: literal
-#: environments.xml:97
-#, no-c-format
-msgid "webbeans-logging.jar"
+#: environments.xml:104
+#, fuzzy, no-c-format
+msgid "weld-logging.jar"
 msgstr "webbeans-logging.jar"
 
 #. Tag: literal
-#: environments.xml:102
-#, no-c-format
-msgid "webbeans-servlet-int.jar"
+#: environments.xml:109
+#, fuzzy, no-c-format
+msgid "weld-servlet-int.jar"
 msgstr "webbeans-servlet-int.jar"
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr "javassist.jar"
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr "dom4j.jar"
 
-#. Tag: para
-#: environments.xml:117
+#. Tag: literal
+#: environments.xml:124
 #, no-c-format
-msgid "You also need to explicitly specify the servlet listener (used to boot Web Beans, and control its interaction with requests) in <literal>web.xml</literal>:"
-msgstr "Occorre esplicitamente specificare il servlet listener (usato per avviare Web Beans, e controllare la sua interazione con le richieste) in <literal>web.xml</literal>:"
+msgid "google-collections.jar"
+msgstr ""
 
+#. Tag: para
+#: environments.xml:129
+#, fuzzy, no-c-format
+msgid ""
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
+msgstr ""
+"Occorre esplicitamente specificare il servlet listener (usato per avviare "
+"Web Beans, e controllare la sua interazione con le richieste) in "
+"<literal>web.xml</literal>:"
+
 #. Tag: programlisting
-#: environments.xml:123
-#, no-c-format
+#: environments.xml:134
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
 "</listener>]]>"
 msgstr ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
+"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"class>\n"
 "</listener>]]>"
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr "Tomcat"
 
 #. Tag: para
-#: environments.xml:128
-#, no-c-format
-msgid "Tomcat has a read-only JNDI, so Web Beans can't automatically bind the Manager. To bind the Manager into JNDI, you should populate <literal>META-INF/context.xml</literal> with the following contents:"
-msgstr "Tomcat ha un JNDI read-only, e quindi Web Beans non può automaticamente associare il Manager. Per associare il Manager a JNDI occorre popolare <literal>META-INF/context.xml</literal> con i seguenti contesti:"
+#: environments.xml:139
+#, fuzzy, no-c-format
+msgid ""
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
+msgstr ""
+"Tomcat ha un JNDI read-only, e quindi Web Beans non può automaticamente "
+"associare il Manager. Per associare il Manager a JNDI occorre popolare "
+"<literal>META-INF/context.xml</literal> con i seguenti contesti:"
 
 #. Tag: programlisting
-#: environments.xml:135
-#, no-c-format
+#: environments.xml:145
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 "<![CDATA[<Context>\n"
@@ -204,21 +279,23 @@
 "</Context>]]>"
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
-msgid "and make it available to your deployment by adding this to the bottom of <literal>web.xml</literal>:"
-msgstr "e renderlo disponibile nel proprio deploy aggiungendo questo in fondo a <literal>web.xml</literal>:"
+msgid ""
+"and make it available to your deployment by adding this to the bottom of "
+"<literal>web.xml</literal>:"
+msgstr ""
+"e renderlo disponibile nel proprio deploy aggiungendo questo in fondo a "
+"<literal>web.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:142
-#, no-c-format
+#: environments.xml:151
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
@@ -232,58 +309,87 @@
 "</resource-env-ref>]]>"
 
 #. Tag: para
-#: environments.xml:144
-#, no-c-format
-msgid "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, so the Manager will be available at <literal>java:comp/env/app/Manager</literal>"
-msgstr "Tomcat consente solo di associare le entry a <literal>java:comp/env</literal>, e quindi il Manager sarà disponibile in <literal>java:comp/env/app/Manager</literal>"
+#: environments.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
+"literal>"
+msgstr ""
+"Tomcat consente solo di associare le entry a <literal>java:comp/env</"
+"literal>, e quindi il Manager sarà disponibile in <literal>java:comp/env/app/"
+"Manager</literal>"
 
 #. Tag: para
-#: environments.xml:150
-#, no-c-format
-msgid "Web Beans also supports Servlet injection in Tomcat. To enable this, place the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</literal>, and add the following to your <literal>META-INF/context.xml</literal>:"
-msgstr "Web Beans supporta anche l'iniezione dei servlet in Tomcat. Per abilitarla, collocare <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</literal>, ed aggiungere il seguente codice a <literal>META-INF/context.xml</literal>:"
+#: environments.xml:158
+#, fuzzy, no-c-format
+msgid ""
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
+msgstr ""
+"Web Beans supporta anche l'iniezione dei servlet in Tomcat. Per abilitarla, "
+"collocare <literal>webbeans-tomcat-support.jar</literal> in <literal>"
+"$TOMCAT_HOME/lib</literal>, ed aggiungere il seguente codice a <literal>META-"
+"INF/context.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:157
-#, no-c-format
-msgid "<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat.WebBeansLifecycleListener\"/>]]>"
-msgstr "<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat.WebBeansLifecycleListener\"/>]]>"
+#: environments.xml:164
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
+msgstr ""
+"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
+"WebBeansLifecycleListener\"/>]]>"
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr "Jetty"
 
 #. Tag: para
-#: environments.xml:164
-#, no-c-format
-msgid "Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically bind the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
-msgstr "Come Tomcat, Jetty ha un JNDI read-only, e quindi Web Beans non può automaticamente associare il Manager. Per associare il Manager a JNDI occorre popolare <literal>META-INF/jetty-env.xml</literal> con i seguenti contesti:"
+#: environments.xml:171
+#, fuzzy, no-c-format
+msgid ""
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
+msgstr ""
+"Come Tomcat, Jetty ha un JNDI read-only, e quindi Web Beans non può "
+"automaticamente associare il Manager. Per associare il Manager a JNDI "
+"occorre popolare <literal>META-INF/jetty-env.xml</literal> con i seguenti "
+"contesti:"
 
 #. Tag: programlisting
-#: environments.xml:171
-#, no-c-format
+#: environments.xml:176
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//EN\"\n"
+"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
+"EN\"\n"
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
-"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
+"\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
 "   </New>\n"
 "</Configure>]]>"
 msgstr ""
-"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//EN\"\n"
+"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
+"EN\"\n"
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
-"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext\">\n"
+"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
+"\">\n"
 "   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
 "      <Arg>app/Manager</Arg>\n"
@@ -298,124 +404,164 @@
 "</Configure>]]>"
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
-msgid "Notice that Jetty doesn't not have built-in support for an <literal>javax.naming.spi.ObjectFactory</literal> like Tomcat, so it's necessary to manually create the <literal>javax.naming.Reference</literal> to wrap around it."
-msgstr "Si noti che Jetty non ha un supporto predefinito per <literal>javax.naming.spi.ObjectFactory</literal> come Tomcat, quindi è necessario creare manualmente il <literal>javax.naming.Reference</literal> con cui fare il wrap."
+msgid ""
+"Notice that Jetty doesn't not have built-in support for an <literal>javax."
+"naming.spi.ObjectFactory</literal> like Tomcat, so it's necessary to "
+"manually create the <literal>javax.naming.Reference</literal> to wrap around "
+"it."
+msgstr ""
+"Si noti che Jetty non ha un supporto predefinito per <literal>javax.naming."
+"spi.ObjectFactory</literal> come Tomcat, quindi è necessario creare "
+"manualmente il <literal>javax.naming.Reference</literal> con cui fare il "
+"wrap."
 
 #. Tag: para
-#: environments.xml:180
-#, no-c-format
-msgid "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, so the Manager will be available at <literal>java:comp/env/app/Manager</literal>"
-msgstr "Jetty consente solo di associare le entry a <literal>java:comp/env</literal>, e quindi il Manager sarà disponibile in <literal>java:comp/env/app/Manager</literal>"
+#: environments.xml:184
+#, fuzzy, no-c-format
+msgid ""
+"Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
+"literal>"
+msgstr ""
+"Jetty consente solo di associare le entry a <literal>java:comp/env</"
+"literal>, e quindi il Manager sarà disponibile in <literal>java:comp/env/app/"
+"Manager</literal>"
 
 #. Tag: para
-#: environments.xml:186
-#, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+#: environments.xml:189
+#, fuzzy, no-c-format
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr "Web Beans non supporta attualmente l'injection dei servlet in Jetty."
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr "Java SE"
 
 #. Tag: para
-#: environments.xml:197
-#, no-c-format
-msgid "Apart from improved integration of the Enterprise Java stack, Web Beans also provides a state of the art typesafe, stateful dependency injection framework. This is useful in a wide range of application types, enterprise or otherwise. To facilitate this, Web Beans provides a simple means for executing in the Java Standard Edition environment independently of any Enterprise Edition features."
-msgstr "Oltre alla migliorata integrazione dello stack Java Enterprise, Web Beans fornisce anche uno stato dell'arte typesafe, con dependency injection stateful . Questo è utile in un ampio raggio di applicazioni tipo, enterprise o altre. Per facilitare ciò, Web Beans fornisce semplici mezzi per eseguire in ambiente Java Standard Edition indipendentemente da qualsiasi caratteristica Enterprise Edition."
+#: environments.xml:200
+#, fuzzy, no-c-format
+msgid ""
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
+msgstr ""
+"Oltre alla migliorata integrazione dello stack Java Enterprise, Web Beans "
+"fornisce anche uno stato dell'arte typesafe, con dependency injection "
+"stateful . Questo è utile in un ampio raggio di applicazioni tipo, "
+"enterprise o altre. Per facilitare ciò, Web Beans fornisce semplici mezzi "
+"per eseguire in ambiente Java Standard Edition indipendentemente da "
+"qualsiasi caratteristica Enterprise Edition."
 
 #. Tag: para
-#: environments.xml:205
-#, no-c-format
-msgid "When executing in the SE environment the following features of Web Beans are available:"
-msgstr "Eseguendo in ambiente SE sono disponibili le seguenti caratteristiche di Web Beans:"
+#: environments.xml:208
+#, fuzzy, no-c-format
+msgid ""
+"When executing in the SE environment the following features of Weld are "
+"available:"
+msgstr ""
+"Eseguendo in ambiente SE sono disponibili le seguenti caratteristiche di Web "
+"Beans:"
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
-msgstr "Semplice Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
+msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr "Iniezioni di dipendenza typesafe"
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr "Applicazione e contesti dipendenti"
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
-msgstr "Tipi di binding"
+msgid "Qualifiers"
+msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr "Tipi di deploy"
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr "Stereotipi"
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr "Modello a eventi typesafe"
 
 #. Tag: title
-#: environments.xml:247
-#, no-c-format
-msgid "Web Beans SE Module"
+#: environments.xml:246
+#, fuzzy, no-c-format
+msgid "CDI SE Module"
 msgstr "Module Web Beans SE"
 
 #. Tag: para
-#: environments.xml:249
-#, no-c-format
-msgid "To make life easy for developers Web Beans provides a special module with a main method which will boot the Web Beans manager, automatically registering all simple Web Beans found on the classpath. This eliminates the need for application developers to write any bootstrapping code. The entry point for a Web Beans SE applications is a simple Web Bean which observes the standard <literal>@Deployed Manager</literal> event. The command line paramters can be injected using either of the following:"
-msgstr "Per semplificare la vita agli sviluppatori Web Beans fornisce un modulo speciale con un metodo main che avvia il manager Web Beans, registrando automaticamente tutti i Web BEans semplici trovati nel classpath. Questo elimina il bisogno da parte degli sviluppatori di scrivere codice per il bootstrap. L'entry point per le applicazioni Web Beans SE è un semplice Web Bean che osserva l'evento standard <literal>@Deployed Manager</literal>. I parametri da linea di comando possono essere iniettati usando una delle seguenti:"
+#: environments.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
+msgstr ""
+"Per semplificare la vita agli sviluppatori Web Beans fornisce un modulo "
+"speciale con un metodo main che avvia il manager Web Beans, registrando "
+"automaticamente tutti i Web BEans semplici trovati nel classpath. Questo "
+"elimina il bisogno da parte degli sviluppatori di scrivere codice per il "
+"bootstrap. L'entry point per le applicazioni Web Beans SE è un semplice Web "
+"Bean che osserva l'evento standard <literal>@Deployed Manager</literal>. I "
+"parametri da linea di comando possono essere iniettati usando una delle "
+"seguenti:"
 
 #. Tag: programlisting
-#: environments.xml:258
-#, no-c-format
+#: environments.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 "<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"@Parameters String[] paramsArray; // useful for compatability with existing "
+"classes]]>"
 
 #. Tag: para
-#: environments.xml:259
-#, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+#: environments.xml:257
+#, fuzzy, no-c-format
+msgid "Here's an example of a simple CDI SE application:"
 msgstr "Ecco un esempio di una semplice applicazione Web Beans SE:"
 
 #. Tag: programlisting
-#: environments.xml:263
-#, no-c-format
+#: environments.xml:261
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped\n"
@@ -430,34 +576,45 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:265
-#, no-c-format
-msgid "Web Beans SE applications are started by running the following main method."
-msgstr "Le applicazioni Web Beans SE vengono avviate eseguendo il seguente metodo main."
+#: environments.xml:263
+#, fuzzy, no-c-format
+msgid ""
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
+msgstr ""
+"Le applicazioni Web Beans SE vengono avviate eseguendo il seguente metodo "
+"main."
 
 #. Tag: programlisting
 #: environments.xml:267
-#, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+#, fuzzy, no-c-format
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
 
 #. Tag: para
 #: environments.xml:269
-#, no-c-format
-msgid "If you need to do any custom initialization of the Web Beans manager, for example registering custom contexts or initializing resources for your beans you can do so in response to the <literal>@Initialized Manager</literal> event. The following example registers a custom context:"
-msgstr "Se occorre fare una qualsiasi inizializzazione personalizzata del manager Web Beans, per esempio registrando i contesti personalizzati o inizializzando le risorse dei bean, si può fare questo in risposta all'evento <literal>@Initialized Manager</literal>. Il seguente esempio registra un contesto personalizzato:"
+#, fuzzy, no-c-format
+msgid ""
+"If you need to do any custom initialization of the CDI bean manager, for "
+"example registering custom contexts or initializing resources for your beans "
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
+msgstr ""
+"Se occorre fare una qualsiasi inizializzazione personalizzata del manager "
+"Web Beans, per esempio registrando i contesti personalizzati o "
+"inizializzando le risorse dei bean, si può fare questo in risposta "
+"all'evento <literal>@Initialized Manager</literal>. Il seguente esempio "
+"registra un contesto personalizzato:"
 
 #. Tag: programlisting
-#: environments.xml:274
-#, no-c-format
+#: environments.xml:276
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PerformSetup\n"
@@ -470,15 +627,65 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:277
-#, no-c-format
-msgid "The command line parameters do not become available for injection until the <literal>@Deployed Manager</literal> event is fired. If you need access to the parameters during initialization you can do so via the <literal>public static String getParameters()</literal> method in <literal>StartMain</literal>."
-msgstr "I parametri da linea di comando non sono disponibili per l'injection fino a che non viene lanciato l'evento <literal>@Deployed Manager</literal>. Se serve l'accesso ai parametri durante l'inizializzazione si può averlo tramite il metodo <literal>public static String getParameters()</literal> in <literal>StartMain</literal>."
+#: environments.xml:279
+#, fuzzy, no-c-format
+msgid ""
+"The command line parameters do not become available for injection until the "
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
+msgstr ""
+"I parametri da linea di comando non sono disponibili per l'injection fino a "
+"che non viene lanciato l'evento <literal>@Deployed Manager</literal>. Se "
+"serve l'accesso ai parametri durante l'inizializzazione si può averlo "
+"tramite il metodo <literal>public static String getParameters()</literal> in "
+"<literal>StartMain</literal>."
 
+#~ msgid ""
+#~ "No special configuration of your application, beyond adding either "
+#~ "<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
+#~ "literal> is needed."
+#~ msgstr ""
+#~ "Non occorre alcuna configurazione speciale dell'applicazione oltre "
+#~ "all'aggiunta di <literal>META-INF/beans.xml</literal> o <literal>WEB-INF/"
+#~ "beans.xml</literal>."
+
+#~ msgid ""
+#~ "If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans "
+#~ "as an extra. First we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Se si usa JBoss AS 5.0.1.GA allora occorre installare Web Beans come "
+#~ "extra. Innanzitutto occorre dire a Web Beans dove si trova JBoss. "
+#~ "Modificare <literal>jboss-as/build.properties</literal> ed impostare la "
+#~ "proprietà <literal>jboss.home</literal>. Per esempio:"
+
+#~ msgid "Now we can install Web Beans:"
+#~ msgstr "Ora installiamo Web Beans:"
+
+#~ msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
+#~ msgstr ""
+#~ "Web Beans è incluso in tutte le release di JBoss AS da 5.1 in avanti."
+
+#~ msgid "TODO"
+#~ msgstr "DA FARE"
+
+#~ msgid "Simple Web Beans (POJOs)"
+#~ msgstr "Semplice Web Beans (POJOs)"
+
+#~ msgid "Binding Types"
+#~ msgstr "Tipi di binding"
+
+#~ msgid "Deployment Types"
+#~ msgstr "Tipi di deploy"
+
 #~ msgid "Tomcat (or any plain Servlet container)"
 #~ msgstr "Tomcat (o qualsiasi Servlet container)"
+
 #~ msgid "Decorators"
 #~ msgstr "Decoratori"
+
 #~ msgid "(TODO: Interceptors ?)"
 #~ msgstr "(DA FARE: Interceptors ?)"
-

Modified: doc/trunk/reference/it-IT/events.po
===================================================================
--- doc/trunk/reference/it-IT/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-25 13:41+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,268 +22,414 @@
 #. Tag: para
 #: events.xml:6
 #, no-c-format
-msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
-msgstr "Il sistema di notifica a eventi di Web Beans consente a Web Beans di interagire in maniera totalmente disaccoppiata. I <emphasis>produttori</emphasis> di eventi sollevano eventi che vengono consegnati agli <emphasis>osservatori</emphasis> di eventi tramite il manager Web Bean. Lo schema base può suonare simile al familiare pattern observer/observable, ma ci sono un paio di differenze:"
+msgid ""
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
-msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
-msgstr "non solo i produttori di eventi sono disaccoppiati dagli osservatori; gli osservatori sono completamente disaccoppiati dai produttori,"
+msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
 
 #. Tag: para
 #: events.xml:18
 #, no-c-format
-msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
-msgstr "gli osservatori possono specificare una combinazione di \"selettori\" per restringere il set di notifiche di eventi da ricevere, e"
+msgid ""
+"not only are event producers decoupled from observers; observers are "
+"completely decoupled from producers,"
+msgstr ""
+"non solo i produttori di eventi sono disaccoppiati dagli osservatori; gli "
+"osservatori sono completamente disaccoppiati dai produttori,"
 
 #. Tag: para
 #: events.xml:22
 #, no-c-format
-msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
-msgstr "gli osservatori possono essere notificati immediatamente, o possono specificare che la consegna degli eventi venga ritardata fino alla fine della transazione conrrente"
+msgid ""
+"observers can specify a combination of \"selectors\" to narrow the set of "
+"event notifications they will receive, and"
+msgstr ""
+"gli osservatori possono specificare una combinazione di \"selettori\" per "
+"restringere il set di notifiche di eventi da ricevere, e"
 
-#. Tag: title
+#. Tag: para
 #: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "Osservatori di eventi"
+#, fuzzy, no-c-format
+msgid ""
+"observers can be notified immediately, or can specify that delivery of the "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"gli osservatori possono essere notificati immediatamente, o possono "
+"specificare che la consegna degli eventi venga ritardata fino alla fine "
+"della transazione conrrente"
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
-msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
-msgstr "Un <emphasis>metodo osservatore</emphasis> è un metodo di un Web Bean con un parametro annotato <literal>@Observes</literal>."
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "Produttori di eventi"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgid ""
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
+msgstr ""
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
-msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "Il parametro annotato viene chiamato <emphasis>parametro evento</emphasis>. Il tipo di parametro evento è il <emphasis>tipo evento</emphasis> osservato. I metodi osservatori possono anche specificare dei \"selettori\", che sono solo istanze di tipi di binding di Web Beans. Quando un tipo di binding viene usato come selettore di eventi viene chiamato <emphasis>tipo binding di evento</emphasis>. "
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
-#. Tag: para
-#: events.xml:43
+#. Tag: title
+#: events.xml:57
 #, no-c-format
-msgid "We specify the event bindings of the observer method by annotating the event parameter:"
-msgstr "Specifichiamo i binding di evento del metodo osservatore annotando il parametro evento:"
+msgid "Event observers"
+msgstr "Osservatori di eventi"
 
+#. Tag: para
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"Un <emphasis>metodo osservatore</emphasis> è un metodo di un Web Bean con un "
+"parametro annotato <literal>@Observes</literal>."
+
 #. Tag: programlisting
-#: events.xml:46
-#: events.xml:190
+#: events.xml:64
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"Il parametro annotato viene chiamato <emphasis>parametro evento</emphasis>. "
+"Il tipo di parametro evento è il <emphasis>tipo evento</emphasis> osservato. "
+"I metodi osservatori possono anche specificare dei \"selettori\", che sono "
+"solo istanze di tipi di binding di Web Beans. Quando un tipo di binding "
+"viene usato come selettore di eventi viene chiamato <emphasis>tipo binding "
+"di evento</emphasis>. "
+
+#. Tag: programlisting
+#: events.xml:72 events.xml:240
 #, no-c-format
-msgid "An observer method need not specify any event bindings &#151; in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
-msgstr "Un metodo osservatore non ha bisogno di specificare alcun binding di evento &#151; in questo caso è interessato a <emphasis>tutti</emphasis> gli eventi di un particolare tipo. Se specifica dei binding di evento, è solamente interessato agli eventi che hanno anche gli stessi binding di evento."
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
-msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
-msgstr "Il metodo osservatore può avere parametri addizionali che vengono iniettati secondo la solita semantica di iniezione del parametro del metodo Web Beans."
+#: events.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"Un metodo osservatore non ha bisogno di specificare alcun binding di evento "
+"&#151; in questo caso è interessato a <emphasis>tutti</emphasis> gli eventi "
+"di un particolare tipo. Se specifica dei binding di evento, è solamente "
+"interessato agli eventi che hanno anche gli stessi binding di evento."
 
+#. Tag: para
+#: events.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"Il metodo osservatore può avere parametri addizionali che vengono iniettati "
+"secondo la solita semantica di iniezione del parametro del metodo Web Beans."
+
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "Produttori di eventi"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
-msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
-msgstr "Il produttore dell'evento può ottenere tramite iniezione un oggetto <emphasis>notificatore d'evento</emphasis>:"
+msgid ""
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
-msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
-msgstr "L'annotazione <literal>@Observable</literal> definisce implicitamente un Web Bean con scope <literal>@Dependent</literal> e tipo di deploy <literal>@Standard</literal>, con un'implementazione fornita dal manager Web Bean."
+#: events.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"Un produttore solleva eventi chiamando il metodo <literal>fire()</literal> "
+"dell'intefaccia <literal>Event</literal>, passando un <emphasis>oggetto "
+"evento</emphasis>:"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
-msgstr "Un produttore solleva eventi chiamando il metodo <literal>fire()</literal> dell'intefaccia <literal>Event</literal>, passando un <emphasis>oggetto evento</emphasis>:"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
-msgstr "Un oggetto evento può essere un'istanza di una classe Java che non ha variabili tipo o parametri tipo wildcard. L'evento verrà consegnato ad ogni metodo osservatore che:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "L'evento verrà consegnato ad ogni metodo osservatore che:"
 
 #. Tag: para
-#: events.xml:83
-#: events.xml:107
-#: events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "ha un parametro evento a cui l'oggetto evento è assegnabile, e"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "non specifica binding d'evento."
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
-msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Il manager Web Bean chiama semplicemente tutti i metodi osservatori, passando l'oggento evento come valore del parametro evento. Se il metodo osservatore lancia un'eccezione, il manager Web Bean smette di chiamare i metodi osservatori, e l'eccezione viene rilanciata dal metodo <literal>fire()</literal>."
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Il manager Web Bean chiama semplicemente tutti i metodi osservatori, "
+"passando l'oggento evento come valore del parametro evento. Se il metodo "
+"osservatore lancia un'eccezione, il manager Web Bean smette di chiamare i "
+"metodi osservatori, e l'eccezione viene rilanciata dal metodo <literal>fire()"
+"</literal>."
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
-msgstr "Per specificare un \"selettore\" il produttore d'evento può passare un'istanza del tipo di binding d'evento al metodo <literal>fire()</literal>:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
-msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
-msgstr "La classe helper <literal>AnnotationLiteral</literal> rende possibile istanziare inline i tipi di binding, dato che questo risulta difficile da fare in Java."
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "L'evento verrà consegnato ad ogni metodo osservatore che:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
-msgstr "non specifica alcun event binding <emphasis>tranne</emphasis> per gli event binding passati a <literal>fire()</literal>."
+#: events.xml:144
+#, fuzzy, no-c-format
+msgid ""
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"Quindi ciascun evento sollevato tramite quest'istanza di <literal>Event</"
+"literal> ha annotato l'event binding. L'evento verrà consegnato ad ogni "
+"metodo osservatore che:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
-msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
-msgstr "In alternativa gli event binding possono essere specificati annotando il punto di iniezione del notificato d'evento:"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "ha un parametro evento a cui l'oggetto evento è assegnabile, e"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
+msgid ""
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"non specifica alcun event binding <emphasis>tranne</emphasis> per gli event "
+"binding passati a <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
-msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
-msgstr "Quindi ciascun evento sollevato tramite quest'istanza di <literal>Event</literal> ha annotato l'event binding. L'evento verrà consegnato ad ogni metodo osservatore che:"
+msgid ""
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
-# la frase è ambigua...."or the annotated..."  si lega a "to" o a "except" ??
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
-msgstr "non specifica alcun event binding <emphasis>tranne</emphasis> per gli event binding passati a <literal>fire()</literal> o per gli event binding annotati del punto di iniezione del notificatore eventi."
+msgid ""
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "Osservatori transazionali"
+
+#. Tag: para
+#: events.xml:180
 #, no-c-format
-msgid "Registering observers dynamically"
-msgstr "Registrare dinamicamente gli osservatori"
+msgid ""
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:186
 #, no-c-format
-msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
-msgstr "E' spesso utile registrare un osservatore d'evento in modo dinamico. L'applicazione può implementare l'interfaccia <literal>Observer</literal> e registrare un'istanza con un notificatore d'evento chiamando il metodo <literal>observe()</literal>."
+msgid ""
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:144
-#, no-c-format
-msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
-msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+#: events.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:146
+#: events.xml:193
 #, no-c-format
-msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
-msgstr "I tipi di event binding possono essere specificati dal punto di iniezione del notificatore d'eventi o passando istance del tipo di event binding al metodo <literal>observe()</literal>:"
-
-#. Tag: programlisting
-#: events.xml:149
-#, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "Event binding con membri"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "Un tipo di event binding può avere membri annotati:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -294,186 +440,282 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "Il valore del membro è usato per restringere i messaggi consegnati all'osservatore:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"Il valore del membro è usato per restringere i messaggi consegnati "
+"all'osservatore:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
-msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
-msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgid ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
-msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
-msgstr "I membri del tipo di eventbinding possono essere specificati staticamente dal produttore di eventi tramite annotazioni nel punto di iniezione del notificatore d'evento:"
+#: events.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Event qualifier type members may be specified statically by the event "
+"producer, via annotations at the event notifier injection point:"
+msgstr ""
+"I membri del tipo di eventbinding possono essere specificati staticamente "
+"dal produttore di eventi tramite annotazioni nel punto di iniezione del "
+"notificatore d'evento:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
-msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
-msgstr "Alternativamente il valore del membro del tipo di event binding può esserre dinamicamente determinato dal produttore di eventi. Iniziamo scrivendo una sottoclasse astratta di <literal>AnnotationLiteral</literal>:"
+#: events.xml:217
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"Alternativamente il valore del membro del tipo di event binding può esserre "
+"dinamicamente determinato dal produttore di eventi. Iniziamo scrivendo una "
+"sottoclasse astratta di <literal>AnnotationLiteral</literal>:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
-msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
-msgstr "Il produttore di eventi passa un'istanza di questa classe a <literal>fire()</literal>:"
+#: events.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"The event producer passes an instance of this class to <literal>select()</"
+"literal>:"
+msgstr ""
+"Il produttore di eventi passa un'istanza di questa classe a <literal>fire()</"
+"literal>:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+#: events.xml:226
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "Event binding multipli"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "I tipi di event binding possono essere combinati, per esempio:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
-msgid "When this event occurs, all of the following observer methods will be notified:"
-msgstr "Quando si genera un evento, tutti i seguenti metodi osservatori verranno notificati:"
+msgid ""
+"When this event occurs, all of the following observer methods will be "
+"notified:"
+msgstr ""
+"Quando si genera un evento, tutti i seguenti metodi osservatori verranno "
+"notificati:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
-msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
-msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "Osservatori transazionali"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
-msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
-msgstr "Gli osservatori transazionali ricevono notifiche d'evento prima o dopo la fase di completamento della transazione, nella quale l'evento viene sollevato. Per esempio, il seguente metodo osservatore ha bisogno di aggiornare il set di risultati della query memorizzato nel contesto dell'applicazione, ma solo quando hanno successo le transazioni che aggiornano l'albero <literal>Category</literal>."
+msgid ""
+"Transactional observers receive their event notifications during the before "
+"or after completion phase of the transaction in which the event was raised. "
+"For example, the following observer method needs to refresh a query result "
+"set that is cached in the application context, but only when transactions "
+"that update the <literal>Category</literal> tree succeed:"
+msgstr ""
+"Gli osservatori transazionali ricevono notifiche d'evento prima o dopo la "
+"fase di completamento della transazione, nella quale l'evento viene "
+"sollevato. Per esempio, il seguente metodo osservatore ha bisogno di "
+"aggiornare il set di risultati della query memorizzato nel contesto "
+"dell'applicazione, ma solo quando hanno successo le transazioni che "
+"aggiornano l'albero <literal>Category</literal>."
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
-msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
-msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+#: events.xml:256
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
+"CategoryUpdateEvent event) { ... }]]>"
+msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "Ci sono tre tipi di osservatori transazionali:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
-msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
-msgstr "gli osservatori <literal>@AfterTransactionSuccess</literal> vengono chiamati dopo la fase di completamento della transazione, ma solo se questa si completa con successo"
+msgid ""
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
-msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
-msgstr "gli osservatori <literal>@AfterTransactionFailure</literal> vengono chiamati dopo la fase di completamento della transazione, ma solo se questa fallisce e quindi non completa con successo"
+#: events.xml:265
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"gli osservatori <literal>@AfterTransactionSuccess</literal> vengono chiamati "
+"dopo la fase di completamento della transazione, ma solo se questa si "
+"completa con successo"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
-msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
-msgstr "gli osservatori <literal>@AfterTransactionCompletion</literal> vengono chiamati dopo la fase di completamento della transazione"
+#: events.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"gli osservatori <literal>@AfterTransactionFailure</literal> vengono chiamati "
+"dopo la fase di completamento della transazione, ma solo se questa fallisce "
+"e quindi non completa con successo"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
-msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
-msgstr "gli osservatori <literal>@BeforeTransactionCompletion</literal> vengono chiamati prima della fase di completamento della transazione"
+#: events.xml:277
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"gli osservatori <literal>@AfterTransactionCompletion</literal> vengono "
+"chiamati dopo la fase di completamento della transazione"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
-msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
-msgstr "Gli osservatori transazionali sono molto importanti in un modello ad oggetto stateful come Web Beans, poiché lo stato è spesso mantenuto per un tempo più lungo di una singola transazione atomica."
+#: events.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"gli osservatori <literal>@BeforeTransactionCompletion</literal> vengono "
+"chiamati prima della fase di completamento della transazione"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"Gli osservatori transazionali sono molto importanti in un modello ad oggetto "
+"stateful come Web Beans, poiché lo stato è spesso mantenuto per un tempo più "
+"lungo di una singola transazione atomica."
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "Si immagini di avere cachato un risultato di query JPA nello scope di applicazione:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"Si immagini di avere cachato un risultato di query JPA nello scope di "
+"applicazione:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -487,7 +729,8 @@
 "    @Produces @Catalog \n"
 "    List<Product> getCatalog() {\n"
 "        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
 "                .getResultList();\n"
 "        }\n"
 "        return products;\n"
@@ -496,39 +739,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
-msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
-msgstr "Di tanto in tanto un <literal>Product</literal> viene creato o cancellato. Quando questo avviene occorre aggiornare il catalogo del <literal>Product</literal>. Ma si dovrebbe aspettare che la transazione  <emphasis>abbia completato</emphasis> con successo prima di eseguire l'aggiornamento!"
+msgid ""
+"From time to time, a <literal>Product</literal> is created or deleted. When "
+"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
+"we should wait until <emphasis>after</emphasis> the transaction completes "
+"successfully before performing this refresh!"
+msgstr ""
+"Di tanto in tanto un <literal>Product</literal> viene creato o cancellato. "
+"Quando questo avviene occorre aggiornare il catalogo del <literal>Product</"
+"literal>. Ma si dovrebbe aspettare che la transazione  <emphasis>abbia "
+"completato</emphasis> con successo prima di eseguire l'aggiornamento!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
-msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
-msgstr "Il Web Bean che crea o cancella <literal>Product</literal> può sollevare eventi, per esempio:"
+#: events.xml:305
+#, fuzzy, no-c-format
+msgid ""
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"Il Web Bean che crea o cancella <literal>Product</literal> può sollevare "
+"eventi, per esempio:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -552,28 +806,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
-msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
-msgstr "E ora <literal>Catalog</literal> può osservare gli eventi dopo il completamento (con successo) della transazione:"
+msgid ""
+"And now <literal>Catalog</literal> can observe the events after successful "
+"completion of the transaction:"
+msgstr ""
+"E ora <literal>Catalog</literal> può osservare gli eventi dopo il "
+"completamento (con successo) della transazione:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
+"product) {\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
-"        products.add(product);\n"
-"    }\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
+"product) {\n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -581,13 +838,137 @@
 "\n"
 "    ...\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
 "        products.add(product);\n"
 "    }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
 "        products.remove(product);\n"
 "    }\n"
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Il sistema di notifica a eventi di Web Beans consente a Web Beans di "
+#~ "interagire in maniera totalmente disaccoppiata. I <emphasis>produttori</"
+#~ "emphasis> di eventi sollevano eventi che vengono consegnati agli "
+#~ "<emphasis>osservatori</emphasis> di eventi tramite il manager Web Bean. "
+#~ "Lo schema base può suonare simile al familiare pattern observer/"
+#~ "observable, ma ci sono un paio di differenze:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "Specifichiamo i binding di evento del metodo osservatore annotando il "
+#~ "parametro evento:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "Il produttore dell'evento può ottenere tramite iniezione un oggetto "
+#~ "<emphasis>notificatore d'evento</emphasis>:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "L'annotazione <literal>@Observable</literal> definisce implicitamente un "
+#~ "Web Bean con scope <literal>@Dependent</literal> e tipo di deploy "
+#~ "<literal>@Standard</literal>, con un'implementazione fornita dal manager "
+#~ "Web Bean."
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Un oggetto evento può essere un'istanza di una classe Java che non ha "
+#~ "variabili tipo o parametri tipo wildcard. L'evento verrà consegnato ad "
+#~ "ogni metodo osservatore che:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "Per specificare un \"selettore\" il produttore d'evento può passare "
+#~ "un'istanza del tipo di binding d'evento al metodo <literal>fire()</"
+#~ "literal>:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "La classe helper <literal>AnnotationLiteral</literal> rende possibile "
+#~ "istanziare inline i tipi di binding, dato che questo risulta difficile da "
+#~ "fare in Java."
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "In alternativa gli event binding possono essere specificati annotando il "
+#~ "punto di iniezione del notificato d'evento:"
+
+# la frase è ambigua...."or the annotated..."  si lega a "to" o a "except" ??
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "non specifica alcun event binding <emphasis>tranne</emphasis> per gli "
+#~ "event binding passati a <literal>fire()</literal> o per gli event binding "
+#~ "annotati del punto di iniezione del notificatore eventi."
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "Registrare dinamicamente gli osservatori"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "E' spesso utile registrare un osservatore d'evento in modo dinamico. "
+#~ "L'applicazione può implementare l'interfaccia <literal>Observer</literal> "
+#~ "e registrare un'istanza con un notificatore d'evento chiamando il metodo "
+#~ "<literal>observe()</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "I tipi di event binding possono essere specificati dal punto di iniezione "
+#~ "del notificatore d'eventi o passando istance del tipo di event binding al "
+#~ "metodo <literal>observe()</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/it-IT/example.po
===================================================================
--- doc/trunk/reference/it-IT/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-05 00:25+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,17 +21,23 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
-msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
-msgstr "Illustriamo queste idee con un esempio completo. Implementiamo il login/logout dell'utente per un'applicazione che utilizza JSF. Innanzitutto definiamo un Web Bean che mantenga username e password digitati durante il login:"
+#, fuzzy, no-c-format
+msgid ""
+"Let's illustrate these ideas with a full example. We're going to implement "
+"user login/logout for an application that uses JSF. First, we'll define a "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"Illustriamo queste idee con un esempio completo. Implementiamo il login/"
+"logout dell'utente per un'applicazione che utilizza JSF. Innanzitutto "
+"definiamo un Web Bean che mantenga username e password digitati durante il "
+"login:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -40,7 +46,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -59,23 +64,26 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Questo Web Bean è associato al login all'interno della seguente form JSF:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"Questo Web Bean è associato al login all'interno della seguente form JSF:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
 "<![CDATA[<h:form>\n"
@@ -85,53 +93,63 @@
 "        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
 "        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
 "    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
-msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
-msgstr "Il vero lavoro è fatto da un Web Bean con scope di sessione che mantiene le informazioni sull'utente correntemente loggato ed espone l'entity <literal>User</literal> agli altri Web Beans:"
+#, fuzzy, no-c-format
+msgid ""
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"Il vero lavoro è fatto da un Web Bean con scope di sessione che mantiene le "
+"informazioni sull'utente correntemente loggato ed espone l'entity "
+"<literal>User</literal> agli altri Web Beans:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -146,7 +164,8 @@
 "    public void login() {\n"
 "            \n"
 "        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
 "           .setParameter(\"username\", credentials.getUsername())\n"
 "           .setParameter(\"password\", credentials.getPassword())\n"
 "           .getResultList();\n"
@@ -172,19 +191,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "<literal>@LoggedIn</literal> è un'annotazione di binding:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -192,26 +227,44 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "Ora qualsiasi altro Web Bean può facilmente iniettare l'utente corrente:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"Ora qualsiasi altro Web Bean può facilmente iniettare l'utente corrente:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -228,8 +281,30 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
-msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
-msgstr "Quest'esempio è un assaggio del modello di programmazione con Web Bean. Nel prossimo capitolo esploreremo la dependency injection dei Web Bean con maggior profondità."
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
 
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
+msgid ""
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"Quest'esempio è un assaggio del modello di programmazione con Web Bean. Nel "
+"prossimo capitolo esploreremo la dependency injection dei Web Bean con "
+"maggior profondità."
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr "<literal>@LoggedIn</literal> è un'annotazione di binding:"

Modified: doc/trunk/reference/it-IT/extend.po
===================================================================
--- doc/trunk/reference/it-IT/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-20 16:41+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,280 +14,287 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Estendere i Web Beans"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
-msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
-msgstr "Web Beans è inteso essere una piattaforma per framework, estensioni e integrazione con altre tecnologie. Quindi Web Beans espone un set di SPI (Service Provider Interface) per l'uso da parte degli sviluppatori di estensioni portabili a Web Beans. Per esempio, i seguentitipi di estensione sono state prese in considerazione dai progettisti di Web Beans:"
+#: extend.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beans è inteso essere una piattaforma per framework, estensioni e "
+"integrazione con altre tecnologie. Quindi Web Beans espone un set di SPI "
+"(Service Provider Interface) per l'uso da parte degli sviluppatori di "
+"estensioni portabili a Web Beans. Per esempio, i seguentitipi di estensione "
+"sono state prese in considerazione dai progettisti di Web Beans:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "Integrazione con i motori di Gestione dei Processi di Business,"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
-msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
-msgstr "integrazione con framework di terze-parti quali Spring, Seam, GWT o Wicket, e"
+msgid ""
+"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
+"and"
+msgstr ""
+"integrazione con framework di terze-parti quali Spring, Seam, GWT o Wicket, e"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "nuova tecnologia basata sul modello di programmazione di Web Beans."
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
-msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
-msgstr "Il nervo centrale per l'estensione di Web Beans è l'oggetto <literal>Manager</literal>."
+msgid "More formally, according to the spec:"
+msgstr ""
 
-#. Tag: title
-#: extend.xml:29
+#. Tag: para
+#: extend.xml:32
 #, no-c-format
-msgid "The <literal>Manager</literal> object"
-msgstr "L'oggetto <literal>Manager</literal>"
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:31
+#: extend.xml:35
 #, no-c-format
-msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "L'interfaccia <literal>Manager</literal> consente di registrare ed ottenere programmaticamente interceptor, decoratori, osservatori e contesti di Web Beans."
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
 
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object."
+msgstr ""
+"Il nervo centrale per l'estensione di Web Beans è l'oggetto "
+"<literal>Manager</literal>."
+
+#. Tag: title
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
+msgstr "L'oggetto <literal>Manager</literal>"
+
+#. Tag: para
+#: extend.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"L'interfaccia <literal>Manager</literal> consente di registrare ed ottenere "
+"programmaticamente interceptor, decoratori, osservatori e contesti di Web "
+"Beans."
+
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "Possiamo ottenere un'istanza di <literal>Manager</literal> via iniezione:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"Possiamo ottenere un'istanza di <literal>Manager</literal> via iniezione:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "La classe <literal>Bean</literal>"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
-msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
-msgstr "Istanze della classe astratta <literal>Bean</literal> rappresentano i Web Beans. C'è un'istanza di <literal>Bean</literal> registrata con l'oggetto <literal>Manager</literal> per ogni Web Bean dell'applicazione."
+#: extend.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+"Il nervo centrale per l'estensione di Web Beans è l'oggetto "
+"<literal>Manager</literal>."
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "L'interfaccia <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"Istanze della classe astratta <literal>Bean</literal> rappresentano i Web "
+"Beans. C'è un'istanza di <literal>Bean</literal> registrata con l'oggetto "
+"<literal>Manager</literal> per ogni Web Bean dell'applicazione."
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
-msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
-msgstr "E' possibile estendere la classe <literal>Bean</literal> e registrare le istanze chiamando <literal>Manager.addBean()</literal> per fornire supporto a nuovi tipi di Web Beans, oltre a quelli definiti dalla specifica Web Beans (semplici ed enterprise, metodi produttori e endpoint JMS). Per esempio possiamo usare la classe <literal>Bean</literal> per consentire ad oggetti gestiti da altri framework di essere iniettati nei Web Beans."
+#: extend.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"E' possibile estendere la classe <literal>Bean</literal> e registrare le "
+"istanze chiamando <literal>Manager.addBean()</literal> per fornire supporto "
+"a nuovi tipi di Web Beans, oltre a quelli definiti dalla specifica Web Beans "
+"(semplici ed enterprise, metodi produttori e endpoint JMS). Per esempio "
+"possiamo usare la classe <literal>Bean</literal> per consentire ad oggetti "
+"gestiti da altri framework di essere iniettati nei Web Beans."
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
-msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
-msgstr "Ci sono due sottoclassi di <literal>Bean</literal> definite dalla specifica Web Beans: <literal>Interceptor</literal> e <literal>Decorator</literal>."
+#: extend.xml:104
+#, fuzzy, no-c-format
+msgid ""
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
+"specification: <literal>Interceptor</literal> and <literal>Decorator</"
+"literal>."
+msgstr ""
+"Ci sono due sottoclassi di <literal>Bean</literal> definite dalla specifica "
+"Web Beans: <literal>Interceptor</literal> e <literal>Decorator</literal>."
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "L'interfaccia <literal>Context</literal>"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
-msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
-msgstr "L'interfaccia <literal>Context</literal> supporta l'aggiunta di nuovi scope ai Web Beans, o l'estensione di scope esistenti a nuovi ambienti."
+#: extend.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Context</literal> interface supports addition of new scopes to "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"L'interfaccia <literal>Context</literal> supporta l'aggiunta di nuovi scope "
+"ai Web Beans, o l'estensione di scope esistenti a nuovi ambienti."
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -300,8 +307,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
-msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
-msgstr "Per esempio possiamo implementare <literal>Context</literal> per aggiungere uno scope di tipo business process a Web Beans, o per aggiungere il supporto allo scope di conversazione ad un'applicazione che impiega Wicket."
+#: extend.xml:121
+#, fuzzy, no-c-format
+msgid ""
+"For example, we might implement <literal>Context</literal> to add a business "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"Per esempio possiamo implementare <literal>Context</literal> per aggiungere "
+"uno scope di tipo business process a Web Beans, o per aggiungere il supporto "
+"allo scope di conversazione ad un'applicazione che impiega Wicket."
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Estendere i Web Beans"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "La classe <literal>Bean</literal>"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/it-IT/extensions.po
===================================================================
--- doc/trunk/reference/it-IT/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-21 20:36+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,46 +15,56 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
-#, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+#: extensions.xml:8
+#, fuzzy, no-c-format
+msgid "CDI extensions available as part of Weld"
 msgstr "Estensioni JSR-299 disponibili come parte di Web Beans"
 
 #. Tag: para
-#: extensions.xml:7
-#, no-c-format
-msgid "These modules are usable on any JSR-299 implementation, not just Web Beans!"
-msgstr "Questi moduli sono utilizzabili su qualsiasi implementazione JSR-299, non solo Web Beans!"
+#: extensions.xml:11
+#, fuzzy, no-c-format
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
+msgstr ""
+"Questi moduli sono utilizzabili su qualsiasi implementazione JSR-299, non "
+"solo Web Beans!"
 
 #. Tag: title
-#: extensions.xml:15
-#, no-c-format
-msgid "Web Beans Logger"
+#: extensions.xml:17
+#, fuzzy, no-c-format
+msgid "Weld Logger"
 msgstr "Web Beans Logger"
 
 #. Tag: para
-#: extensions.xml:17
-#, no-c-format
-msgid "Adding logging to your application is now even easier with simple injection of a logger object into any JSR-299 bean. Simply annotate a org.jboss.webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an appropriate logger object will be injected into any instance of the bean."
-msgstr "Aggiungere la parte di logging alla propria applicazione adesso è facilissimo con la semplice injection di un oggetto logger in un qualsiasi bean JSR-299. Semplicemente si annoti un membro di tipo org.jboss.webbeans.log.Log con <emphasis>@Logger</emphasis> ed un oggetto logger appropriato verrà iniettato in una qualsiasi istanza del bean."
+#: extensions.xml:19
+#, fuzzy, no-c-format
+msgid ""
+"Adding logging to your application is now even easier with simple injection "
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
+msgstr ""
+"Aggiungere la parte di logging alla propria applicazione adesso è "
+"facilissimo con la semplice injection di un oggetto logger in un qualsiasi "
+"bean JSR-299. Semplicemente si annoti un membro di tipo org.jboss.webbeans."
+"log.Log con <emphasis>@Logger</emphasis> ed un oggetto logger appropriato "
+"verrà iniettato in una qualsiasi istanza del bean."
 
 #. Tag: programlisting
-#: extensions.xml:25
-#, no-c-format
+#: extensions.xml:26
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class Checkout {\n"
@@ -72,25 +83,64 @@
 "}]]>"
 
 #. Tag: para
-#: extensions.xml:27
-#, no-c-format
-msgid "The example shows how objects can be interpolated into a message. This interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so see the JavaDoc for that class for more details. In this case, the ShoppingCart should have implemented the <emphasis>toString()</emphasis> method to produce a human readable value that is meaningful in messages. Normally, this call would have involved evaluating cart.toString() with String concatenation to produce a single String argument. Thus it was necessary to surround the call with an if-statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String concatenation if the message was not actually going to be used. However, when using @Logger injected logging, the conditional test can be left out since the object arguments are not evaluated unless the message is going to be logged."
-msgstr "L'esempio mostra come un oggetto può essere interpolato in un messaggio. Quest'interpolazione è fatta usando <emphasis>java.text.MessageFormat</emphasis>, quindi si veda JavaDoc di questa class per ulteriori dettagli. In questo caso ShoppingCart dovrebbe aver implementato il metodo <emphasis>toString()</emphasis> per produrre un valore leggibile che sia significativo nei messaggi.Normalmente questa chiamata comporterebbe la valutazione di cart.toString() con una concatenazione di stringa per produrre un singolo argomento stringa. Questo è necessario per racchiudere la chiamata con uno statement if usando la condizione <emphasis>log.isDebugEnabled()</emphasis>per evitare la costosa concatenazione stringa se il messaggio in realtà non viene usato. Comunque quando si usa il logging iniettato con @Logger, il test condizionale può essere tralasciato poiché gli argomenti dell'oggetto non vengono valutati amenoché il messaggio non venga loggato."
+#: extensions.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"The example shows how objects can be interpolated into a message. This "
+"interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
+"see the JavaDoc for that class for more details. In this case, the "
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
+msgstr ""
+"L'esempio mostra come un oggetto può essere interpolato in un messaggio. "
+"Quest'interpolazione è fatta usando <emphasis>java.text.MessageFormat</"
+"emphasis>, quindi si veda JavaDoc di questa class per ulteriori dettagli. In "
+"questo caso ShoppingCart dovrebbe aver implementato il metodo "
+"<emphasis>toString()</emphasis> per produrre un valore leggibile che sia "
+"significativo nei messaggi.Normalmente questa chiamata comporterebbe la "
+"valutazione di cart.toString() con una concatenazione di stringa per "
+"produrre un singolo argomento stringa. Questo è necessario per racchiudere "
+"la chiamata con uno statement if usando la condizione <emphasis>log."
+"isDebugEnabled()</emphasis>per evitare la costosa concatenazione stringa se "
+"il messaggio in realtà non viene usato. Comunque quando si usa il logging "
+"iniettato con @Logger, il test condizionale può essere tralasciato poiché "
+"gli argomenti dell'oggetto non vengono valutati amenoché il messaggio non "
+"venga loggato."
 
 #. Tag: para
-#: extensions.xml:44
-#, no-c-format
-msgid "You can add the Web Beans Logger to your project by including webbeans-logger.jar and webbeans-logging.jar to your project. Alternatively, express a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> Maven artifact."
-msgstr "Si può aggiungere il Logger Web Bean al proprio progetto includendo nel progetto webbeans-logger.jar e webbeans-logging.jar. In alternativa, si può esprimere un dipendenza nell'artifact Maven <literal>org.jboss.webbeans:webbeans-logger</literal>."
+#: extensions.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
+msgstr ""
+"Si può aggiungere il Logger Web Bean al proprio progetto includendo nel "
+"progetto webbeans-logger.jar e webbeans-logging.jar. In alternativa, si può "
+"esprimere un dipendenza nell'artifact Maven <literal>org.jboss.webbeans:"
+"webbeans-logger</literal>."
 
 #. Tag: para
-#: extensions.xml:51
-#, no-c-format
-msgid "If you are using Web Beans as your JSR-299 implementation, there is no need to include <literal>webbeans-logging.jar</literal> as it's already included."
-msgstr "Se si usa Web Beans come implementazione JSR-299, non c'è alcun bisogno di includere <literal>webbeans-logging.jar</literal> poiché lo è già."
+#: extensions.xml:46
+#, fuzzy, no-c-format
+msgid ""
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
+msgstr ""
+"Se si usa Web Beans come implementazione JSR-299, non c'è alcun bisogno di "
+"includere <literal>webbeans-logging.jar</literal> poiché lo è già."
 
 #~ msgid "TODO"
 #~ msgstr "DA FARE"
+
 #~ msgid "XSD Generator for JSR-299 XML deployment descriptors"
 #~ msgstr "Generatore XSD per descrittori di deploy XML JSR-299"
-

Modified: doc/trunk/reference/it-IT/gettingstarted.po
===================================================================
--- doc/trunk/reference/it-IT/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-08 21:39+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,1910 +14,3050 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
+#: gettingstarted.xml:5
 #, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "Iniziare con Web Beans, l'implementazione di riferimento di JSR-299"
+msgid "Getting started with Weld"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
+#: gettingstarted.xml:7
 #, no-c-format
-msgid "The Web Beans is being developed at <ulink url=\"http://seamframework.org/WebBeans\">the Seam project</ulink>. You can download the latest developer release of Web Beans from the <ulink url=\"http://seamframework.org/Download\">the downloads page</ulink>."
-msgstr "Web Beans viene sviluppato all'indirizzo <ulink url=\"http://seamframework.org/WebBeans\">the Seam project</ulink>. Si può scaricare l'ultima release di Web Beans dalla <ulink url=\"http://seamframework.org/Download\">pagina di download</ulink>."
+msgid ""
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:13
+#: gettingstarted.xml:16
+#, fuzzy, no-c-format
+msgid ""
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
+msgstr ""
+"Quest'esempio può essere trovato nella cartella <literal>examples/se/"
+"numberguess</literal> della distribuzione Web Beans."
+
+#. Tag: title
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "Web Beans comes with a two deployable example applications: <literal>webbeans-numberguess</literal>, a war example, containing only simple beans, and <literal>webbeans-translator</literal> an ear example, containing enterprise beans. There are also two variations on the numberguess example, the tomcat example (suitable for deployment to Tomcat) and the jsf2 example, which you can use if you are running JSF2. To run the examples you'll need the following:"
-msgstr "Web Beans viene distribuito con due applicazioni deployabili d'esempio, <literal>webbeans-numberguess</literal>, un esempio in formato war, che contiene solo bean semplici, e <literal>webbeans-translator</literal>, un esempio in formato ear, che contiene bean enterprise. Ci sono anche due varianti dell'esempio Indovina Numero, per Tomcat e con jsf2, che può essere usato con JSF2. Per eseguire gli esempi occorre fare le seguenti cose:"
+msgid "Prerequisites"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:25
+#: gettingstarted.xml:24
 #, no-c-format
-msgid "the latest release of Web Beans,"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
+msgstr ""
+
+#. Tag: para
+#: gettingstarted.xml:30
+#, fuzzy, no-c-format
+msgid "the latest release of Weld, which contains the examples"
 msgstr "l'ultima release di Web Beans,"
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.1.GA, o"
+msgid "Ant 1.7.0, to build and deploy the examples"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:36
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
-msgstr "Apache Tomcat 6.0.x, e"
+msgid "a supported runtime environment (minimum versions shown)"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:34
-#, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0."
-
-#. Tag: title
 #: gettingstarted.xml:39
 #, no-c-format
-msgid "Using JBoss AS 5"
-msgstr "Usare JBoss AS 5"
+msgid ""
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
-#, no-c-format
-msgid "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
-msgstr "Occorre scaricare JBoss AS 5.0.1.GA da <ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>, e scompattarlo. Per esempio:"
+#: gettingstarted.xml:42
+#, fuzzy, no-c-format
+msgid "GlassFish 3.0,"
+msgstr "Usare GlassFish"
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:45
+#, fuzzy, no-c-format
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
+msgstr "Apache Tomcat 6.0.x, e"
+
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:49
-#: gettingstarted.xml:177
+#: gettingstarted.xml:53
 #, no-c-format
-msgid "Next, download Web Beans from <ulink url=\"http://seamframework.org/Download\">seamframework.org</ulink>, and unzip it. For example"
-msgstr "Scaricare Web Beans da <ulink url=\"http://seamframework.org/Download\">seamframework.org</ulink>, e scompattarlo. Per esempio"
-
-#. Tag: programlisting
-#: gettingstarted.xml:55
-#: gettingstarted.xml:183
-#, no-c-format
 msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
 
 #. Tag: para
 #: gettingstarted.xml:58
 #, no-c-format
-msgid "Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>jboss.home</literal> property. For example:"
-msgstr "Quindi, occorre indicare a Web Beans dove è stato installato JBoss. Modificate il file <literal>jboss-as/build.properties</literal> e valorizzate la proprietà <literal>jboss.home</literal>. Per esempio:"
+msgid ""
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
+msgstr ""
 
-#. Tag: programlisting
+#. Tag: para
 #: gettingstarted.xml:64
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid ""
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:66
+#: gettingstarted.xml:71
 #, no-c-format
-msgid "To install Web Beans, you'll need Ant 1.7.0 installed, and the <literal>ANT_HOME</literal> environment variable set. For example:"
-msgstr "Per installare Web Beans, occorre avere installato Ant 1.7.0, e avere valorizzato la variabile d'ambiente <literal>ANT_HOME</literal>. Per esempio:"
+msgid ""
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:76
 #, no-c-format
-msgid "JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the server."
-msgstr "JBoss 5.1.0 viene fornito con Web Beans al suo interno, quindi non c'è bisogno di aggiornare il server."
+msgid ""
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: title
+#: gettingstarted.xml:81
+#, fuzzy, no-c-format
+msgid "Deploying to JBoss AS"
+msgstr "Usare JBoss AS 5"
+
+#. Tag: para
+#: gettingstarted.xml:83
 #, no-c-format
 msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "Then, you can install the update. The update script will use Maven to download Web Beans automatically."
-msgstr "Quindi, è possibile installare gli aggiornamenti. Lo script di aggiornamento userà Maven per scaricare automaticamente Web Beans."
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:85
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
 
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "Ora, siete pronti a fare il deploy del primo esempio!"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:92
-#, no-c-format
-msgid "The build scripts for the examples offer a number of targets for JBoss AS, these are:"
-msgstr "Gli script di build degli esempio offrono una quantità di target per JBoss AS, quali:"
+#. Tag: programlisting
+#: gettingstarted.xml:108
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: gettingstarted.xml:98
-#, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
-msgstr "<literal>ant restart</literal> - fa il deploy dell'esempio in formato esploso"
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "Ora, siete pronti a fare il deploy del primo esempio!"
 
 #. Tag: para
-#: gettingstarted.xml:104
+#: gettingstarted.xml:114
 #, no-c-format
-msgid "<literal>ant explode</literal> - update an exploded example, without restarting the deployment"
-msgstr "<literal>ant explode</literal> - aggiorna un esempio in formato esploso, senza riavviare il deploy"
+msgid ""
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:110
-#, no-c-format
-msgid "<literal>ant deploy</literal> - deploy the example in compressed jar format"
-msgstr "<literal>ant deploy</literal> - fa il deploy dell'esempio in formato jar compresso"
+#. Tag: programlisting
+#: gettingstarted.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
+msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:115
+#: gettingstarted.xml:121
 #, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - rimuove l'esempio dal server"
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:120
+#. Tag: programlisting
+#: gettingstarted.xml:125
 #, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - ripulisce l'esempio"
+msgid ""
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "Per fare il deploy dell'esempio Indovina Numero:"
+msgid "a Windows command window:"
+msgstr ""
 
 #. Tag: programlisting
 #: gettingstarted.xml:131
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
-"$ cd examples/numberguess\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid "Start JBoss AS:"
-msgstr "Avviare JBoss AS:"
+msgid "or you can start the server using an IDE, like Eclipse."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:137
-#, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-
 #. Tag: para
-#: gettingstarted.xml:140
+#: gettingstarted.xml:138
 #, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr "Se si usa Windows, si usi lo script <literal>run.bat</literal>."
+msgid ""
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
+msgstr ""
 
 #. Tag: para
 #: gettingstarted.xml:145
-#: gettingstarted.xml:252
 #, no-c-format
-msgid "Wait for the application to deploy, and enjoy hours of fun at <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
-msgstr "Attendete che l'applicazione sia installata, e godetevi ore di divertimento all'indirizzo <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+msgid ""
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:150
+#: gettingstarted.xml:152
 #, no-c-format
-msgid "Web Beans includes a second simple example that will translate your text into Latin. The numberguess example is a war example, and uses only simple beans; the translator example is an ear example, and includes enterprise beans, packaged in an EJB module. To try it out:"
-msgstr "Web Beans include un secondo semplice esempio che tradurrà i vostri testi in Latino. L'esempio Indovina Numero è in formato war, e usa soltanto bean semplici; l'esempio col traduttore è in formato ear, e include dei bean enterprise, assemblati in un modulo EJB. Per provarlo:"
+msgid ""
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:157
-#, no-c-format
+#. Tag: para
+#: gettingstarted.xml:158
+#, fuzzy, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<literal>ant restart</literal> - fa il deploy dell'esempio in formato esploso"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:163
 #, no-c-format
-msgid "Wait for the application to deploy, and visit <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
-msgstr "Attendete che l'applicazione sia installata, e visitate l'indirizzo <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
+msgid ""
+"<literal>ant explode</literal> - update an exploded example, without "
+"restarting the deployment"
+msgstr ""
+"<literal>ant explode</literal> - aggiorna un esempio in formato esploso, "
+"senza riavviare il deploy"
 
-#. Tag: title
-#: gettingstarted.xml:167
-#, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr "Usare Apache Tomcat 6.0"
+#. Tag: para
+#: gettingstarted.xml:168
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
+msgstr ""
+"<literal>ant deploy</literal> - fa il deploy dell'esempio in formato jar "
+"compresso"
 
 #. Tag: para
-#: gettingstarted.xml:169
-#, no-c-format
-msgid "You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. For example:"
-msgstr "Scaricare Tomcat 6.0.18 o successivo da <ulink url=\"http://tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, e scompattarlo. Per esempio"
+#: gettingstarted.xml:173
+#, fuzzy, no-c-format
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
+msgstr "<literal>ant undeploy</literal> - rimuove l'esempio dal server"
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
+#. Tag: para
+#: gettingstarted.xml:178
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+msgid "<literal>ant clean</literal> - clean the example"
+msgstr "<literal>ant clean</literal> - ripulisce l'esempio"
 
 #. Tag: para
 #: gettingstarted.xml:185
 #, no-c-format
-msgid "Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>tomcat.home</literal> property. For example:"
-msgstr "Quindi, occorre indicare a Web Beans dove è stato installato Tomcat. Modificate il file <literal>jboss-as/build.properties</literal> e valorizzate la proprietà <literal>tomcat.home</literal>. Per esempio:"
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
 #: gettingstarted.xml:191
-#, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
+msgstr ""
+"$ cd examples/translator\n"
+"ant deploy"
 
 #. Tag: para
 #: gettingstarted.xml:194
 #, no-c-format
-msgid "The build scripts for the examples offer a number of targets for Tomcat, these are:"
-msgstr "Gli script di build degli esempi offrono una quantità di target per Tomcat, quali:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
+msgstr ""
 
 #. Tag: para
 #: gettingstarted.xml:200
-#, no-c-format
-msgid "<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
-msgstr "<literal>ant tomcat.restart</literal> - esegue il deploy dell'esempio in formato esploso"
+#, fuzzy, no-c-format
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
+msgstr ""
+"Qua viene impostato il context path, in modo da avere un url gradevole "
+"(<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
+"localhost:8080/webbeans-translator</ulink>)."
 
 #. Tag: para
 #: gettingstarted.xml:206
 #, no-c-format
-msgid "<literal>ant tomcat.explode</literal> - update an exploded example, without restarting the deployment"
-msgstr "<literal>ant tomcat.explode</literal> - aggiorna un esempio in formato esploso, senza riavviare il deploy"
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
+msgstr ""
 
+#. Tag: title
+#: gettingstarted.xml:213
+#, fuzzy, no-c-format
+msgid "Deploying to GlassFish"
+msgstr "Usare GlassFish"
+
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:215
 #, no-c-format
-msgid "<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar format"
-msgstr "<literal>ant tomcat.deploy</literal> - esegue il deploy dell'esempio in formato jar compresso"
+msgid ""
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:221
 #, no-c-format
-msgid "<literal>ant tomcat.undeploy</literal> - remove the example (in compressed jar format) from the server"
-msgstr "<literal>ant tomcat.undeploy</literal> - rimuove l'esempio dal server (nel formato jar compresso)"
+msgid ""
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:222
+#. Tag: programlisting
+#: gettingstarted.xml:231
 #, no-c-format
-msgid "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded format) from the server"
-msgstr "<literal>ant tomcat.unexplode</literal> - rimuove l'esempio dal server (in formato esploso)"
+msgid ""
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:227
+#: gettingstarted.xml:233
 #, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
-msgstr "<literal>ant tomcat.clean</literal> - ripulisce l'esempio"
+msgid ""
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:234
+#: gettingstarted.xml:240
 #, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "Per eseguire il deploy dell'esempio Indovina Numero per tomcat:"
+msgid ""
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:248
 #, no-c-format
-msgid "Start Tomcat:"
-msgstr "Avviare Tomcat:"
+msgid ""
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
+msgstr ""
 
+#. Tag: para
+#: gettingstarted.xml:255
+#, no-c-format
+msgid ""
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
+msgstr ""
+
 #. Tag: programlisting
-#: gettingstarted.xml:244
+#: gettingstarted.xml:262
 #, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:264
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
-msgstr "Se si usa Windows, si usi lo script <literal>startup.bat</literal>."
+msgid ""
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr "Usare GlassFish"
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:276
 #, no-c-format
-msgid "TODO"
-msgstr "DA FARE"
+msgid ""
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
+msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr "Esempio Indovina Numero"
+#: gettingstarted.xml:285
+#, fuzzy, no-c-format
+msgid "Deploying to Apache Tomcat"
+msgstr "Usare Apache Tomcat 6.0"
 
 #. Tag: para
-#: gettingstarted.xml:268
+#: gettingstarted.xml:287
 #, no-c-format
-msgid "In the numberguess application you get given 10 attempts to guess a number between 1 and 100. After each attempt, you will be told whether you are too high, or too low."
-msgstr "Nell'applicazione Indovina Numero avete a disposizione 10 tentativi per indovinare un numero tra 1 e 100. Dopo ciascun tentativo, siete informati se siete stati troppo alti o troppo bassi."
+msgid ""
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:274
+#: gettingstarted.xml:291
 #, no-c-format
-msgid "The numberguess example is comprised of a number of Web Beans, configuration files, and Facelet JSF pages, packaged as a war. Let's start with the configuration files."
-msgstr "L'esempio Indovina Numero comprende un certo numero di Web Bean,  file di configurazione e pagine JSF, assemblati in un war. Iniziamo dai file di configurazione."
+msgid ""
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:280
-#, no-c-format
-msgid "All the configuration files for this example are located in <literal>WEB-INF/</literal>, which is stored in <literal>WebContent</literal> in the source tree. First, we have <literal>faces-config.xml</literal>, in which we tell JSF to use Facelets:"
-msgstr "Tutti i file di configurazione di questo esempio si trovano in <literal>WEB-INF/</literal>, che è situato in <literal>WebContent</literal> nell'albero dei sorgenti. Innanzitutto, c'è <literal>faces-config.xml</literal>, in cui JSF viene informata di usare Facelets:"
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
+msgid ""
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
+msgstr ""
+"Scaricare Tomcat 6.0.18 o successivo da <ulink url=\"http://tomcat.apache."
+"org/download-60.cgi\">tomcat.apache.org</ulink>, e scompattarlo. Per esempio"
 
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:302
+#, fuzzy, no-c-format
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
+msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+
+#. Tag: para
+#: gettingstarted.xml:304
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
-#. Tag: para
-#: gettingstarted.xml:290
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid "There is an empty <literal>web-beans.xml</literal> file, which marks this application as a Web Beans application."
-msgstr "Vi è un file vuoto <literal>web-beans.xml</literal>, che identifica l'applicazione come applicazione Web Beans."
+msgid "Deploying with Ant"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:314
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "Infine c'è <literal>web.xml</literal>:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> </calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use Web Beans with any Servlet based web framework. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=!
 \"30\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages2\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout!
  arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> </calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use Web Beans with any Servlet based web framework. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=!
 \"30\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages2\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout!
  arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
 
+#. Tag: programlisting
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
+
 #. Tag: para
-#: gettingstarted.xml:399
+#: gettingstarted.xml:323
+#, fuzzy, no-c-format
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "Per eseguire il deploy dell'esempio Indovina Numero per tomcat:"
+
+#. Tag: para
+#: gettingstarted.xml:327
 #, no-c-format
-msgid "The example exists of 4 classes, the first two of which are binding types. First, there is the <literal>@Random</literal> binding type, used for injecting a random number:"
-msgstr "L'esempio consiste di 4 classi, delle quali le prime due sono tipi di binding. Innanzitutto, c'è il tipo di binding <literal>@Random</literal>, usato per iniettare un numero casuale:"
+msgid ""
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:405
-#, no-c-format
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:335
 #, no-c-format
-msgid "There is also the <literal>@MaxNumber</literal> binding type, used for injecting the maximum number that can be injected:"
-msgstr "C'è anche il tipo di binding <literal>@MaxNumber</literal>, usato per iniettare il numero massimo iniettatabile:"
+msgid ""
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
+#. Tag: para
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
+"<literal>ant tomcat.restart</literal> - esegue il deploy dell'esempio in "
+"formato esploso"
 
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:346
 #, no-c-format
-msgid "The <literal>Generator</literal> class is responsible for creating the random number, via a producer method. It also exposes the maximum possible number via a producer method:"
-msgstr "Alla classe <literal>Generator</literal> è affidata la generazione del numero casuale, per mezzo di un metodo produttore. Inoltre essa espone il massimo numero possibile attraverso un metodo produttore:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:420
-#, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"<literal>ant tomcat.explode</literal> - aggiorna un esempio in formato "
+"esploso, senza riavviare il deploy"
 
 #. Tag: para
-#: gettingstarted.xml:422
-#, no-c-format
-msgid "You'll notice that the <literal>Generator</literal> is application scoped; therefore we don't get a different random each time."
-msgstr "E' possibile notare che <literal>Generator</literal> ha scope applicazione; quindi non si ottiene un diverso numero casuale ogni volta."
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
+msgstr ""
+"<literal>ant tomcat.deploy</literal> - esegue il deploy dell'esempio in "
+"formato jar compresso"
 
 #. Tag: para
-#: gettingstarted.xml:427
-#, no-c-format
-msgid "The final Web Bean in the application is the session scoped <literal>Game</literal>."
-msgstr "Il Web Bean finale nell'applicazione è <literal>Game</literal> avente scope di sessione."
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - rimuove l'esempio dal server"
 
 #. Tag: para
-#: gettingstarted.xml:432
+#: gettingstarted.xml:363
 #, no-c-format
-msgid "You'll note that we've used the <literal>@Named</literal> annotation, so that we can use the bean through EL in the JSF page. Finally, we've used constructor injection to initialize the game with a random number. And of course, we need to tell the player when they've won, so we give feedback with a <literal>FacesMessage</literal>."
-msgstr "Si noti anche che è stata usata l'annotazione <literal>@Named</literal>, in modo che sia possibile usare il bean in espressioni EL presenti nelle pagine JSF. Infine, si è utilizzata l'iniezione del costruttore per inizializzare il gioco con un numero casuale. E naturalmente, è necessario dire al giocatore se ha vinto, informazione di feedback che viene fornita con un <literal>FacesMessage</literal>."
+msgid ""
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:440
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
+
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
+msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+
+#. Tag: para
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
 
 #. Tag: title
-#: gettingstarted.xml:443
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "Esempio Indovina Numero in Tomcat"
+msgid "Deploying with Maven"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:390
 #, no-c-format
-msgid "The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans should be deployed as a Web Application library in <literal>WEB-INF/lib</literal>. For your convenience we provide a single jar suitable for running Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
-msgstr "L'Indovina Numero per Tomcat differisce in un paio di punti. Innanzitutto Web Beans dovrebbe essere deployato come libreria Web Application in <literal>WEB-INF/lib</literal>. Per comodità viene fornito un singolo jar <literal>webbeans-servlet.jar</literal> per eseguire Web Beans in un qualsiasi servlet container."
+msgid ""
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:396
 #, no-c-format
-msgid "Of course, you must also include JSF and EL, as well common annotations (<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
-msgstr "Certamente occorre anche includere JSF e EL, e le annotazioni comuni (<literal>jsr250-api.jar</literal>) che un server JEE include di default."
+msgid ""
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
+#: gettingstarted.xml:403
 #, no-c-format
-msgid "Secondly, we need to explicitly specify the servlet listener (used to boot Web Beans, and control it's interaction with requests) in <literal>web.xml</literal>:"
-msgstr "In secondo luogo, occorre specificare esplicitamente il servlet listener di Tomcat (usato per avviare Web Beans, e controllare la sua interazione con le richieste) in <literal>web.xml</literal>:"
+msgid ""
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
 
-#. Tag: title
-#: gettingstarted.xml:472
-#, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "Esempio Indovina Numero per Apache Wicket"
-
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:410
 #, no-c-format
-msgid "Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows you to inject into Wicket components, and also allows you to use a conversation context with Wicket. In this section, we'll walk you through the Wicket version of the numberguess example."
-msgstr "Mentre JSR-299 specifica l'integrazione con Java ServerFaces, Web Beans consente di iniettare nei componenti Wicket e di usare un contesto conversazione con Wicket. In questa sezione si analizzerà la versione dell'esempio Indovina Numero per Wicket."
+msgid ""
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:482
+#. Tag: programlisting
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "You may want to review the Wicket documentation at <ulink url=\"http://wicket.apache.org/\">http://wicket.apache.org/</ulink>."
-msgstr "Per vedere la documentazione Wicket si vada a <ulink url=\"http://wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:416
 #, no-c-format
-msgid "Like the previous example, the Wicket WebBeans examples make use of the <literal>webbeans-servlet</literal> module. The use of the <ulink url=\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in the Wicket community, and is chosen here as the runtime container in order to facilitate comparison between the standard Wicket examples and these examples, and also to show how the webbeans-servlet integration is not dependent upon Tomcat as the servlet container."
-msgstr "Come nel precedente esempio, gli esempi WebBeans Wicket usano il modulo <literal>webbeans-servlet</literal>. L'uso del <ulink url=\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> è comune nella comunità Wicket, e qua viene scelto come container runtime per facilitare il paragone tra gli esempi Wicket standard e questi esempi, ed anche per mostrare come l'integrazione webbeans-servlet non è dipenendete da Tomcat come servlet container."
+msgid ""
+"Once the application is deployed, you can redeploy it using this command:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:499
+#. Tag: programlisting
+#: gettingstarted.xml:420
 #, no-c-format
-msgid "These examples make use of the Eclipse IDE; instructions are also given to deploy the application from the command line."
-msgstr "Questi esempi usano Eclipse IDE; vengono date anche le istruzioni per il deploy dell'applicazione da linea di comando."
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr "Creazione di un progetto Eclipse"
-
 #. Tag: para
-#: gettingstarted.xml:507
+#: gettingstarted.xml:422
 #, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr "Per generare un progetto Eclipse dall'esempio:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
 
 #. Tag: para
-#: gettingstarted.xml:513
+#: gettingstarted.xml:427
 #, no-c-format
-msgid "Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing Projects into Workspace</emphasis>, select the root directory of the numberguess example, and click finish. Note that if you do not intend to run the example with jetty from within eclipse, omit the \"-Pjetty.\" This will create a project in your workspace called <literal>webbeans-wicket-numberguess</literal>"
-msgstr "Poi scegliere da Eclipse <emphasis>File -> Import -> General -> Existing Projects into Workspace</emphasis>, selezionare la cartella radice dell'esempio Indovina Numero e cliccare su Finish. Notare che se non si intende eseguire l'esempio con Jetty da dentro Eclipse, si ometta \"-Pjetty.\". Questo creerà un progetto nel workspace chiamato <literal>webbeans-wicket-numberguess</literal>."
+msgid ""
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:529
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid "Running the example from Eclipse"
-msgstr "Esecuzione dell'esempio da Eclipse"
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:434
 #, no-c-format
-msgid "This project follows the <literal>wicket-quickstart</literal> approach of creating an instance of Jetty in the <literal>Start</literal> class. So running the example is as simple as right-clicking on that Start class in <literal>src/test/java</literal> in the <emphasis>Package Explorer</emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You should see console output related to Jetty starting up; then visit able <literal>http://localhost:8080</literal> to view the app. To debug choose <emphasis>Debug as Java Application</emphasis>."
-msgstr "Questo progetto segue l'approccio di <literal>wicket-quickstart</literal> nella creazione di un'istanza di Jetty nella classe <literal>Start</literal>. Quindi l'esecuzione dell'esempio è tanto semplice come cliccare col tasto destro sulla classe Start in <literal>src/test/java</literal> in <emphasis>Package Explorer</emphasis> e scegliere <emphasis>Run as Java Application</emphasis>. Si dovrebbe vedere l'output di console di Jetty avviato; poi visitare <literal>http://localhost:8080</literal>. Per il debug scegliere <emphasis>Debug as Java Application</emphasis>."
+msgid ""
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
+#. Tag: programlisting
+#: gettingstarted.xml:441
 #, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
-msgstr "Eseguire l'esempio da linea di comando in JBoss AS o Tomcat"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:443
 #, no-c-format
-msgid "This example can also be deployed from the command line in a (similar to the other examples). Assuming you have set up the <literal>build.properties</literal> file in the <literal>examples</literal> directory to specify the location of JBoss AS or Tomcat, as previously described, you can run <literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</literal> directory, and access the application at <literal>http://localhost:8080/webbeans-numberguess-wicket</literal>."
-msgstr "Quest'esempio può anche essere deployato da linea di comando (come gli altri esempi). Assumendo che sia stato configurato il file <literal>build.properties</literal> nella derectory <literal>examples</literal>, per specificare la locazione di JBoss AS o Tomcat, come descritto prima, si può eseguire <literal>ant deploy</literal> dalla directory <literal>examples/wicket/numberguess</literal> ed accedere all'applicazione tramite indirizzo <literal>http://localhost:8080/webbeans-numberguess-wicket</literal>."
+msgid ""
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
+msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:453
 #, no-c-format
-msgid "Understanding the code"
-msgstr "Comprendere il codice"
+msgid "Deploying to Jetty"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:457
 #, no-c-format
-msgid "JSF uses Unified EL expressions to bind view layer components in JSP or Facelet views to beans, Wicket defines it's components in Java. The markup is plain html with a one-to-one mapping between html elements and the view components. All view logic, including binding of components to models and controlling the response of view actions, is handled in Java. The integration of Web Beans with Wicket takes advantage of the same binding annotations used in your business layer to provide injection into your WebPage subclass (or into other custom wicket component subclasses)."
-msgstr "JSF usa le espressioni Unified EL per associare i componenti del layer vista nelle viste JSP o Facelets ai bean, Wicket definisce i propri componenti in Java. Il markup è puro html con una mappatura one-to-one tra gli elementi html ed i componenti vista. Tutta la logica di vista viene gestita in Java, incluso il binding dei componenti ai modelli ed il controllo della risposta delle azioni di vista. L'integrazione di Web Beans con Wicket sfrutta le stesse annotazioni di binding usata nel layer business per fornire l'iniezione alla sottoclasse WebPage (o in altre sottoclassi personalizzate componenti di Wicket)."
+msgid ""
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:576
+#: gettingstarted.xml:464
 #, no-c-format
-msgid "The code in the wicket numberguess example is very similar to the JSF-based numberguess example. The business layer is identical!"
-msgstr "Il codice nell'esempio Indovina Numero in Wicket è molto simile all'esempio Indovina Numero basato su JSF. Il layer business è identico!"
+msgid ""
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:470
 #, no-c-format
-msgid "Differences are:"
-msgstr "Le differenze sono:"
+msgid ""
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:586
+#: gettingstarted.xml:479
 #, no-c-format
-msgid "Each wicket application must have a <literal>WebApplication</literal> subclass, In our case, our application class is <literal>SampleApplication</literal>:"
-msgstr "Ciascuna applicazione wicket deve avere una sottoclasse <literal>WebApplication</literal>. Nel nostro caso la classe applicazione è <literal>SampleApplication</literal>:"
+msgid ""
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
-#, no-c-format
+#: gettingstarted.xml:485
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+"<![CDATA[cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:487
 #, no-c-format
-msgid "This class specifies which page wicket should treat as our home page, in our case, <literal>HomePage.class</literal>"
-msgstr "Questa classe specifica quale pagina wicket debba essere considerata come home page, nel nostro caso  <literal>HomePage.class</literal>."
+msgid ""
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:599
+#: gettingstarted.xml:494
 #, no-c-format
-msgid "In <literal>HomePage</literal> we see typical wicket code to set up page elements. The bit that is interesting is the injection of the <literal>Game</literal> bean:"
-msgstr "In <literal>HomePage</literal> si vede un tipico codice wicket per impostare gli elementi di pagina. Il punto interessante è l'iniezione del bean <literal>Game</literal>:"
+msgid ""
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:605
+#: gettingstarted.xml:501
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
-msgstr "<![CDATA[ @Current Game game;]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:503
 #, no-c-format
-msgid "The <literal>Game</literal> bean is can then be used, for example, by the code for submitting a guess:"
-msgstr "Il bean <literal>Game</literal> può essere usato, per esempio, da codice per inviare un tentativo:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:612
-#, no-c-format
 msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
 
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:510
 #, no-c-format
-msgid "All injections may be serialized; actual storage of the bean is managed by JSR-299. Note that Wicket components, like the HomePage and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
-msgstr "Tutte le iniezioni possono essere serializzate; il salvataggio su disco del bean è gestito daJSR-299. Si noti che i componenti Wicket come HomePage ed i suoi sottocomponenti <emphasis>non</emphasis> sono bean JSR-299."
+msgid ""
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
-#, no-c-format
-msgid "Wicket components allow injection, but they <emphasis>cannot</emphasis> use interceptors, decorators and lifecycle callbacks such as <literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
-msgstr "I componenti Wicket consentono l'iniezione, ma <emphasis>non possono</emphasis> usare gli interceptor, i decoratori e le chiamate del ciclo di vita quali i metodi <literal>@PostConstruct</literal> o <literal>@Initializer</literal>."
+#: gettingstarted.xml:516
+#, fuzzy, no-c-format
+msgid "First, initialize the Eclipse project:"
+msgstr "Creazione di un progetto Eclipse"
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:520
 #, no-c-format
-msgid "The example uses AJAX for processing of button events, and dynamically hides buttons that are no longer relevant, for example when the user has won the game."
-msgstr "L'esempio usa AJAX per processare gli eventi dei pulsanti, e nasconde dinamicamente i pulsanti che non sono più rilevanti, per esempio quando l'utente ha vinto il gioco."
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:522
 #, no-c-format
-msgid "In order to activate wicket for this webapp, the Wicket filter is added to web.xml, and our application class is specified:"
-msgstr "Per attivare wicket per questa webapp, il filtro Wicket viene aggiunto a web.xml, e viene specificata la classe di applicazione:"
+msgid ""
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:528
 #, no-c-format
-msgid "Note that the servlet listener is also added, as in the Tomcat example, in order to boostrap Web Beans when Jetty starts, and to hook Web Beans into the Jetty servlet request and session lifecycles."
-msgstr "Si noti che il servlet listener viene aggiunto, come nell'esempio Tomcat, per poter avviare Web Beans quando viene avviato Jetty, e per agganciare Web Beans alla richiesta servlet di Jetty ed al ciclo di vita della sessione."
+msgid ""
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:658
-#, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "Esempio Indovina Numero per Java SE con Swing"
-
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:536
 #, no-c-format
-msgid "This example can be found in the <literal>examples/se/numberguess</literal> folder of the Web Beans distribution."
-msgstr "Quest'esempio può essere trovato nella cartella <literal>examples/se/numberguess</literal> della distribuzione Web Beans."
+msgid ""
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:667
-#, no-c-format
-msgid "To run this example:"
-msgstr "Per eseguire quest'esempio:"
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "Iniziare con Web Beans, l'implementazione di riferimento di JSR-299"
 
-#. Tag: para
-#: gettingstarted.xml:673
-#, no-c-format
-msgid "Open a command line/terminal window in the <literal>examples/se/numberguess</literal> directory"
-msgstr "Aprire una finestra di terminale/linea di comando nella directory <literal>examples/se/numberguess</literal>"
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "Web Beans viene sviluppato all'indirizzo <ulink url=\"http://"
+#~ "seamframework.org/WebBeans\">the Seam project</ulink>. Si può scaricare "
+#~ "l'ultima release di Web Beans dalla <ulink url=\"http://seamframework.org/"
+#~ "Download\">pagina di download</ulink>."
 
-#. Tag: para
-#: gettingstarted.xml:679
-#, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
-msgstr "Assicurarsi che Maven 2 sia installato e presente nel PATH"
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "Web Beans viene distribuito con due applicazioni deployabili d'esempio, "
+#~ "<literal>webbeans-numberguess</literal>, un esempio in formato war, che "
+#~ "contiene solo bean semplici, e <literal>webbeans-translator</literal>, un "
+#~ "esempio in formato ear, che contiene bean enterprise. Ci sono anche due "
+#~ "varianti dell'esempio Indovina Numero, per Tomcat e con jsf2, che può "
+#~ "essere usato con JSF2. Per eseguire gli esempi occorre fare le seguenti "
+#~ "cose:"
 
-#. Tag: para
-#: gettingstarted.xml:684
-#, no-c-format
-msgid "Ensure that the <literal>JAVA_HOME</literal> environment variable is pointing to your JDK installation"
-msgstr "Assicurarsi che la variabile d'ambiente <literal>JAVA_HOME</literal> punti alla propria installazione JDK"
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.1.GA, o"
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr "eseguire il seguente comando"
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0."
 
-#. Tag: programlisting
-#: gettingstarted.xml:693
-#, no-c-format
-msgid "mvn -Drun"
-msgstr "mvn -Drun"
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "Occorre scaricare JBoss AS 5.0.1.GA da <ulink url=\"http://www.jboss.org/"
+#~ "jbossas/downloads/\">jboss.org</ulink>, e scompattarlo. Per esempio:"
 
-#. Tag: para
-#: gettingstarted.xml:699
-#, no-c-format
-msgid "There is an empty <literal>beans.xml</literal> file in the root package (<literal>src/main/resources/beans.xml</literal>), which marks this application as a Web Beans application."
-msgstr "Vi è un file vuoto <literal>beans.xml</literal> nel pacchetto radice (<literal>src/main/resources/beans.xml</literal>), che identifica l'applicazione come applicazione Web Beans."
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:705
-#, no-c-format
-msgid "The game's main logic is located in <literal>Game.java</literal>. Here is the code for that class, highlighting the changes made from the web application version:"
-msgstr "La logica principale del gioco è collocata in <literal>Game.java</literal>. Ecco il codice per questa classe, evidenziando i cambiamenti fatti nella versione web:"
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "Scaricare Web Beans da <ulink url=\"http://seamframework.org/Download"
+#~ "\">seamframework.org</ulink>, e scompattarlo. Per esempio"
 
-#. Tag: section
-#: gettingstarted.xml:709
-#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id=\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id=\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The bean is application scoped instead of session scoped, since an instance of the application represents a single 'session'. </para> </callout> <callout arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</literal> to add messages to. Instead the <literal>Game</literal> class provides additional information about the state of the current game including: </para> <itemizedlist> <listitem> <para> If the game has been won or lost </para> </listitem> <listitem> <para> If the most recent guess was invalid </para> </listitem> </itemizedlist> <para> This allows the Swing UI to query the state of the game, which it does indirectly via a class called <literal>MessageGenerator,</literal> in order to determine the appropriate messages to display to the user during the game. </p!
 ara> </callout> <callout arearefs=\"validation\"> <para> Validation of user input is performed during the <literal>check()</literal> method, since there is no dedicated validation phase </para> </callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a call to the injected <literal>rndGenerator</literal> in order to get the random number at the start of each game. It cannot use <literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})</literal> as the JSF example does because there will not be any active contexts like there is during a JSF request. </para> </callout> </calloutlist> </programlistingco> <para> The <literal>MessageGenerator</literal> class depends on the current instance of <literal>Game</literal>, and queries its state in order to determine the appropriate messages to provide as the prompt for the user's next guess and the response to the previous guess. The code for <literal>MessageGenerator<!
 /literal> is as follows: </para> <programlistingco> <areaspec>!
  <area i
d=\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The instance of <literal>Game</literal> for the application is injected here. </para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</literal>'s state is interrogated to determine the appropriate challenge message. </para> </callout> <callout arearefs=\"result\"> <para> And again to determine whether to congratulate, console or encourage the user to continue. </para> </callout> </calloutlist> </programlistingco> <para> Finally we come to the <literal>NumberGuessFrame</literal> class which provides the Swing front end to our guessing game. </para> <programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public cl!
 ass NumberGuessFrame  extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The injected instance of the game (logic and state). </para> </callout> <callout arearefs=\"messagesIn\"> <para> The injected message generator for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> This application is started in the usual Web Beans SE way, by observing the <literal>@Deployed Manager</literal> event. </para> </callout> <callout arearefs=\"init\"> <para> This method initialises all of the Swing components. Note the use of the <literal>msgGenerator</literal>. </para> </callout> <callout arearefs=\"guess1\"> <para> <literal>guessButtonActionPerformed</literal> is called when the 'Guess' button is clicked, and it does the following: </para> <itemizedlist> <listitem> <para> Gets the guess entered by the user and sets it as the current guess in the <literal>Game</literal> </para> </listitem> <listitem> <para> Calls <literal>game.check()</literal> to validate and perform one!
  'turn' of the game </para> </listitem> <listitem> <para> Calls <literal>refreshUI</literal>. If there were validation errors with the input, this will have been captured during <literal>game.check()</literal> and as such will be reflected in the messeges returned by <literal>MessageGenerator</literal> and subsequently presented to the user. If there are no validation errors then the user will be told to guess again (higher or lower) or that the game has ended either in a win (correct guess) or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </callout> <callout arearefs=\"replay\"> <para> <literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset()</literal> to start a new game and refreshes the messages in the UI. </para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> to update the messages to the user based on the current state of the Game. </para> </callout> </c!
 alloutlist> </programlistingco>"
-msgstr ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id=\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id=\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The bean is application scoped instead of session scoped, since an instance of the application represents a single 'session'. </para> </callout> <callout arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</literal> to add messages to. Instead the <literal>Game</literal> class provides additional information about the state of the current game including: </para> <itemizedlist> <listitem> <para> If the game has been won or lost </para> </listitem> <listitem> <para> If the most recent guess was invalid </para> </listitem> </itemizedlist> <para> This allows the Swing UI to query the state of the game, which it does indirectly via a class called <literal>MessageGenerator,</literal> in order to determine the appropriate messages to display to the user during the game. </p!
 ara> </callout> <callout arearefs=\"validation\"> <para> Validation of user input is performed during the <literal>check()</literal> method, since there is no dedicated validation phase </para> </callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a call to the injected <literal>rndGenerator</literal> in order to get the random number at the start of each game. It cannot use <literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})</literal> as the JSF example does because there will not be any active contexts like there is during a JSF request. </para> </callout> </calloutlist> </programlistingco> <para> The <literal>MessageGenerator</literal> class depends on the current instance of <literal>Game</literal>, and queries its state in order to determine the appropriate messages to provide as the prompt for the user's next guess and the response to the previous guess. The code for <literal>MessageGenerator<!
 /literal> is as follows: </para> <programlistingco> <areaspec>!
  <area i
d=\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The instance of <literal>Game</literal> for the application is injected here. </para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</literal>'s state is interrogated to determine the appropriate challenge message. </para> </callout> <callout arearefs=\"result\"> <para> And again to determine whether to congratulate, console or encourage the user to continue. </para> </callout> </calloutlist> </programlistingco> <para> Finally we come to the <literal>NumberGuessFrame</literal> class which provides the Swing front end to our guessing game. </para> <programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public cl!
 ass NumberGuessFrame  extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The injected instance of the game (logic and state). </para> </callout> <callout arearefs=\"messagesIn\"> <para> The injected message generator for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> This application is started in the usual Web Beans SE way, by observing the <literal>@Deployed Manager</literal> event. </para> </callout> <callout arearefs=\"init\"> <para> This method initialises all of the Swing components. Note the use of the <literal>msgGenerator</literal>. </para> </callout> <callout arearefs=\"guess1\"> <para> <literal>guessButtonActionPerformed</literal> is called when the 'Guess' button is clicked, and it does the following: </para> <itemizedlist> <listitem> <para> Gets the guess entered by the user and sets it as the current guess in the <literal>Game</literal> </para> </listitem> <listitem> <para> Calls <literal>game.check()</literal> to validate and perform one!
  'turn' of the game </para> </listitem> <listitem> <para> Calls <literal>refreshUI</literal>. If there were validation errors with the input, this will have been captured during <literal>game.check()</literal> and as such will be reflected in the messeges returned by <literal>MessageGenerator</literal> and subsequently presented to the user. If there are no validation errors then the user will be told to guess again (higher or lower) or that the game has ended either in a win (correct guess) or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </callout> <callout arearefs=\"replay\"> <para> <literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset()</literal> to start a new game and refreshes the messages in the UI. </para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> to update the messages to the user based on the current state of the Game. </para> </callout> </c!
 alloutlist> </programlistingco>"
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
 
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "Esempio Traduttore"
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Quindi, occorre indicare a Web Beans dove è stato installato JBoss. "
+#~ "Modificate il file <literal>jboss-as/build.properties</literal> e "
+#~ "valorizzate la proprietà <literal>jboss.home</literal>. Per esempio:"
 
-#. Tag: para
-#: gettingstarted.xml:919
-#, no-c-format
-msgid "The translator example will take any sentences you enter, and translate them to Latin."
-msgstr "L'esempio Traduttore prende le frasi che vengono inserite e le traduce in latino."
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "Per installare Web Beans, occorre avere installato Ant 1.7.0, e avere "
+#~ "valorizzato la variabile d'ambiente <literal>ANT_HOME</literal>. Per "
+#~ "esempio:"
 
-#. Tag: para
-#: gettingstarted.xml:924
-#, no-c-format
-msgid "The translator example is built as an ear, and contains EJBs. As a result, it's structure is more complex than the numberguess example."
-msgstr "L'esempio Traduttore è assemblato in un ear, e contiene EJB. Di conseguenza, la sua struttura è più complessa di quella dell'esempio Indovina Numero."
+#~ msgid ""
+#~ "JBoss 5.1.0 comes with Web Beans built in, so there is no need to update "
+#~ "the server."
+#~ msgstr ""
+#~ "JBoss 5.1.0 viene fornito con Web Beans al suo interno, quindi non c'è "
+#~ "bisogno di aggiornare il server."
 
-#. Tag: para
-#: gettingstarted.xml:930
-#, no-c-format
-msgid "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make this structure much simpler!"
-msgstr "EJB 3.1 and Java EE 6 permettono di assemblare gli EJB in un war, cosa che rende questa struttura molto più semplice!"
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
 
-#. Tag: para
-#: gettingstarted.xml:936
-#, no-c-format
-msgid "First, let's take a look at the ear aggregator, which is located in <literal>webbeans-translator-ear</literal> module. Maven automatically generates the <literal>application.xml</literal> for us:"
-msgstr "Innanzitutto, diamo un'occhiata all'aggregatore ear, che è situato nel modulo <literal>webbeans-translator-ear</literal>. Maven genera automaticamente il file <literal>application.xml</literal>:"
+#~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "Quindi, è possibile installare gli aggiornamenti. Lo script di "
+#~ "aggiornamento userà Maven per scaricare automaticamente Web Beans."
 
-#. Tag: programlisting
-#: gettingstarted.xml:942
-#, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
 
-#. Tag: para
-#: gettingstarted.xml:944
-#, no-c-format
-msgid "Here we set the context path, which gives us a nice url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>)."
-msgstr "Qua viene impostato il context path, in modo da avere un url gradevole (<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>)."
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "Gli script di build degli esempio offrono una quantità di target per "
+#~ "JBoss AS, quali:"
 
-#. Tag: para
-#: gettingstarted.xml:950
-#, no-c-format
-msgid "If you aren't using Maven to generate these files, you would need <literal>META-INF/application.xml</literal>:"
-msgstr "Se non si sta usando Maven per generare questi file, sarebbe necessario avere il file <literal>META-INF/application.xml</literal>:"
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "Per fare il deploy dell'esempio Indovina Numero:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:955
-#, 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 http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
-msgstr ""
-"<![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 http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+#~ msgid "Start JBoss AS:"
+#~ msgstr "Avviare JBoss AS:"
 
-#. Tag: para
-#: gettingstarted.xml:958
-#, no-c-format
-msgid "Next, lets look at the war. Just as in the numberguess example, we have a <literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr "Quindi, esaminiamo il war. Proprio come nell'esempio Indovina Numero, abbiamo un <literal>faces-config.xml</literal> (per abilitare Facelets) e un <literal>web.xml</literal> (per abilitare JSF) in <literal>WebContent/WEB-INF</literal>."
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
 
-#. Tag: para
-#: gettingstarted.xml:965
-#, no-c-format
-msgid "More intersting is the facelet used to translate text. Just as in the numberguess example we have a template, which surrounds the form (ommitted here for brevity):"
-msgstr "Più interessante è il facelet usato per tradurre il testo. Proprio come nell'esempio Indovina Numero c'è un template, che circoscrive la form (qui omessa per brevità):"
+#~ msgid "If you use Windows, use the <literal>run.bat</literal>script."
+#~ msgstr "Se si usa Windows, si usi lo script <literal>run.bat</literal>."
 
-#. Tag: programlisting
-#: gettingstarted.xml:971
-#, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
-msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "Attendete che l'applicazione sia installata, e godetevi ore di "
+#~ "divertimento all'indirizzo <ulink url=\"http://localhost:8080/webbeans-"
+#~ "numberguess\"></ulink>!"
 
-#. Tag: para
-#: gettingstarted.xml:973
-#, no-c-format
-msgid "The user can enter some text in the lefthand textarea, and hit the translate button to see the result to the right."
-msgstr "L'utente può inserire del testo nell'area di testo sulla sinistra e premere il pulsante di traduzione per vedere il risultato sulla destra."
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Web Beans include un secondo semplice esempio che tradurrà i vostri testi "
+#~ "in Latino. L'esempio Indovina Numero è in formato war, e usa soltanto "
+#~ "bean semplici; l'esempio col traduttore è in formato ear, e include dei "
+#~ "bean enterprise, assemblati in un modulo EJB. Per provarlo:"
 
-#. Tag: para
-#: gettingstarted.xml:978
-#, no-c-format
-msgid "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</literal>. In <literal>src/main/resources/META-INF</literal> there is just an empty <literal>web-beans.xml</literal>, used to mark the archive as containing Web Beans."
-msgstr "Infine, si esamini il modulo ejb, <literal>webbeans-translator-ejb</literal>. In <literal>src/main/resources/META-INF</literal> si trova un file vuoto <literal>web-beans.xml</literal>, usato per marcare l'archivio come contenente Web Beans."
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "Attendete che l'applicazione sia installata, e visitate l'indirizzo "
+#~ "<ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
 
-#. Tag: para
-#: gettingstarted.xml:986
-#, no-c-format
-msgid "We've saved the most interesting bit to last, the code! The project has two simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</literal> and two enterprise beans, <literal>TranslatorControllerBean</literal> and <literal>SentenceTranslator</literal>. You should be getting quite familiar with what a Web Bean looks like by now, so we'll just highlight the most interesting bits here."
-msgstr "Abbiamo lasciato per ultimo il boccone più prelibato, il codice! Il progetto ha due bean semplici, <literal>SentenceParser</literal> e <literal>TextTranslator</literal> e due bean enterprise, <literal>TranslatorControllerBean</literal> e <literal>SentenceTranslator</literal>. Dovreste ormai essere piuttosto familiari all'aspetto di un Web Bean, così ci limiteremo a evidenziare le parti più interessanti."
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Quindi, occorre indicare a Web Beans dove è stato installato Tomcat. "
+#~ "Modificate il file <literal>jboss-as/build.properties</literal> e "
+#~ "valorizzate la proprietà <literal>tomcat.home</literal>. Per esempio:"
 
-#. Tag: para
-#: gettingstarted.xml:996
-#, no-c-format
-msgid "Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> are dependent beans, and <literal>TextTranslator</literal> uses constructor initialization:"
-msgstr "Sia <literal>SentenceParser</literal> che <literal>TextTranslator</literal> sono bean dependenti, e <literal>TextTranslator</literal> usa l'inizializzazione via costruttore:"
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "Gli script di build degli esempi offrono una quantità di target per "
+#~ "Tomcat, quali:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.undeploy</literal> - rimuove l'esempio dal server "
+#~ "(nel formato jar compresso)"
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid "<literal>TextTranslator</literal> is a stateless bean (with a local business interface), where the magic happens - of course, we couldn't develop a full translator, but we gave it a good go!"
-msgstr "<literal>TextTranslator</literal> è un bean stateless (con un'interfaccia business locale), dove avviene la magia - naturalmente, non potevamo sviluppare un traduttore completo, ma gli abbiamo dato un buon avvio!"
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.unexplode</literal> - rimuove l'esempio dal server "
+#~ "(in formato esploso)"
 
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant tomcat.clean</literal> - ripulisce l'esempio"
+
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+
+#~ msgid "Start Tomcat:"
+#~ msgstr "Avviare Tomcat:"
+
+#~ msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#~ msgstr "Se si usa Windows, si usi lo script <literal>startup.bat</literal>."
+
+#~ msgid "TODO"
+#~ msgstr "DA FARE"
+
+#~ msgid "The numberguess example"
+#~ msgstr "Esempio Indovina Numero"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "Nell'applicazione Indovina Numero avete a disposizione 10 tentativi per "
+#~ "indovinare un numero tra 1 e 100. Dopo ciascun tentativo, siete informati "
+#~ "se siete stati troppo alti o troppo bassi."
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "L'esempio Indovina Numero comprende un certo numero di Web Bean,  file di "
+#~ "configurazione e pagine JSF, assemblati in un war. Iniziamo dai file di "
+#~ "configurazione."
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "Tutti i file di configurazione di questo esempio si trovano in "
+#~ "<literal>WEB-INF/</literal>, che è situato in <literal>WebContent</"
+#~ "literal> nell'albero dei sorgenti. Innanzitutto, c'è <literal>faces-"
+#~ "config.xml</literal>, in cui JSF viene informata di usare Facelets:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Vi è un file vuoto <literal>web-beans.xml</literal>, che identifica "
+#~ "l'applicazione come applicazione Web Beans."
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "Infine c'è <literal>web.xml</literal>:"
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "L'esempio consiste di 4 classi, delle quali le prime due sono tipi di "
+#~ "binding. Innanzitutto, c'è il tipo di binding <literal>@Random</literal>, "
+#~ "usato per iniettare un numero casuale:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "C'è anche il tipo di binding <literal>@MaxNumber</literal>, usato per "
+#~ "iniettare il numero massimo iniettatabile:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "Alla classe <literal>Generator</literal> è affidata la generazione del "
+#~ "numero casuale, per mezzo di un metodo produttore. Inoltre essa espone il "
+#~ "massimo numero possibile attraverso un metodo produttore:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "E' possibile notare che <literal>Generator</literal> ha scope "
+#~ "applicazione; quindi non si ottiene un diverso numero casuale ogni volta."
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "Il Web Bean finale nell'applicazione è <literal>Game</literal> avente "
+#~ "scope di sessione."
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "Si noti anche che è stata usata l'annotazione <literal>@Named</literal>, "
+#~ "in modo che sia possibile usare il bean in espressioni EL presenti nelle "
+#~ "pagine JSF. Infine, si è utilizzata l'iniezione del costruttore per "
+#~ "inizializzare il gioco con un numero casuale. E naturalmente, è "
+#~ "necessario dire al giocatore se ha vinto, informazione di feedback che "
+#~ "viene fornita con un <literal>FacesMessage</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "Esempio Indovina Numero in Tomcat"
+
+#~ msgid ""
+#~ "The numberguess for Tomcat differs in a couple of ways. Firstly, Web "
+#~ "Beans should be deployed as a Web Application library in <literal>WEB-INF/"
+#~ "lib</literal>. For your convenience we provide a single jar suitable for "
+#~ "running Web Beans in any servlet container <literal>webbeans-servlet.jar</"
+#~ "literal>."
+#~ msgstr ""
+#~ "L'Indovina Numero per Tomcat differisce in un paio di punti. Innanzitutto "
+#~ "Web Beans dovrebbe essere deployato come libreria Web Application in "
+#~ "<literal>WEB-INF/lib</literal>. Per comodità viene fornito un singolo jar "
+#~ "<literal>webbeans-servlet.jar</literal> per eseguire Web Beans in un "
+#~ "qualsiasi servlet container."
+
+#~ msgid ""
+#~ "Of course, you must also include JSF and EL, as well common annotations "
+#~ "(<literal>jsr250-api.jar</literal>) which a JEE server includes by "
+#~ "default."
+#~ msgstr ""
+#~ "Certamente occorre anche includere JSF e EL, e le annotazioni comuni "
+#~ "(<literal>jsr250-api.jar</literal>) che un server JEE include di default."
+
+#~ msgid ""
+#~ "Secondly, we need to explicitly specify the servlet listener (used to "
+#~ "boot Web Beans, and control it's interaction with requests) in "
+#~ "<literal>web.xml</literal>:"
+#~ msgstr ""
+#~ "In secondo luogo, occorre specificare esplicitamente il servlet listener "
+#~ "di Tomcat (usato per avviare Web Beans, e controllare la sua interazione "
+#~ "con le richieste) in <literal>web.xml</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "Esempio Indovina Numero per Apache Wicket"
+
+#~ msgid ""
+#~ "Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans "
+#~ "allows you to inject into Wicket components, and also allows you to use a "
+#~ "conversation context with Wicket. In this section, we'll walk you through "
+#~ "the Wicket version of the numberguess example."
+#~ msgstr ""
+#~ "Mentre JSR-299 specifica l'integrazione con Java ServerFaces, Web Beans "
+#~ "consente di iniettare nei componenti Wicket e di usare un contesto "
+#~ "conversazione con Wicket. In questa sezione si analizzerà la versione "
+#~ "dell'esempio Indovina Numero per Wicket."
+
+#~ msgid ""
+#~ "You may want to review the Wicket documentation at <ulink url=\"http://"
+#~ "wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+#~ msgstr ""
+#~ "Per vedere la documentazione Wicket si vada a <ulink url=\"http://wicket."
+#~ "apache.org/\">http://wicket.apache.org/</ulink>."
+
+#~ msgid ""
+#~ "Like the previous example, the Wicket WebBeans examples make use of the "
+#~ "<literal>webbeans-servlet</literal> module. The use of the <ulink url="
+#~ "\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common "
+#~ "in the Wicket community, and is chosen here as the runtime container in "
+#~ "order to facilitate comparison between the standard Wicket examples and "
+#~ "these examples, and also to show how the webbeans-servlet integration is "
+#~ "not dependent upon Tomcat as the servlet container."
+#~ msgstr ""
+#~ "Come nel precedente esempio, gli esempi WebBeans Wicket usano il modulo "
+#~ "<literal>webbeans-servlet</literal>. L'uso del <ulink url=\"http://jetty."
+#~ "mortbay.org/\">Jetty servlet container</ulink> è comune nella comunità "
+#~ "Wicket, e qua viene scelto come container runtime per facilitare il "
+#~ "paragone tra gli esempi Wicket standard e questi esempi, ed anche per "
+#~ "mostrare come l'integrazione webbeans-servlet non è dipenendete da Tomcat "
+#~ "come servlet container."
+
+#~ msgid ""
+#~ "These examples make use of the Eclipse IDE; instructions are also given "
+#~ "to deploy the application from the command line."
+#~ msgstr ""
+#~ "Questi esempi usano Eclipse IDE; vengono date anche le istruzioni per il "
+#~ "deploy dell'applicazione da linea di comando."
+
+#~ msgid "To generate an Eclipse project from the example:"
+#~ msgstr "Per generare un progetto Eclipse dall'esempio:"
+
+#~ msgid ""
+#~ "Then, from eclipse, choose <emphasis>File -> Import -> General -> "
+#~ "Existing Projects into Workspace</emphasis>, select the root directory of "
+#~ "the numberguess example, and click finish. Note that if you do not intend "
+#~ "to run the example with jetty from within eclipse, omit the \"-Pjetty.\" "
+#~ "This will create a project in your workspace called <literal>webbeans-"
+#~ "wicket-numberguess</literal>"
+#~ msgstr ""
+#~ "Poi scegliere da Eclipse <emphasis>File -> Import -> General -> Existing "
+#~ "Projects into Workspace</emphasis>, selezionare la cartella radice "
+#~ "dell'esempio Indovina Numero e cliccare su Finish. Notare che se non si "
+#~ "intende eseguire l'esempio con Jetty da dentro Eclipse, si ometta \"-"
+#~ "Pjetty.\". Questo creerà un progetto nel workspace chiamato "
+#~ "<literal>webbeans-wicket-numberguess</literal>."
+
+#~ msgid "Running the example from Eclipse"
+#~ msgstr "Esecuzione dell'esempio da Eclipse"
+
+#~ msgid ""
+#~ "This project follows the <literal>wicket-quickstart</literal> approach of "
+#~ "creating an instance of Jetty in the <literal>Start</literal> class. So "
+#~ "running the example is as simple as right-clicking on that Start class in "
+#~ "<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+#~ "emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+#~ "should see console output related to Jetty starting up; then visit able "
+#~ "<literal>http://localhost:8080</literal> to view the app. To debug choose "
+#~ "<emphasis>Debug as Java Application</emphasis>."
+#~ msgstr ""
+#~ "Questo progetto segue l'approccio di <literal>wicket-quickstart</literal> "
+#~ "nella creazione di un'istanza di Jetty nella classe <literal>Start</"
+#~ "literal>. Quindi l'esecuzione dell'esempio è tanto semplice come cliccare "
+#~ "col tasto destro sulla classe Start in <literal>src/test/java</literal> "
+#~ "in <emphasis>Package Explorer</emphasis> e scegliere <emphasis>Run as "
+#~ "Java Application</emphasis>. Si dovrebbe vedere l'output di console di "
+#~ "Jetty avviato; poi visitare <literal>http://localhost:8080</literal>. Per "
+#~ "il debug scegliere <emphasis>Debug as Java Application</emphasis>."
+
+#~ msgid "Running the example from the command line in JBoss AS or Tomcat"
+#~ msgstr "Eseguire l'esempio da linea di comando in JBoss AS o Tomcat"
+
+#~ msgid ""
+#~ "This example can also be deployed from the command line in a (similar to "
+#~ "the other examples). Assuming you have set up the <literal>build."
+#~ "properties</literal> file in the <literal>examples</literal> directory to "
+#~ "specify the location of JBoss AS or Tomcat, as previously described, you "
+#~ "can run <literal>ant deploy</literal> from the <literal>examples/wicket/"
+#~ "numberguess</literal> directory, and access the application at "
+#~ "<literal>http://localhost:8080/webbeans-numberguess-wicket</literal>."
+#~ msgstr ""
+#~ "Quest'esempio può anche essere deployato da linea di comando (come gli "
+#~ "altri esempi). Assumendo che sia stato configurato il file <literal>build."
+#~ "properties</literal> nella derectory <literal>examples</literal>, per "
+#~ "specificare la locazione di JBoss AS o Tomcat, come descritto prima, si "
+#~ "può eseguire <literal>ant deploy</literal> dalla directory "
+#~ "<literal>examples/wicket/numberguess</literal> ed accedere "
+#~ "all'applicazione tramite indirizzo <literal>http://localhost:8080/"
+#~ "webbeans-numberguess-wicket</literal>."
+
+#~ msgid "Understanding the code"
+#~ msgstr "Comprendere il codice"
+
+#~ msgid ""
+#~ "JSF uses Unified EL expressions to bind view layer components in JSP or "
+#~ "Facelet views to beans, Wicket defines it's components in Java. The "
+#~ "markup is plain html with a one-to-one mapping between html elements and "
+#~ "the view components. All view logic, including binding of components to "
+#~ "models and controlling the response of view actions, is handled in Java. "
+#~ "The integration of Web Beans with Wicket takes advantage of the same "
+#~ "binding annotations used in your business layer to provide injection into "
+#~ "your WebPage subclass (or into other custom wicket component subclasses)."
+#~ msgstr ""
+#~ "JSF usa le espressioni Unified EL per associare i componenti del layer "
+#~ "vista nelle viste JSP o Facelets ai bean, Wicket definisce i propri "
+#~ "componenti in Java. Il markup è puro html con una mappatura one-to-one "
+#~ "tra gli elementi html ed i componenti vista. Tutta la logica di vista "
+#~ "viene gestita in Java, incluso il binding dei componenti ai modelli ed il "
+#~ "controllo della risposta delle azioni di vista. L'integrazione di Web "
+#~ "Beans con Wicket sfrutta le stesse annotazioni di binding usata nel layer "
+#~ "business per fornire l'iniezione alla sottoclasse WebPage (o in altre "
+#~ "sottoclassi personalizzate componenti di Wicket)."
+
+#~ msgid ""
+#~ "The code in the wicket numberguess example is very similar to the JSF-"
+#~ "based numberguess example. The business layer is identical!"
+#~ msgstr ""
+#~ "Il codice nell'esempio Indovina Numero in Wicket è molto simile "
+#~ "all'esempio Indovina Numero basato su JSF. Il layer business è identico!"
+
+#~ msgid "Differences are:"
+#~ msgstr "Le differenze sono:"
+
+#~ msgid ""
+#~ "Each wicket application must have a <literal>WebApplication</literal> "
+#~ "subclass, In our case, our application class is "
+#~ "<literal>SampleApplication</literal>:"
+#~ msgstr ""
+#~ "Ciascuna applicazione wicket deve avere una sottoclasse "
+#~ "<literal>WebApplication</literal>. Nel nostro caso la classe applicazione "
+#~ "è <literal>SampleApplication</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This class specifies which page wicket should treat as our home page, in "
+#~ "our case, <literal>HomePage.class</literal>"
+#~ msgstr ""
+#~ "Questa classe specifica quale pagina wicket debba essere considerata come "
+#~ "home page, nel nostro caso  <literal>HomePage.class</literal>."
+
+#~ msgid ""
+#~ "In <literal>HomePage</literal> we see typical wicket code to set up page "
+#~ "elements. The bit that is interesting is the injection of the "
+#~ "<literal>Game</literal> bean:"
+#~ msgstr ""
+#~ "In <literal>HomePage</literal> si vede un tipico codice wicket per "
+#~ "impostare gli elementi di pagina. Il punto interessante è l'iniezione del "
+#~ "bean <literal>Game</literal>:"
+
+#~ msgid "<![CDATA[ @Current Game game;]]>"
+#~ msgstr "<![CDATA[ @Current Game game;]]>"
+
+#~ msgid ""
+#~ "The <literal>Game</literal> bean is can then be used, for example, by the "
+#~ "code for submitting a guess:"
+#~ msgstr ""
+#~ "Il bean <literal>Game</literal> può essere usato, per esempio, da codice "
+#~ "per inviare un tentativo:"
+
+#~ msgid ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+#~ msgstr ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+
+#~ msgid ""
+#~ "All injections may be serialized; actual storage of the bean is managed "
+#~ "by JSR-299. Note that Wicket components, like the HomePage and it "
+#~ "subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+#~ msgstr ""
+#~ "Tutte le iniezioni possono essere serializzate; il salvataggio su disco "
+#~ "del bean è gestito daJSR-299. Si noti che i componenti Wicket come "
+#~ "HomePage ed i suoi sottocomponenti <emphasis>non</emphasis> sono bean JSR-"
+#~ "299."
+
+#~ msgid ""
+#~ "Wicket components allow injection, but they <emphasis>cannot</emphasis> "
+#~ "use interceptors, decorators and lifecycle callbacks such as "
+#~ "<literal>@PostConstruct</literal> or <literal>@Initializer</literal> "
+#~ "methods."
+#~ msgstr ""
+#~ "I componenti Wicket consentono l'iniezione, ma <emphasis>non possono</"
+#~ "emphasis> usare gli interceptor, i decoratori e le chiamate del ciclo di "
+#~ "vita quali i metodi <literal>@PostConstruct</literal> o "
+#~ "<literal>@Initializer</literal>."
+
+#~ msgid ""
+#~ "The example uses AJAX for processing of button events, and dynamically "
+#~ "hides buttons that are no longer relevant, for example when the user has "
+#~ "won the game."
+#~ msgstr ""
+#~ "L'esempio usa AJAX per processare gli eventi dei pulsanti, e nasconde "
+#~ "dinamicamente i pulsanti che non sono più rilevanti, per esempio quando "
+#~ "l'utente ha vinto il gioco."
+
+#~ msgid ""
+#~ "In order to activate wicket for this webapp, the Wicket filter is added "
+#~ "to web.xml, and our application class is specified:"
+#~ msgstr ""
+#~ "Per attivare wicket per questa webapp, il filtro Wicket viene aggiunto a "
+#~ "web.xml, e viene specificata la classe di applicazione:"
+
+#~ msgid ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid ""
+#~ "Note that the servlet listener is also added, as in the Tomcat example, "
+#~ "in order to boostrap Web Beans when Jetty starts, and to hook Web Beans "
+#~ "into the Jetty servlet request and session lifecycles."
+#~ msgstr ""
+#~ "Si noti che il servlet listener viene aggiunto, come nell'esempio Tomcat, "
+#~ "per poter avviare Web Beans quando viene avviato Jetty, e per agganciare "
+#~ "Web Beans alla richiesta servlet di Jetty ed al ciclo di vita della "
+#~ "sessione."
+
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "Esempio Indovina Numero per Java SE con Swing"
+
+#~ msgid "To run this example:"
+#~ msgstr "Per eseguire quest'esempio:"
+
+#~ msgid ""
+#~ "Open a command line/terminal window in the <literal>examples/se/"
+#~ "numberguess</literal> directory"
+#~ msgstr ""
+#~ "Aprire una finestra di terminale/linea di comando nella directory "
+#~ "<literal>examples/se/numberguess</literal>"
+
+#~ msgid "Ensure that Maven 2 is installed and in your PATH"
+#~ msgstr "Assicurarsi che Maven 2 sia installato e presente nel PATH"
+
+#~ msgid ""
+#~ "Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+#~ "pointing to your JDK installation"
+#~ msgstr ""
+#~ "Assicurarsi che la variabile d'ambiente <literal>JAVA_HOME</literal> "
+#~ "punti alla propria installazione JDK"
+
+#~ msgid "execute the following command"
+#~ msgstr "eseguire il seguente comando"
+
+#~ msgid "mvn -Drun"
+#~ msgstr "mvn -Drun"
+
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Vi è un file vuoto <literal>beans.xml</literal> nel pacchetto radice "
+#~ "(<literal>src/main/resources/beans.xml</literal>), che identifica "
+#~ "l'applicazione come applicazione Web Beans."
+
+#~ msgid ""
+#~ "The game's main logic is located in <literal>Game.java</literal>. Here is "
+#~ "the code for that class, highlighting the changes made from the web "
+#~ "application version:"
+#~ msgstr ""
+#~ "La logica principale del gioco è collocata in <literal>Game.java</"
+#~ "literal>. Ecco il codice per questa classe, evidenziando i cambiamenti "
+#~ "fatti nella versione web:"
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> "
+#~ "The bean is application scoped instead of session scoped, since an "
+#~ "instance of the application represents a single 'session'. </para> </"
+#~ "callout> <callout arearefs=\"name\"> <para> The bean is not named, since "
+#~ "it doesn't need to be accessed via EL </para> </callout> <callout "
+#~ "arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</"
+#~ "literal> to add messages to. Instead the <literal>Game</literal> class "
+#~ "provides additional information about the state of the current game "
+#~ "including: </para> <itemizedlist> <listitem> <para> If the game has been "
+#~ "won or lost </para> </listitem> <listitem> <para> If the most recent "
+#~ "guess was invalid </para> </listitem> </itemizedlist> <para> This allows "
+#~ "the Swing UI to query the state of the game, which it does indirectly via "
+#~ "a class called <literal>MessageGenerator,</literal> in order to determine "
+#~ "the appropriate messages to display to the user during the game. </para> "
+#~ "</callout> <callout arearefs=\"validation\"> <para> Validation of user "
+#~ "input is performed during the <literal>check()</literal> method, since "
+#~ "there is no dedicated validation phase </para> </callout> <callout "
+#~ "arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a "
+#~ "call to the injected <literal>rndGenerator</literal> in order to get the "
+#~ "random number at the start of each game. It cannot use <literal>manager."
+#~ "getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})"
+#~ "</literal> as the JSF example does because there will not be any active "
+#~ "contexts like there is during a JSF request. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+#~ "literal> class depends on the current instance of <literal>Game</"
+#~ "literal>, and queries its state in order to determine the appropriate "
+#~ "messages to provide as the prompt for the user's next guess and the "
+#~ "response to the previous guess. The code for <literal>MessageGenerator</"
+#~ "literal> is as follows: </para> <programlistingco> <areaspec> <area id="
+#~ "\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id="
+#~ "\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> "
+#~ "The instance of <literal>Game</literal> for the application is injected "
+#~ "here. </para> </callout> <callout arearefs=\"challenge\"> <para> The "
+#~ "<literal>Game</literal>'s state is interrogated to determine the "
+#~ "appropriate challenge message. </para> </callout> <callout arearefs="
+#~ "\"result\"> <para> And again to determine whether to congratulate, "
+#~ "console or encourage the user to continue. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> Finally we come to the "
+#~ "<literal>NumberGuessFrame</literal> class which provides the Swing front "
+#~ "end to our guessing game. </para> <programlistingco> <areaspec> <area id="
+#~ "\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id="
+#~ "\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "The injected instance of the game (logic and state). </para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> The injected message generator "
+#~ "for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "This application is started in the usual Web Beans SE way, by observing "
+#~ "the <literal>@Deployed Manager</literal> event. </para> </callout> "
+#~ "<callout arearefs=\"init\"> <para> This method initialises all of the "
+#~ "Swing components. Note the use of the <literal>msgGenerator</literal>. </"
+#~ "para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+#~ "button is clicked, and it does the following: </para> <itemizedlist> "
+#~ "<listitem> <para> Gets the guess entered by the user and sets it as the "
+#~ "current guess in the <literal>Game</literal> </para> </listitem> "
+#~ "<listitem> <para> Calls <literal>game.check()</literal> to validate and "
+#~ "perform one 'turn' of the game </para> </listitem> <listitem> <para> "
+#~ "Calls <literal>refreshUI</literal>. If there were validation errors with "
+#~ "the input, this will have been captured during <literal>game.check()</"
+#~ "literal> and as such will be reflected in the messeges returned by "
+#~ "<literal>MessageGenerator</literal> and subsequently presented to the "
+#~ "user. If there are no validation errors then the user will be told to "
+#~ "guess again (higher or lower) or that the game has ended either in a win "
+#~ "(correct guess) or a loss (ran out of guesses). </para> </listitem> </"
+#~ "itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal> simply calls <literal>game."
+#~ "reset()</literal> to start a new game and refreshes the messages in the "
+#~ "UI. </para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> "
+#~ "to update the messages to the user based on the current state of the "
+#~ "Game. </para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> "
+#~ "The bean is application scoped instead of session scoped, since an "
+#~ "instance of the application represents a single 'session'. </para> </"
+#~ "callout> <callout arearefs=\"name\"> <para> The bean is not named, since "
+#~ "it doesn't need to be accessed via EL </para> </callout> <callout "
+#~ "arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</"
+#~ "literal> to add messages to. Instead the <literal>Game</literal> class "
+#~ "provides additional information about the state of the current game "
+#~ "including: </para> <itemizedlist> <listitem> <para> If the game has been "
+#~ "won or lost </para> </listitem> <listitem> <para> If the most recent "
+#~ "guess was invalid </para> </listitem> </itemizedlist> <para> This allows "
+#~ "the Swing UI to query the state of the game, which it does indirectly via "
+#~ "a class called <literal>MessageGenerator,</literal> in order to determine "
+#~ "the appropriate messages to display to the user during the game. </para> "
+#~ "</callout> <callout arearefs=\"validation\"> <para> Validation of user "
+#~ "input is performed during the <literal>check()</literal> method, since "
+#~ "there is no dedicated validation phase </para> </callout> <callout "
+#~ "arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a "
+#~ "call to the injected <literal>rndGenerator</literal> in order to get the "
+#~ "random number at the start of each game. It cannot use <literal>manager."
+#~ "getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})"
+#~ "</literal> as the JSF example does because there will not be any active "
+#~ "contexts like there is during a JSF request. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+#~ "literal> class depends on the current instance of <literal>Game</"
+#~ "literal>, and queries its state in order to determine the appropriate "
+#~ "messages to provide as the prompt for the user's next guess and the "
+#~ "response to the previous guess. The code for <literal>MessageGenerator</"
+#~ "literal> is as follows: </para> <programlistingco> <areaspec> <area id="
+#~ "\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id="
+#~ "\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> "
+#~ "The instance of <literal>Game</literal> for the application is injected "
+#~ "here. </para> </callout> <callout arearefs=\"challenge\"> <para> The "
+#~ "<literal>Game</literal>'s state is interrogated to determine the "
+#~ "appropriate challenge message. </para> </callout> <callout arearefs="
+#~ "\"result\"> <para> And again to determine whether to congratulate, "
+#~ "console or encourage the user to continue. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> Finally we come to the "
+#~ "<literal>NumberGuessFrame</literal> class which provides the Swing front "
+#~ "end to our guessing game. </para> <programlistingco> <areaspec> <area id="
+#~ "\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id="
+#~ "\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "The injected instance of the game (logic and state). </para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> The injected message generator "
+#~ "for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "This application is started in the usual Web Beans SE way, by observing "
+#~ "the <literal>@Deployed Manager</literal> event. </para> </callout> "
+#~ "<callout arearefs=\"init\"> <para> This method initialises all of the "
+#~ "Swing components. Note the use of the <literal>msgGenerator</literal>. </"
+#~ "para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+#~ "button is clicked, and it does the following: </para> <itemizedlist> "
+#~ "<listitem> <para> Gets the guess entered by the user and sets it as the "
+#~ "current guess in the <literal>Game</literal> </para> </listitem> "
+#~ "<listitem> <para> Calls <literal>game.check()</literal> to validate and "
+#~ "perform one 'turn' of the game </para> </listitem> <listitem> <para> "
+#~ "Calls <literal>refreshUI</literal>. If there were validation errors with "
+#~ "the input, this will have been captured during <literal>game.check()</"
+#~ "literal> and as such will be reflected in the messeges returned by "
+#~ "<literal>MessageGenerator</literal> and subsequently presented to the "
+#~ "user. If there are no validation errors then the user will be told to "
+#~ "guess again (higher or lower) or that the game has ended either in a win "
+#~ "(correct guess) or a loss (ran out of guesses). </para> </listitem> </"
+#~ "itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal> simply calls <literal>game."
+#~ "reset()</literal> to start a new game and refreshes the messages in the "
+#~ "UI. </para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> "
+#~ "to update the messages to the user based on the current state of the "
+#~ "Game. </para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid "The translator example"
+#~ msgstr "Esempio Traduttore"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr ""
+#~ "L'esempio Traduttore prende le frasi che vengono inserite e le traduce in "
+#~ "latino."
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "L'esempio Traduttore è assemblato in un ear, e contiene EJB. Di "
+#~ "conseguenza, la sua struttura è più complessa di quella dell'esempio "
+#~ "Indovina Numero."
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 and Java EE 6 permettono di assemblare gli EJB in un war, cosa "
+#~ "che rende questa struttura molto più semplice!"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "Innanzitutto, diamo un'occhiata all'aggregatore ear, che è situato nel "
+#~ "modulo <literal>webbeans-translator-ear</literal>. Maven genera "
+#~ "automaticamente il file <literal>application.xml</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "Se non si sta usando Maven per generare questi file, sarebbe necessario "
+#~ "avere il file <literal>META-INF/application.xml</literal>:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "Quindi, esaminiamo il war. Proprio come nell'esempio Indovina Numero, "
+#~ "abbiamo un <literal>faces-config.xml</literal> (per abilitare Facelets) e "
+#~ "un <literal>web.xml</literal> (per abilitare JSF) in <literal>WebContent/"
+#~ "WEB-INF</literal>."
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "Più interessante è il facelet usato per tradurre il testo. Proprio come "
+#~ "nell'esempio Indovina Numero c'è un template, che circoscrive la form "
+#~ "(qui omessa per brevità):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "L'utente può inserire del testo nell'area di testo sulla sinistra e "
+#~ "premere il pulsante di traduzione per vedere il risultato sulla destra."
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "Infine, si esamini il modulo ejb, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> si trova un "
+#~ "file vuoto <literal>web-beans.xml</literal>, usato per marcare l'archivio "
+#~ "come contenente Web Beans."
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "Abbiamo lasciato per ultimo il boccone più prelibato, il codice! Il "
+#~ "progetto ha due bean semplici, <literal>SentenceParser</literal> e "
+#~ "<literal>TextTranslator</literal> e due bean enterprise, "
+#~ "<literal>TranslatorControllerBean</literal> e "
+#~ "<literal>SentenceTranslator</literal>. Dovreste ormai essere piuttosto "
+#~ "familiari all'aspetto di un Web Bean, così ci limiteremo a evidenziare le "
+#~ "parti più interessanti."
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "Sia <literal>SentenceParser</literal> che <literal>TextTranslator</"
+#~ "literal> sono bean dependenti, e <literal>TextTranslator</literal> usa "
+#~ "l'inizializzazione via costruttore:"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> è un bean stateless (con un'interfaccia "
+#~ "business locale), dove avviene la magia - naturalmente, non potevamo "
+#~ "sviluppare un traduttore completo, ma gli abbiamo dato un buon avvio!"
+
 # This is a request scoped, named, stateful session bean, which injects the translator.
 # se è request scoped come può essere statefull session??????
 # vuol dire che è un bean che sta nella sessione ma certe variabili le piglia dalla richiesta e ogni richiesta vede le proprie?????
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid "Finally, there is UI orientated controller, that collects the text from the user, and dispatches it to the translator. This is a request scoped, named, stateful session bean, which injects the translator."
-msgstr "Infine, vi è un controller orientato all'UI, che raccoglie il testo dall'utente, e lo invia al traduttore. Questo è un bean stateful di sessione, dotato di nome, con scope richiesta, in cui viene iniettato il traduttore."
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "Infine, vi è un controller orientato all'UI, che raccoglie il testo "
+#~ "dall'utente, e lo invia al traduttore. Questo è un bean stateful di "
+#~ "sessione, dotato di nome, con scope richiesta, in cui viene iniettato il "
+#~ "traduttore."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr "Il bean possiede pure dei metodi getter e setter per tutti i campi della pagina."
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr ""
+#~ "Il bean possiede pure dei metodi getter e setter per tutti i campi della "
+#~ "pagina."
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr "Poichè si tratta di un bean stateful di sessione, è necessario un metodo di rimozione (remove method):"
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "Poichè si tratta di un bean stateful di sessione, è necessario un metodo "
+#~ "di rimozione (remove method):"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid "The Web Beans manager will call the remove method for you when the bean is destroyed; in this case at the end of the request."
-msgstr "Il manager Web Beans chiamerà il metodo di rimozione quando il bean verrà distrutto; in questo caso al termine della richiesta."
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "Il manager Web Beans chiamerà il metodo di rimozione quando il bean verrà "
+#~ "distrutto; in questo caso al termine della richiesta."
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, no-c-format
-msgid "That concludes our short tour of the Web Beans examples. For more on Web Beans , or to help out, please visit <ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
-msgstr "Ciò conclude il nostro breve tour degli esempi della RI di Web Beans. Per saperne di più, o per trovare ulteriore aiuto, per favore visitate <ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "Ciò conclude il nostro breve tour degli esempi della RI di Web Beans. Per "
+#~ "saperne di più, o per trovare ulteriore aiuto, per favore visitate <ulink "
+#~ "url=\"http://www.seamframework.org/WebBeans/Development\">http://www."
+#~ "seamframework.org/WebBeans/Development</ulink>."
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid "We need help in all areas - bug fixing, writing new features, writing examples and translating this reference guide."
-msgstr "Abbiamo bisogno di aiuto in tutte le aree - soluzione dei bug, scrittura di nuove caratteristiche ed esempi e traduzione di questa guida."
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "Abbiamo bisogno di aiuto in tutte le aree - soluzione dei bug, scrittura "
+#~ "di nuove caratteristiche ed esempi e traduzione di questa guida."
 
 #~ msgid ""
 #~ "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss "
@@ -1929,8 +3069,10 @@
 #~ "JBoss AS. Questo aggiunge a JBoss AS il supporto degli archivi Web Bean, "
 #~ "e consente a Web Beans RI di interrogare il container EJB3 e scoprire "
 #~ "quali EJB sono installati nell'applicazione."
+
 #~ msgid "Web Beans is bundled with JBoss AS 5.1 and above."
 #~ msgstr "Web Beans viene fornito con JBoss AS 5.1 e superiore."
+
 #~ msgid ""
 #~ "As Web Beans is a new piece of software, you need to update JBoss AS to "
 #~ "run the Web Beans RI. Future versions of JBoss AS will include these "
@@ -1939,6 +3081,7 @@
 #~ "Poiché Web Beans è un software nuovo, occorre aggiornare JBoss AS per "
 #~ "poter eseguire la RI di Web Beans. Versioni future di JBoss AS "
 #~ "includeranno questi update, e questa operazione non sarà necessaria."
+
 #~ msgid ""
 #~ "The final Web Bean in the application is the session scoped "
 #~ "<literal>Game</literal>. By making <literal>Game</literal> session "
@@ -1950,6 +3093,7 @@
 #~ "possibile giocare una sola volta per sessione del browser. Potreste "
 #~ "facilmente aggiungere un pulsante di reset - un buon esercizio lasciato "
 #~ "al lettore :-)"
+
 #~ msgid ""
 #~ "<![CDATA[@Named\n"
 #~ "@SessionScoped\n"
@@ -2028,6 +3172,7 @@
 #~ "   }\n"
 #~ "   \n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 #~ "<!DOCTYPE jboss-app\n"
@@ -2046,8 +3191,10 @@
 #~ "  <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
 #~ "loader-repository>\n"
 #~ "</jboss-app>]]>"
+
 #~ msgid "and <literal>META-INF/application.xml</literal>:"
 #~ msgstr "e <literal>META-INF/application.xml</literal>:"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 #~ "<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
@@ -2096,4 +3243,3 @@
 #~ "   </assembly-descriptor>\n"
 #~ "   \n"
 #~ "</ejb-jar>]]>"
-

Modified: doc/trunk/reference/it-IT/injection.po
===================================================================
--- doc/trunk/reference/it-IT/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-24 18:19+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-24 19:22+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,35 +15,54 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "Dependency injection"
 
-# dependency injection va lascaita in inglese, non ricordo?
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans supporta tre meccanismi primari per la dependency injection:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Iniezione dei parametri del costruttore"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr ""
+"Iniezione dei parametri del <emphasis>metodo inizializzatore (initializer "
+"method)</emphasis>:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -59,23 +78,31 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
-msgstr "Iniezione dei parametri del <emphasis>metodo inizializzatore (initializer method)</emphasis>:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
+msgstr ""
+"Iniezione dei parametri del <emphasis>metodo inizializzatore (initializer "
+"method)</emphasis>:"
+
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -90,20 +117,29 @@
 "    \n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:38
+#, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
 # attributi o campi?
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:44
 #, no-c-format
 msgid "And direct field injection:"
 msgstr "Iniezione diretta degli attributi"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -114,57 +150,93 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
-msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
-msgstr "La dependency injection avviene sempre quando il Web Bean viene istanziato la prima volta."
+msgid ""
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
-msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
-msgstr "Innanzitutto, il Web Bean manager chiama il costruttore, per ottenere un'istanza del Web Bean."
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"La dependency injection avviene sempre quando il Web Bean viene istanziato "
+"la prima volta."
 
+#. Tag: para
+#: injection.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"Innanzitutto, il Web Bean manager chiama il costruttore, per ottenere "
+"un'istanza del Web Bean."
+
 # soggetti/sottoposti
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
-msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
-msgstr "Quindi, il Web Bean manager inizializza i valori di tutti i campi del Web Bean soggetti ad iniezione."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"Quindi, il Web Bean manager inizializza i valori di tutti i campi del Web "
+"Bean soggetti ad iniezione."
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "Quindi, il Web Bean manager chiama tutti i metodi inizializzatori del Web Bean."
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"Quindi, il Web Bean manager chiama tutti i metodi inizializzatori del Web "
+"Bean."
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
-msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
-msgstr "Infine, se ne esiste uno, viene chiamato il metodo del Web Bean annotato con <literal>@PostConstruct</literal>."
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"Infine, se ne esiste uno, viene chiamato il metodo del Web Bean annotato con "
+"<literal>@PostConstruct</literal>."
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:86
 #, no-c-format
-msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "L'iniezione dei parametri del costruttore non è supportata per gli EJB, poiché gli EJB sono istanziati dal container EJB, non dal manager Web Bean."
+msgid ""
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
-# il tipo di binding o il tipo del binding (very philosophica!!!=)?????
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
-msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
-msgstr "I parametri dei costruttori e dei metodi di inizializzazione non devono essere annotati esplicitamente quando il tipo del binding è <literal>@Current</literal>, quello predefinito. I campi iniettati, comunque, <emphasis>devono</emphasis> specificare il tipo del binding, anche quando il tipo del binding è quello predefinito. Se il campo non specifica il tipo del binding, non verrà iniettato."
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "I metodi produttori supportano anche l'iniezione dei parametri:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -175,73 +247,133 @@
 "    return new Checkout(cart);\n"
 "}]]>"
 
-# disposal=rilascio/clean up?????
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
-msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
-msgstr "Infine, i metodi observer (che vedremo in <xref linkend=\"events\"/>), i metodi disposal e i metodi distruttori supportano tutti l'iniezione dei parametri."
+msgid ""
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 # algoritmo di risoluzione sicura rispetto ai tipi è corretto?
 # il che significa?
 #. Tag: para
-#: injection.xml:58
-#, no-c-format
-msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "Le specifiche Web Beans definiscono una procedura, chiamata <emphasis>typesafe resolution algorithm (algoritmo di risoluzione sicura rispetto ai tipi)</emphasis>, che il manager Web Bean segue quando deve identificare il Web Beanda iniettare in punto di iniezione. Questo algoritmo di primo acchito sembra complesso, ma una volta che lo si è compreso, in realtà, risulta piuttosto intuitivo. La risoluzione sicura dei tipi viene eseguita durante l'inizializzazione del sistema (system initialization time), il che significa che il manager Web Bean informerà immediatamente un utente se le dipendenze di un Web Bean non possono essere soddisfatte, lanciando una <literal>UnsatisfiedDependencyException</literal> o una <literal>AmbiguousDependencyException</literal>."
+#: injection.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
+"Le specifiche Web Beans definiscono una procedura, chiamata "
+"<emphasis>typesafe resolution algorithm (algoritmo di risoluzione sicura "
+"rispetto ai tipi)</emphasis>, che il manager Web Bean segue quando deve "
+"identificare il Web Beanda iniettare in punto di iniezione. Questo algoritmo "
+"di primo acchito sembra complesso, ma una volta che lo si è compreso, in "
+"realtà, risulta piuttosto intuitivo. La risoluzione sicura dei tipi viene "
+"eseguita durante l'inizializzazione del sistema (system initialization "
+"time), il che significa che il manager Web Bean informerà immediatamente un "
+"utente se le dipendenze di un Web Bean non possono essere soddisfatte, "
+"lanciando una <literal>UnsatisfiedDependencyException</literal> o una "
+"<literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
-msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
-msgstr "Lo scopo di questo algoritmo è di permettere a più Web Bean di implementare la stessa tipo definito dall'API e:"
+#: injection.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"Lo scopo di questo algoritmo è di permettere a più Web Bean di implementare "
+"la stessa tipo definito dall'API e:"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
-msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
-msgstr "permettere al client di selezionare l'implementazione richiesta usando le <emphasis>binding annotations</emphasis>,"
+#: injection.xml:126
+#, fuzzy, no-c-format
+msgid ""
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"permettere al client di selezionare l'implementazione richiesta usando le "
+"<emphasis>binding annotations</emphasis>,"
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"allow the application deployer to select which implementation is appropriate "
+"for a particular deployment, without changes to the client, by enabling or "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"permettere all'installatore dell'applicazione (deployer) di selezionare "
+"quale implementazione è appropriata per un particolare deploy, senza "
+"cambiamenti al client, abilitando o disabilitando <emphasis>i tipi di "
+"deploy</emphasis>, o"
+
+#. Tag: para
+#: injection.xml:137
 #, no-c-format
-msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
-msgstr "permettere all'installatore dell'applicazione (deployer) di selezionare quale implementazione è appropriata per un particolare deploy, senza cambiamenti al client, abilitando o disabilitando <emphasis>i tipi di deploy</emphasis>, o"
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
 
-# override=fare override?
-# deployment time???
-# regole di precednza?
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:143
 #, no-c-format
-msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
-msgstr "permette ad un'implementazione della API di fare l'override di un'altra implementazione della stessa API a deployment time, senza apportare modifiche al client, usando <emphasis>la precedenza fra tipi di deploy (deployment type precedence)</emphasis>."
+msgid ""
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Indaghiamo come il manager di Web Beans individua un Web Bean da iniettare."
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "Annotazioni di binding"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
-msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
-msgstr "Se esiste più di un Web Bean che implementa un particolare tipo di API, il punto di iniezione può specificare esattamente quale Web Bean dovrebbe essere iniettato usando una binding annotation. Per esempio, ci potrebbero essere due implementazioni di <literal>PaymentProcessor</literal>:"
+#: injection.xml:159
+#, fuzzy, no-c-format
+msgid ""
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
+"<literal>PaymentProcessor</literal>:"
+msgstr ""
+"Se esiste più di un Web Bean che implementa un particolare tipo di API, il "
+"punto di iniezione può specificare esattamente quale Web Bean dovrebbe "
+"essere iniettato usando una binding annotation. Per esempio, ci potrebbero "
+"essere due implementazioni di <literal>PaymentProcessor</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -250,33 +382,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
-msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
-msgstr "Dove <literal>@PayByCheque</literal> e <literal>@PayByCreditCard</literal> sono binding annotation:"
+#: injection.xml:169
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"Dove <literal>@PayByCheque</literal> e <literal>@PayByCreditCard</literal> "
+"sono binding annotation:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -284,112 +420,177 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
-msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
-msgstr "Lo sviluppatore di un Web Bean client usa la binding annotation per specificare esattamente quale Web Bean debba essere iniettato."
+#: injection.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"Lo sviluppatore di un Web Bean client usa la binding annotation per "
+"specificare esattamente quale Web Bean debba essere iniettato."
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "Utilizzando l'iniezione a livello di campo:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 # metodo inizializzatore?
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "Utilizzando l'iniezione a livello di metodo inizializzatore:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "O usando l'iniezione a livello di costruttore:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
-# ????
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "Annotazioni di binding con membri"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "Le binding annotation possono avere dei membri:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -400,631 +601,754 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "Nel qual caso, il valore del membro è significativo:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 # qui e altrove, membro va bene?
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
-msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
-msgstr "E' possibile indicare al manager Web Bean di ignorare un membro di un tipo di binding annotation annotando il membro con <literal>@NonBinding</literal>."
+#: injection.xml:232
+#, fuzzy, no-c-format
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"E' possibile indicare al manager Web Bean di ignorare un membro di un tipo "
+"di binding annotation annotando il membro con <literal>@NonBinding</literal>."
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "Combinazioni di binding annotation"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
 msgstr "Un punto di iniezione può anche specificare più binding annotation:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
-msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
-msgstr "In questo caso, soltanto un Web Bean che ha <emphasis>entrambe</emphasis> le binding annotation sarebbe candidato ad essere iniettato."
+#: injection.xml:250
+#, fuzzy, no-c-format
+msgid ""
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"In questo caso, soltanto un Web Bean che ha <emphasis>entrambe</emphasis> le "
+"binding annotation sarebbe candidato ad essere iniettato."
 
-# metodi produttori?
+#. Tag: programlisting
+#: injection.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:153
+#: injection.xml:260
 #, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "Binding annotation e metodi produttori"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:155
+#: injection.xml:262
 #, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "Anche i metodi produttori possono specificare binding annotation:"
+msgid ""
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:266
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
-#. Tag: title
-#: injection.xml:162
-#, no-c-format
-msgid "The default binding type"
-msgstr "Il tipo di binding predefinito"
-
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:268
 #, no-c-format
-msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
-msgstr "Web Beans definisce un tipo di binding <literal>@Current</literal> che è il tipo di binding predefinito per ogni punto di iniezione o per ogni Web Bean che non specifichi esplicitamente un tipo di binding."
+msgid ""
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:168
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
-msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
-msgstr "Vi sono due circostanze comuni in cui è necessario specificare esplicitamente l'annotazione <literal>@Current</literal>:"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:173
+#: injection.xml:276
 #, no-c-format
-msgid "on a field, in order to declare it as an injected field with the default binding type, and"
-msgstr "su un campo, allo scopo di dichiararne l'iniezione con il tipo di binding predefinito, and"
+msgid ""
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:177
-#, no-c-format
-msgid "on a Web Bean which has another binding type in addition to the default binding type."
-msgstr "su un Web Bean che ha un tipo di binding aggiuntivo rispetto al tipo di binding predefinito."
-
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipi di deploy"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "Risoluzione di dipendenze non soddisfatte"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
-msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
-msgstr "Tutti i Web Bean hanno un <emphasis>tipo di deployment (deployment type)</emphasis>. Ogni tipo di deployment identifica un insieme di Web Bean che dovrebbe essere installato in modo condizionale in corrispondenza ad alcuni deploy del sistema."
+#: injection.xml:287
+#, fuzzy, no-c-format
+msgid ""
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"L'algoritmo di risoluzione sicura rispetto ai tipi fallisce quando, dopo "
+"avere considerato le binding annotation e i tipi di deploy di tutti i Web "
+"Bean che implementano il tipo di un punto di iniezione, il manager Web Bean "
+"non è in grado di identificare esattamente uno ed un solo Web Bean da "
+"iniettare."
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
-msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
-msgstr "Per esempio, potremmo definire un tipo di deploy denominato <literal>@Mock</literal>, che identifichi i Web Bean da installare soltanto quando il sistema è posto in esecuzione in un ambiente di test integrato:"
-
-#. Tag: programlisting
-#: injection.xml:197
-#, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:298
 #, no-c-format
-msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
-msgstr "Supponiamo di avere alcuni Web Bean che interagiscano con un sistema di pagamenti esterno:"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:309
 #, no-c-format
-msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
-msgstr "Dal momento che questo Web Bean non specifica esplicitamente un tipo di deploy, ha il tipo di deploy predefinito <literal>@Production</literal>."
+msgid ""
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
+msgstr ""
 
-#  integration and unit testing=i test di unità/pacchetto e di integrazione?
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:314
 #, no-c-format
-msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
-msgstr "Per le attività di test (d'unità o integrazione), il sistema esterno è lento o non disponibile. Così sarebbe necessario creare un oggetto mock:"
-
-#. Tag: programlisting
-#: injection.xml:210
-#, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:321
 #, no-c-format
-msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
-msgstr "Ma in che modo il manager Web Bean determina quale implementazione usare con un particolare deploy?"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
-msgid "Enabling deployment types"
-msgstr "Abilitazione dei tipi di deploy"
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:332
 #, no-c-format
-msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
-msgstr "Web Beans definisce due tipi di deploy percostituiti: <literal>@Production</literal> e <literal>@Standard</literal>. Di default, sono abilitati soltanto i Web Bean con i tipi di deploy precostituiti quando si procede al deploy del sistema. E' possibile abilitare dei tipi di deploy aggiuntivi per un particolare deploy elencandoli in <literal>web-beans.xml</literal>."
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:337
 #, no-c-format
-msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
-msgstr "Tornando al nostro esempio, quando si fa il deploy dei test di integrazione, si vuole che tutti gli oggetti <literal>@Mock</literal> vengano installati:"
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
-# deployment time=al momento del deploy?
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:350
 #, no-c-format
-msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
-msgstr "Ora il manager Web Bean identificherà ed installerà tutti i Web Bean annotati con <literal>@Production</literal>, <literal>@Standard</literal> o <literal>@Mock</literal> a deployment time."
+msgid ""
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:358
 #, no-c-format
-msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
-msgstr "Il tipo di deploy <literal>@Standard</literal> è usato soltanto per dei Web Bean speciali definiti nelle specifiche. Non è possibile utilizzarlo per i propri Web Bean, e non è possibile disabilitarlo."
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:361
 #, no-c-format
-msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
-msgstr "Il tipo di deploy <literal>@Production</literal> è quello predefinito per i Web Bean che non dichiarano esplicitamente un tipo di deploy, e può essere disabilitato."
+msgid ""
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
-#. Tag: title
-#: injection.xml:244
-#, no-c-format
-msgid "Deployment type precedence"
-msgstr "Precedenza del tipo di deploy"
-
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
-msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation &#151; <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider what happens when the manager encounters this injection point:"
-msgstr "Se avete prestato attenzione, vi state probabilmente chiedendo come il manager Web Bean decida quale implementazione scegliere &#151; <literal>ExternalPaymentProcessor</literal> o <literal>MockPaymentProcessor</literal> &#151; Si consideri cosa succede quando il manager incontra questo punto di iniezione:"
+#: injection.xml:366
+#, fuzzy, no-c-format
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
+"Vi è un ulteriore questione di cui occorre essere a conoscenza quando si usa "
+"la dependency injection in Web Beans."
 
-#. Tag: programlisting
-#: injection.xml:251
+#. Tag: title
+#: injection.xml:373
 #, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+msgid "Client proxies"
+msgstr "Client proxy"
 
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
-msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
-msgstr "Vi sono ora due Web Bean che soddisfano l'interfaccia di <literal>PaymentProcessor</literal>. Naturalmente, non è possibile utilizzare una binding annotation per eliminare l'ambiguità, poiché le binding annotation sono cablate nel sorgente in corrispondenza al punto di iniezione, e noi vogliamo che il manager sia in grado di decidere a deployment time!"
+#: injection.xml:375
+#, fuzzy, no-c-format
+msgid ""
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
+msgstr ""
+"I client di un Web Bean che sono stati iniettati solitamente non hanno un "
+"riferimento diretto all'istanza del Web Bean."
 
-# precedenza=priorità qui e altrove?
-# cosicché o così che
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
-msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
-msgstr "La soluzione a questo problema sta nel fatto che ciascun tipo di deploy ha una diversa <emphasis>precedenza</emphasis>. La precedenza dei tipi di deploy è determinata dall'ordine con cui appaiono in <literal>web-beans.xml</literal>. Nel nostro esempio, <literal>@Mock</literal> compare dopo <literal>@Production</literal> cosicché ha una precedenza più alta."
+#: injection.xml:380
+#, fuzzy, no-c-format
+msgid ""
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"Immaginiamo che un Web Bean associato allo scope applicazione tenga un "
+"riferimento diretto a un Web Bean associato allo scope richiesta. Il Web "
+"Bean con scope applicazione è condiviso fra molte diverse richieste. "
+"Comunque, ciascuna richiesta dovrebbe vedere una diversa istanza del Web "
+"bean con scope richiesta!"
 
+# con scope sessione andrebbe meglio tardotto con->che sta in sessione (e zosì per tutte le situazioni analoghe?)?
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
-msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
-msgstr "Ogni volta che il manager scopre che più di un Web Bean potrebbe soddisfare il contratto (interfaccia più binding annotation) specificato da un punto di iniezione, passa a considerare la precedenza relativa dei Web Bean. Se uno ha una precedenza superiore a quella degli altri, questo viene scelto per essere iniettato. Così, nel nostro esempio, il manager Web Bean inietterà <literal>MockPaymentProcessor</literal> quando viene eseguito nel nostro ambiente di test (che è esattamente ciò che vogliamo)."
+#: injection.xml:386
+#, fuzzy, no-c-format
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"Immaginiamo ora che un Web Bean con scope sessione abbia un riferimento "
+"diretto a un Web Bean con scope applicazione . Ogni tanto, il contesto della "
+"sessione  viene serializzato su disco in modo da usare la memoria in modo "
+"più efficiente. Comunque,  l'istanza del Web Bean con scope applicazione non "
+"dovrebbe essere serializzato insieme al Web Bean con scope sessione!"
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
-msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
-msgstr "E' interessante confrontare questa funzionalità con le architetture di gestone oggi in voga. Vari container \"lightweight\" permettono il deploy condizionale di classi che esistono nel classpath, ma le classi che devono essere installate devono essere elencate esplicitamente ed individualmente nel codice di configurazione o in qualche file XML di configurazione. Web Beans supporta certo la definizione e configurazione dei Web Bean attraverso l'XML, ma nei casi comuni in cui non si renda necessaria una configurazione complicata, i tipi di deploy permettono di abilitare un insieme completo di Web Bean con una sola linea di XML. Al contempo, uno sviluppatore che esamini il codice, potrà facilmente identificare gli scenari di deploy in cui il Web Bean sarà utilizzato."
+#: injection.xml:393
+#, fuzzy, no-c-format
+msgid ""
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"Quindi, a meno che un Web Bean abbia lo scope predefinito "
+"<literal>@Dependent</literal>, il manager Web Bean deve rendere indiretti "
+"tutti i riferimenti al Web Bean iniettati attraverso un oggetto proxy. "
+"Questo <emphasis>client proxy</emphasis> ha la responsabilità di assicurare "
+"che l'istanza del Web Bean su cui viene invocato un metodo sia l'istanza "
+"associata al contesto corrente. Il client proxy, inoltre, permette ai Web "
+"Bean associati a contesti come quello di sessione di essere salvati su disco "
+"senza serializzare ricorsivamente altri Web Beans che siano stati iniettati."
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "Esempio dei tipi di deploy "
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "I tipi di deploy sono utili in molte situazioni. Di seguito riportiamo alcuni esempi:"
+#: injection.xml:401
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
+"Purtroppo, a causa di limitazioni del linguaggio Java, alcuni tipi Java non "
+"possono essere gestiti tramite un proxy dal manager Web Bean. Quindi, il "
+"manager Web Bean lancia un'eccezione "
+"<literal>UnproxyableDependencyException</literal> se il tipo di un punto di "
+"iniezione non può essere gestito tramite proxy."
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
-msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
-msgstr "i tipi di deploy individuati da <literal>@Mock</literal> e <literal>@Staging</literal> per i test"
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr ""
+"I seguenti tipi Java non possono essere gestiti tramite proxy dal manager "
+"Web Bean:"
 
 #. Tag: para
-#: injection.xml:294
-#, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "il tipo di deploy <literal>@AustralianTaxLaw</literal> per i Web Bean di un'applicazione specifica"
+#: injection.xml:411
+#, fuzzy, no-c-format
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr ""
+"classi che non abbiano costruttori non privati (non-private) senza "
+"parametri, e"
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
-msgstr "i tipi di deploy <literal>@SeamFramework</literal> e <literal>@Guice</literal> per framework di terze parti basati su Web Beans"
+msgid ""
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"classi dichiarate <literal>final</literal> o che abbiano un metodo "
+"<literal>final</literal>,"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
-msgstr "<literal>@Standard</literal> per Web Bean standard definiti dalle specifiche di Web Beans"
+msgid "arrays and primitive types."
+msgstr "array e tipi primitivi."
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "Sono sicuro che siate in grado di escogitare altre applicazioni..."
+#: injection.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"Di solito è molto facile rimediare a una "
+"<literal>UnproxyableDependencyException</literal>. Si deve semplicimente "
+"aggiungere un costruttore privo di parametri alla classe iniettata, "
+"introdurre un'interfaccia, o modificare lo scope del Web Bean iniettato a "
+"<literal>@Dependent</literal>."
 
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "Risoluzione di dipendenze non soddisfatte"
-
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:430
 #, no-c-format
-msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
-msgstr "L'algoritmo di risoluzione sicura rispetto ai tipi fallisce quando, dopo avere considerato le binding annotation e i tipi di deploy di tutti i Web Bean che implementano il tipo di un punto di iniezione, il manager Web Bean non è in grado di identificare esattamente uno ed un solo Web Bean da iniettare."
+msgid ""
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:437
 #, no-c-format
-msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "Di solito è semplice porre rimedio a un'eccezione <literal>UnsatisfiedDependencyException</literal> o <literal>AmbiguousDependencyException</literal>."
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:442
 #, no-c-format
-msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point &#151; or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
-msgstr "Per rimediare ad una <literal>UnsatisfiedDependencyException</literal>, si deve semplicemente fornire un Web Bean che implementi il tipo dell'API in uso e abbia gli stessi tipi di binding del punto di iniezione #151; o si deve abilitare il tipo di deploy di un Web Bean  che già implementa il tipo dell'API in uso e possiede i tipi di binding in esame."
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
 
-# tipo di binding o binding type (qui e altrove)?
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:448
 #, no-c-format
-msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
-msgstr "Per porre rimedio a una <literal>AmbiguousDependencyException</literal>, si deve introdurre un tipo di binding per distinguere tra le due implementazioni del tipo delle API, o si deve cambiare il tipo di deploy di una delle implementazione in modo che il manager Web Bean possa usare la precedenza dei tipi di deploy per scegliere fra di essi. Una <literal>AmbiguousDependencyException</literal> può verificarsi soltanto se due Web Bean condividono il tipo di binding e hanno esattamente lo stesso tipo di deploy."
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:335
-#, no-c-format
-msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
-msgstr "Vi è un ulteriore questione di cui occorre essere a conoscenza quando si usa la dependency injection in Web Beans."
-
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "Client proxy"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "Ottenere un riferimento a un Web Bean via codice"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
-msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
-msgstr "I client di un Web Bean che sono stati iniettati solitamente non hanno un riferimento diretto all'istanza del Web Bean."
+msgid ""
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
-msgstr "Immaginiamo che un Web Bean associato allo scope applicazione tenga un riferimento diretto a un Web Bean associato allo scope richiesta. Il Web Bean con scope applicazione è condiviso fra molte diverse richieste. Comunque, ciascuna richiesta dovrebbe vedere una diversa istanza del Web bean con scope richiesta!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
-# con scope sessione andrebbe meglio tardotto con->che sta in sessione (e zosì per tutte le situazioni analoghe?)?
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
-msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
-msgstr "Immaginiamo ora che un Web Bean con scope sessione abbia un riferimento diretto a un Web Bean con scope applicazione . Ogni tanto, il contesto della sessione  viene serializzato su disco in modo da usare la memoria in modo più efficiente. Comunque,  l'istanza del Web Bean con scope applicazione non dovrebbe essere serializzato insieme al Web Bean con scope sessione!"
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
-msgstr "Quindi, a meno che un Web Bean abbia lo scope predefinito <literal>@Dependent</literal>, il manager Web Bean deve rendere indiretti tutti i riferimenti al Web Bean iniettati attraverso un oggetto proxy. Questo <emphasis>client proxy</emphasis> ha la responsabilità di assicurare che l'istanza del Web Bean su cui viene invocato un metodo sia l'istanza associata al contesto corrente. Il client proxy, inoltre, permette ai Web Bean associati a contesti come quello di sessione di essere salvati su disco senza serializzare ricorsivamente altri Web Beans che siano stati iniettati."
+msgid "we would like to iterate over all beans of a certain type."
+msgstr ""
 
+# traduzione letterale: secondo me l'originale si capisce, ma non è proprio semanticamente corretto.
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
-msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
-msgstr "Purtroppo, a causa di limitazioni del linguaggio Java, alcuni tipi Java non possono essere gestiti tramite un proxy dal manager Web Bean. Quindi, il manager Web Bean lancia un'eccezione <literal>UnproxyableDependencyException</literal> se il tipo di un punto di iniezione non può essere gestito tramite proxy."
+#: injection.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"L'applicazione può ottenere un'istanza dell'interfaccia <literal>Manager</"
+"literal> attraverso iniezione:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "I seguenti tipi Java non possono essere gestiti tramite proxy dal manager Web Bean:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
-msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
-msgstr "classi dichiarate <literal>final</literal> o che abbiano un metodo <literal>final</literal>,"
+#: injection.xml:489
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"i tipi di deploy individuati da <literal>@Mock</literal> e "
+"<literal>@Staging</literal> per i test"
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "classi che non abbiano costruttori non privati (non-private) senza parametri, e"
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "array e tipi primitivi."
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
-msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
-msgstr "Di solito è molto facile rimediare a una <literal>UnproxyableDependencyException</literal>. Si deve semplicimente aggiungere un costruttore privo di parametri alla classe iniettata, introdurre un'interfaccia, o modificare lo scope del Web Bean iniettato a <literal>@Dependent</literal>."
+#: injection.xml:504
+#, fuzzy, no-c-format
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
+"Semplici Web Bean supportano soltanto le callback <literal>@PostConstruct</"
+"literal> e <literal>@PreDestroy</literal>."
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "Ottenere un riferimento a un Web Bean via codice"
-
-# traduzione letterale: secondo me l'originale si capisce, ma non è proprio semanticamente corretto.
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
-msgstr "L'applicazione può ottenere un'istanza dell'interfaccia <literal>Manager</literal> attraverso iniezione:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
-msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
-msgstr "L'oggetto <literal>Manager</literal> fornisce un insieme di metodi per ottenere l'istanza di un Web Bean via codice."
+msgid ""
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-msgstr "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
-msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
-msgstr "Le binding annotation possono essere specificate come sottoclassi della classe helper <literal>AnnotationLiteral</literal>, poiché è altrimenti difficile istanziare un tipo annotazione in Java."
+msgid ""
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
-msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to create a named subclass:"
-msgstr "Se il tipo di binding ha un membro annotazione, non è possibile utilizzare una sottoclasse anonima di <literal>AnnotationLiteral</literal> &#151; sarà invece necessario creare una sottoclasse non anonima:"
+msgid ""
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
-msgstr "Chiamare al ciclo di vita, <literal>@Resource</literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
-msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
-msgstr "I Web Beans di tipo enterprise supportano tutte le callback del ciclo di vita definite dalle specifiche EJB: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> e <literal>@PostActivate</literal>."
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
-msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
-msgstr "Semplici Web Bean supportano soltanto le callback <literal>@PostConstruct</literal> e <literal>@PreDestroy</literal>."
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
+msgstr ""
 
-# ->i<- Web Bean?
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
-msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
-msgstr "Sia i Web Bean semplici che quelli enterprise supportano l'uso di <literal>@Resource</literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal> per l'iniezione rispettivamente di risorse Java EE, di EJB e di contesti di persistenza JPA. I Web Bean semplici non supportano l'uso di <literal>@PersistenceContext(type=EXTENDED)</literal>."
+msgid ""
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
+msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
-msgstr "La callback <literal>@PostConstruct</literal> viene sempre eseguita dopo che tutte le dipendenze sono state iniettate."
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "L'oggetto <literal>InjectionPoint</literal>"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
-msgid "There are certain kinds of dependent objects &#151; Web Beans with scope <literal>@Dependent</literal> &#151; that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
-msgstr "Certi tipi di oggetti dipendenti &#151; Web Bean con scope <literal>@Dependent</literal> &#151; hanno bisogno di avere informazioni riguardo l'oggetto o il punto in cui sono iniettati per fare quello che devono. Per esempio:"
+#: injection.xml:558
+#, fuzzy, no-c-format
+msgid ""
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"Certi tipi di oggetti dipendenti &#151; Web Bean con scope "
+"<literal>@Dependent</literal> &#151; hanno bisogno di avere informazioni "
+"riguardo l'oggetto o il punto in cui sono iniettati per fare quello che "
+"devono. Per esempio:"
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
-msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
-msgstr "La categoria di log per un <literal>Logger</literal> dipende dalla classe dell'oggetto che lo contiene."
+msgid ""
+"The log category for a <literal>Logger</literal> depends upon the class of "
+"the object that owns it."
+msgstr ""
+"La categoria di log per un <literal>Logger</literal> dipende dalla classe "
+"dell'oggetto che lo contiene."
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
-msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
-msgstr "L'iniezione di un parametro o di un header HTTP dipende dal nome del parametro o dello header specificato nel punto di iniezione."
+msgid ""
+"Injection of a HTTP parameter or header value depends upon what parameter or "
+"header name was specified at the injection point."
+msgstr ""
+"L'iniezione di un parametro o di un header HTTP dipende dal nome del "
+"parametro o dello header specificato nel punto di iniezione."
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
-msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
-msgstr "L'iniezione del risultato di una espressione EL dipende dall'espressione specificata nel punto di iniezione."
+msgid ""
+"Injection of the result of an EL expression evaluation depends upon the "
+"expression that was specified at the injection point."
+msgstr ""
+"L'iniezione del risultato di una espressione EL dipende dall'espressione "
+"specificata nel punto di iniezione."
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
-msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
-msgstr "Un Web Bean con scope <literal>@Dependent</literal> può essere iniettato con un'istanza di <literal>InjectionPoint</literal> e accedere i metadati riguardanti il punto di iniezione cui appartiene."
+#: injection.xml:577
+#, fuzzy, no-c-format
+msgid ""
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
+"injection point to which it belongs."
+msgstr ""
+"Un Web Bean con scope <literal>@Dependent</literal> può essere iniettato con "
+"un'istanza di <literal>InjectionPoint</literal> e accedere i metadati "
+"riguardanti il punto di iniezione cui appartiene."
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
-msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
-msgstr "Vediamo un esempio. Il codice seguente è prolisso e vulnerabile a problemi di refactoring:"
+msgid ""
+"Let's look at an example. The following code is verbose, and vulnerable to "
+"refactoring problems:"
+msgstr ""
+"Vediamo un esempio. Il codice seguente è prolisso e vulnerabile a problemi "
+"di refactoring:"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
-msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
-msgstr "Questo piccolo e intelligente metodo produttore permette di iniettare un <literal>Logger</literal> JDK senza specificare esplicitamente la categoria di log:"
+msgid ""
+"This clever little producer method lets you inject a JDK <literal>Logger</"
+"literal> without explicitly specifying the log category:"
+msgstr ""
+"Questo piccolo e intelligente metodo produttore permette di iniettare un "
+"<literal>Logger</literal> JDK senza specificare esplicitamente la categoria "
+"di log:"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1032,31 +1356,36 @@
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "Ora è possibile scrivere:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
-msgstr "Non siete convinti? Eccovi un secondo esempio. Per iniettare parametri HTTP, è necessario definire un tipo di binding:"
+#: injection.xml:595
+#, fuzzy, no-c-format
+msgid ""
+"Not convinced? Then here's a second example. To inject HTTP parameters, we "
+"need to define a qualifier type:"
+msgstr ""
+"Non siete convinti? Eccovi un secondo esempio. Per iniettare parametri HTTP, "
+"è necessario definire un tipo di binding:"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1074,13 +1403,15 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
-msgstr "Potremmo usare questo tipo di binding in corrispondenza ai punti di iniezione in questo modo:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
+msgstr ""
+"Potremmo usare questo tipo di binding in corrispondenza ai punti di "
+"iniezione in questo modo:"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1090,20 +1421,21 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "Il seguente metodo produttore esegue il lavoro:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1112,26 +1444,37 @@
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
-msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
-msgstr "(Occorre notare che il membro <literal>value()</literal> dell'annotazione <literal>HttpParam</literal> viene ignorato dal manager Web Bean poiché è annotato con <literal>@NonBinding.</literal>)"
+#: injection.xml:608
+#, fuzzy, no-c-format
+msgid ""
+"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
+"literal> annotation is ignored by the container since it is annotated "
+"<literal>@NonBinding.</literal>)"
+msgstr ""
+"(Occorre notare che il membro <literal>value()</literal> dell'annotazione "
+"<literal>HttpParam</literal> viene ignorato dal manager Web Bean poiché è "
+"annotato con <literal>@NonBinding.</literal>)"
 
 # di sistema o precostituito ?
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
-msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
-msgstr "Il manager Web Bean fornisce un Web Bean di sistema che implementa l'interfaccia <literal>InjectionPoint</literal>:"
+#: injection.xml:611
+#, fuzzy, no-c-format
+msgid ""
+"The container provides a built-in bean that implements the "
+"<literal>InjectionPoint</literal> interface:"
+msgstr ""
+"Il manager Web Bean fornisce un Web Bean di sistema che implementa "
+"l'interfaccia <literal>InjectionPoint</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1150,3 +1493,584 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+# dependency injection va lascaita in inglese, non ricordo?
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr ""
+#~ "Web Beans supporta tre meccanismi primari per la dependency injection:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Iniezione dei parametri del costruttore"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "L'iniezione dei parametri del costruttore non è supportata per gli EJB, "
+#~ "poiché gli EJB sono istanziati dal container EJB, non dal manager Web "
+#~ "Bean."
+
+# il tipo di binding o il tipo del binding (very philosophica!!!=)?????
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "I parametri dei costruttori e dei metodi di inizializzazione non devono "
+#~ "essere annotati esplicitamente quando il tipo del binding è "
+#~ "<literal>@Current</literal>, quello predefinito. I campi iniettati, "
+#~ "comunque, <emphasis>devono</emphasis> specificare il tipo del binding, "
+#~ "anche quando il tipo del binding è quello predefinito. Se il campo non "
+#~ "specifica il tipo del binding, non verrà iniettato."
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "I metodi produttori supportano anche l'iniezione dei parametri:"
+
+# disposal=rilascio/clean up?????
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "Infine, i metodi observer (che vedremo in <xref linkend=\"events\"/>), i "
+#~ "metodi disposal e i metodi distruttori supportano tutti l'iniezione dei "
+#~ "parametri."
+
+# override=fare override?
+# deployment time???
+# regole di precednza?
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "permette ad un'implementazione della API di fare l'override di un'altra "
+#~ "implementazione della stessa API a deployment time, senza apportare "
+#~ "modifiche al client, usando <emphasis>la precedenza fra tipi di deploy "
+#~ "(deployment type precedence)</emphasis>."
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Indaghiamo come il manager di Web Beans individua un Web Bean da "
+#~ "iniettare."
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+# ????
+#~ msgid "Binding annotations with members"
+#~ msgstr "Annotazioni di binding con membri"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "Le binding annotation possono avere dei membri:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "Nel qual caso, il valore del membro è significativo:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "Combinazioni di binding annotation"
+
+# metodi produttori?
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "Binding annotation e metodi produttori"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "Anche i metodi produttori possono specificare binding annotation:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "Il tipo di binding predefinito"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beans definisce un tipo di binding <literal>@Current</literal> che è "
+#~ "il tipo di binding predefinito per ogni punto di iniezione o per ogni Web "
+#~ "Bean che non specifichi esplicitamente un tipo di binding."
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "Vi sono due circostanze comuni in cui è necessario specificare "
+#~ "esplicitamente l'annotazione <literal>@Current</literal>:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "su un campo, allo scopo di dichiararne l'iniezione con il tipo di binding "
+#~ "predefinito, and"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "su un Web Bean che ha un tipo di binding aggiuntivo rispetto al tipo di "
+#~ "binding predefinito."
+
+#~ msgid "Deployment types"
+#~ msgstr "Tipi di deploy"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "Tutti i Web Bean hanno un <emphasis>tipo di deployment (deployment type)</"
+#~ "emphasis>. Ogni tipo di deployment identifica un insieme di Web Bean che "
+#~ "dovrebbe essere installato in modo condizionale in corrispondenza ad "
+#~ "alcuni deploy del sistema."
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "Per esempio, potremmo definire un tipo di deploy denominato "
+#~ "<literal>@Mock</literal>, che identifichi i Web Bean da installare "
+#~ "soltanto quando il sistema è posto in esecuzione in un ambiente di test "
+#~ "integrato:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "Supponiamo di avere alcuni Web Bean che interagiscano con un sistema di "
+#~ "pagamenti esterno:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "Dal momento che questo Web Bean non specifica esplicitamente un tipo di "
+#~ "deploy, ha il tipo di deploy predefinito <literal>@Production</literal>."
+
+#  integration and unit testing=i test di unità/pacchetto e di integrazione?
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "Per le attività di test (d'unità o integrazione), il sistema esterno è "
+#~ "lento o non disponibile. Così sarebbe necessario creare un oggetto mock:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "Ma in che modo il manager Web Bean determina quale implementazione usare "
+#~ "con un particolare deploy?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "Abilitazione dei tipi di deploy"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beans definisce due tipi di deploy percostituiti: "
+#~ "<literal>@Production</literal> e <literal>@Standard</literal>. Di "
+#~ "default, sono abilitati soltanto i Web Bean con i tipi di deploy "
+#~ "precostituiti quando si procede al deploy del sistema. E' possibile "
+#~ "abilitare dei tipi di deploy aggiuntivi per un particolare deploy "
+#~ "elencandoli in <literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "Tornando al nostro esempio, quando si fa il deploy dei test di "
+#~ "integrazione, si vuole che tutti gli oggetti <literal>@Mock</literal> "
+#~ "vengano installati:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+# deployment time=al momento del deploy?
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "Ora il manager Web Bean identificherà ed installerà tutti i Web Bean "
+#~ "annotati con <literal>@Production</literal>, <literal>@Standard</literal> "
+#~ "o <literal>@Mock</literal> a deployment time."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "Il tipo di deploy <literal>@Standard</literal> è usato soltanto per dei "
+#~ "Web Bean speciali definiti nelle specifiche. Non è possibile utilizzarlo "
+#~ "per i propri Web Bean, e non è possibile disabilitarlo."
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "Il tipo di deploy <literal>@Production</literal> è quello predefinito per "
+#~ "i Web Bean che non dichiarano esplicitamente un tipo di deploy, e può "
+#~ "essere disabilitato."
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Precedenza del tipo di deploy"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "Se avete prestato attenzione, vi state probabilmente chiedendo come il "
+#~ "manager Web Bean decida quale implementazione scegliere &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> o "
+#~ "<literal>MockPaymentProcessor</literal> &#151; Si consideri cosa succede "
+#~ "quando il manager incontra questo punto di iniezione:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "Vi sono ora due Web Bean che soddisfano l'interfaccia di "
+#~ "<literal>PaymentProcessor</literal>. Naturalmente, non è possibile "
+#~ "utilizzare una binding annotation per eliminare l'ambiguità, poiché le "
+#~ "binding annotation sono cablate nel sorgente in corrispondenza al punto "
+#~ "di iniezione, e noi vogliamo che il manager sia in grado di decidere a "
+#~ "deployment time!"
+
+# precedenza=priorità qui e altrove?
+# cosicché o così che
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "La soluzione a questo problema sta nel fatto che ciascun tipo di deploy "
+#~ "ha una diversa <emphasis>precedenza</emphasis>. La precedenza dei tipi di "
+#~ "deploy è determinata dall'ordine con cui appaiono in <literal>web-beans."
+#~ "xml</literal>. Nel nostro esempio, <literal>@Mock</literal> compare dopo "
+#~ "<literal>@Production</literal> cosicché ha una precedenza più alta."
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "Ogni volta che il manager scopre che più di un Web Bean potrebbe "
+#~ "soddisfare il contratto (interfaccia più binding annotation) specificato "
+#~ "da un punto di iniezione, passa a considerare la precedenza relativa dei "
+#~ "Web Bean. Se uno ha una precedenza superiore a quella degli altri, questo "
+#~ "viene scelto per essere iniettato. Così, nel nostro esempio, il manager "
+#~ "Web Bean inietterà <literal>MockPaymentProcessor</literal> quando viene "
+#~ "eseguito nel nostro ambiente di test (che è esattamente ciò che vogliamo)."
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "E' interessante confrontare questa funzionalità con le architetture di "
+#~ "gestone oggi in voga. Vari container \"lightweight\" permettono il deploy "
+#~ "condizionale di classi che esistono nel classpath, ma le classi che "
+#~ "devono essere installate devono essere elencate esplicitamente ed "
+#~ "individualmente nel codice di configurazione o in qualche file XML di "
+#~ "configurazione. Web Beans supporta certo la definizione e configurazione "
+#~ "dei Web Bean attraverso l'XML, ma nei casi comuni in cui non si renda "
+#~ "necessaria una configurazione complicata, i tipi di deploy permettono di "
+#~ "abilitare un insieme completo di Web Bean con una sola linea di XML. Al "
+#~ "contempo, uno sviluppatore che esamini il codice, potrà facilmente "
+#~ "identificare gli scenari di deploy in cui il Web Bean sarà utilizzato."
+
+#~ msgid "Example deployment types"
+#~ msgstr "Esempio dei tipi di deploy "
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "I tipi di deploy sono utili in molte situazioni. Di seguito riportiamo "
+#~ "alcuni esempi:"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr ""
+#~ "il tipo di deploy <literal>@AustralianTaxLaw</literal> per i Web Bean di "
+#~ "un'applicazione specifica"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "i tipi di deploy <literal>@SeamFramework</literal> e <literal>@Guice</"
+#~ "literal> per framework di terze parti basati su Web Beans"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal> per Web Bean standard definiti dalle "
+#~ "specifiche di Web Beans"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "Sono sicuro che siate in grado di escogitare altre applicazioni..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "Di solito è semplice porre rimedio a un'eccezione "
+#~ "<literal>UnsatisfiedDependencyException</literal> o "
+#~ "<literal>AmbiguousDependencyException</literal>."
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "Per rimediare ad una <literal>UnsatisfiedDependencyException</literal>, "
+#~ "si deve semplicemente fornire un Web Bean che implementi il tipo dell'API "
+#~ "in uso e abbia gli stessi tipi di binding del punto di iniezione #151; o "
+#~ "si deve abilitare il tipo di deploy di un Web Bean  che già implementa il "
+#~ "tipo dell'API in uso e possiede i tipi di binding in esame."
+
+# tipo di binding o binding type (qui e altrove)?
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "Per porre rimedio a una <literal>AmbiguousDependencyException</literal>, "
+#~ "si deve introdurre un tipo di binding per distinguere tra le due "
+#~ "implementazioni del tipo delle API, o si deve cambiare il tipo di deploy "
+#~ "di una delle implementazione in modo che il manager Web Bean possa usare "
+#~ "la precedenza dei tipi di deploy per scegliere fra di essi. Una "
+#~ "<literal>AmbiguousDependencyException</literal> può verificarsi soltanto "
+#~ "se due Web Bean condividono il tipo di binding e hanno esattamente lo "
+#~ "stesso tipo di deploy."
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "L'oggetto <literal>Manager</literal> fornisce un insieme di metodi per "
+#~ "ottenere l'istanza di un Web Bean via codice."
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "Le binding annotation possono essere specificate come sottoclassi della "
+#~ "classe helper <literal>AnnotationLiteral</literal>, poiché è altrimenti "
+#~ "difficile istanziare un tipo annotazione in Java."
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "Se il tipo di binding ha un membro annotazione, non è possibile "
+#~ "utilizzare una sottoclasse anonima di <literal>AnnotationLiteral</"
+#~ "literal> &#151; sarà invece necessario creare una sottoclasse non anonima:"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "Chiamare al ciclo di vita, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> e <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "I Web Beans di tipo enterprise supportano tutte le callback del ciclo di "
+#~ "vita definite dalle specifiche EJB: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> e "
+#~ "<literal>@PostActivate</literal>."
+
+# ->i<- Web Bean?
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "Sia i Web Bean semplici che quelli enterprise supportano l'uso di "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> e "
+#~ "<literal>@PersistenceContext</literal> per l'iniezione rispettivamente di "
+#~ "risorse Java EE, di EJB e di contesti di persistenza JPA. I Web Bean "
+#~ "semplici non supportano l'uso di <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "La callback <literal>@PostConstruct</literal> viene sempre eseguita dopo "
+#~ "che tutte le dipendenze sono state iniettate."

Modified: doc/trunk/reference/it-IT/interceptors.po
===================================================================
--- doc/trunk/reference/it-IT/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-05 00:26+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,108 +14,159 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "Gli interceptor"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
-msgid "Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending the functionality in two directions:"
-msgstr "Web Beans riutilizza l'architettura base degli interceptor di EJB3.0, estendendo la funzionalità in due direzioni:"
+#: interceptors.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web Bean fornisce un più sofisticato approccio basato su annotazioni per "
+"associare interceptor ai Web Beans."
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "Qualsiasi Web Bean può avere interceptor, non solo i session bean."
+#: interceptors.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
+msgstr ""
+"\"La specifica Web Bean definisce due tipi di punti di intercettazione:"
 
 #. Tag: para
-#: interceptors.xml:14
+#: interceptors.xml:18
 #, no-c-format
-msgid "Web Beans features a more sophisticated annotation-based approach to binding interceptors to Web Beans."
-msgstr "Web Bean fornisce un più sofisticato approccio basato su annotazioni per associare interceptor ai Web Beans."
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
-msgstr "\"La specifica Web Bean definisce due tipi di punti di intercettazione:"
-
-#. Tag: para
-#: interceptors.xml:26
-#, no-c-format
 msgid "business method interception, and"
 msgstr "intercettazione del metodo di business, e"
 
 # lifecycle callback interception = ?
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "intercettazione della chiamata del ciclo di vita"
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
-msgid "A <emphasis>business method interceptor</emphasis> applies to invocations of methods of the Web Bean by clients of the Web Bean:"
-msgstr "Un <emphasis>interceptor di un metodo di business</emphasis> si applica alle invocazioni di metodi del Web Bean da parte di client del Web Bean:"
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr ""
+"\"La specifica Web Bean definisce due tipi di punti di intercettazione:"
 
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>business method interceptor</emphasis> applies to invocations of "
+"methods of the bean by clients of the bean:"
+msgstr ""
+"Un <emphasis>interceptor di un metodo di business</emphasis> si applica alle "
+"invocazioni di metodi del Web Bean da parte di client del Web Bean:"
+
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 # rivedere la frase
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
-msgid "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations of lifecycle callbacks by the container:"
-msgstr "Un <emphasis>interceptor di chiamata del ciclo di vita</emphasis> si applica alle invocazioni delle chiamate del ciclo di vita da parte del container:"
+msgid ""
+"A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
+"of lifecycle callbacks by the container:"
+msgstr ""
+"Un <emphasis>interceptor di chiamata del ciclo di vita</emphasis> si applica "
+"alle invocazioni delle chiamate del ciclo di vita da parte del container:"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
 #: interceptors.xml:43
 #, no-c-format
-msgid "An interceptor class may intercept both lifecycle callbacks and business methods."
-msgstr "Una classe interceptor può intercettare entrambi le chiamate del ciclo di vita ed i metodi di business."
+msgid ""
+"An interceptor class may intercept both lifecycle callbacks and business "
+"methods."
+msgstr ""
+"Una classe interceptor può intercettare entrambi le chiamate del ciclo di "
+"vita ed i metodi di business."
 
+# rivedere la frase
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"Un <emphasis>interceptor di chiamata del ciclo di vita</emphasis> si applica "
+"alle invocazioni delle chiamate del ciclo di vita da parte del container:"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "Interceptor bindings"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
-msgid "Suppose we want to declare that some of our Web Beans are transactional. The first thing we need is an <emphasis>interceptor binding annotation</emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "Si supponga di voler dichiarare transazionali alcuni Web Beans. La prima cosa necessaria è un'<emphasis>annotazione di interceptor binding</emphasis> per specificare esattamente quali Web Beans sono interessati:"
+#: interceptors.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"Si supponga di voler dichiarare transazionali alcuni Web Beans. La prima "
+"cosa necessaria è un'<emphasis>annotazione di interceptor binding</emphasis> "
+"per specificare esattamente quali Web Beans sono interessati:"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -126,13 +177,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
-msgid "Now we can easily specify that our <literal>ShoppingCart</literal> is a transactional object:"
-msgstr "Ora è facilmente possibile specificare che <literal>ShoppingCart</literal> è un oggetto transazionale:"
+msgid ""
+"Now we can easily specify that our <literal>ShoppingCart</literal> is a "
+"transactional object:"
+msgstr ""
+"Ora è facilmente possibile specificare che <literal>ShoppingCart</literal> è "
+"un oggetto transazionale:"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -142,17 +197,18 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
-msgstr "O se si preferisce, si può specificare che solo un metodo sia transazionale:"
+msgstr ""
+"O se si preferisce, si può specificare che solo un metodo sia transazionale:"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -160,47 +216,60 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "Implementare gli interceptor"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
-msgid "That's great, but somewhere along the line we're going to have to actually implement the interceptor that provides this transaction management aspect. All we need to do is create a standard EJB interceptor, and annotate it <literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "Bene, ma da qualche parte è necessario implementare l'interceptor che fornisce l'aspect di gestione della transazione. Occore quindi creare un interceptor EJB standard e annotarlo con <literal>@Interceptor</literal> e <literal>@Transactional</literal>.\""
+#: interceptors.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"That's great, but somewhere along the line we're going to have to actually "
+"implement the interceptor that provides this transaction management aspect. "
+"All we need to do is create a standard interceptor, and annotate it "
+"<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
+msgstr ""
+"Bene, ma da qualche parte è necessario implementare l'interceptor che "
+"fornisce l'aspect di gestione della transazione. Occore quindi creare un "
+"interceptor EJB standard e annotarlo con <literal>@Interceptor</literal> e "
+"<literal>@Transactional</literal>.\""
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid "All Web Beans interceptors are simple Web Beans, and can take advantage of dependency injection and contextual lifecycle management."
-msgstr "Tutti gli interceptor dei Web Beans sono Web Beans semplici e possono sfruttare la dependency injection e la gestione del ciclo di vita contestuale."
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -209,111 +278,142 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
-msgstr "Diverso interceptor possono usare lo stesso tipo di interceptor binding."
+msgstr ""
+"Diverso interceptor possono usare lo stesso tipo di interceptor binding."
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "Abilitare gli interceptor"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
-msgid "Finally, we need to <emphasis>enable</emphasis> our interceptor in <literal>web-beans.xml</literal>."
-msgstr "Infine occorre <emphasis>abilitare</emphasis> l'interceptor in <literal>web-beans.xml</literal>."
+msgid ""
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
-msgstr "Ma perché viene usato ancora XML, quando Web Beans non dovrebbe utilizzarlo?"
+msgstr ""
+"Ma perché viene usato ancora XML, quando Web Beans non dovrebbe utilizzarlo?"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "La dichiarazione XML risolve due problemi:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all the interceptors in our system, ensuring deterministic behavior, and"
-msgstr "Ci consente di specificare un ordinamento totale per tutti gli interceptor del sistema, assicurando un comportamente deterministico, e"
+msgid ""
+"it enables us to specify a total ordering for all the interceptors in our "
+"system, ensuring deterministic behavior, and"
+msgstr ""
+"Ci consente di specificare un ordinamento totale per tutti gli interceptor "
+"del sistema, assicurando un comportamente deterministico, e"
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
-msgstr "consente di abilitare o disabilitare le classi di interceptor a deployment time"
+msgstr ""
+"consente di abilitare o disabilitare le classi di interceptor a deployment "
+"time"
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
-msgid "For example, we could specify that our security interceptor runs before our <literal>TransactionInterceptor</literal>."
-msgstr "Per esempio è possibile specificare che l'interceptor di sicurezza venga eseguito prima di <literal>TransactionInterceptor</literal>.\""
+#: interceptors.xml:130
+#, fuzzy, no-c-format
+msgid ""
+"For example, we could specify that our security interceptor runs before our "
+"transaction interceptor."
+msgstr ""
+"Per esempio è possibile specificare che l'interceptor di sicurezza venga "
+"eseguito prima di <literal>TransactionInterceptor</literal>.\""
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "Oppure si può disattivarli entrambi dal proprio ambiente di test!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "Interceptor binding con membri"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
-msgid "Suppose we want to add some extra information to our <literal>@Transactional</literal> annotation:"
-msgstr "Si supponga di voler aggiungere qualche informazione extra all'annotazione  <literal>@Transactional</literal>:"
+msgid ""
+"Suppose we want to add some extra information to our "
+"<literal>@Transactional</literal> annotation:"
+msgstr ""
+"Si supponga di voler aggiungere qualche informazione extra all'annotazione  "
+"<literal>@Transactional</literal>:"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -324,56 +424,76 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
-msgid "Web Beans will use the value of <literal>requiresNew</literal> to choose between two different interceptors, <literal>TransactionInterceptor</literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beans utilizzerà il valore di <literal>requiresNew</literal> per scegliere tra due diversi interceptor, <literal>TransactionInterceptor</literal> e <literal>RequiresNewTransactionInterceptor</literal>."
+#: interceptors.xml:150
+#, fuzzy, no-c-format
+msgid ""
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beans utilizzerà il valore di <literal>requiresNew</literal> per "
+"scegliere tra due diversi interceptor, <literal>TransactionInterceptor</"
+"literal> e <literal>RequiresNewTransactionInterceptor</literal>."
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
-msgid "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like this:"
-msgstr "Ora è possibile usare <literal>RequiresNewTransactionInterceptor</literal> in questo modo:"
+msgid ""
+"Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
+"this:"
+msgstr ""
+"Ora è possibile usare <literal>RequiresNewTransactionInterceptor</literal> "
+"in questo modo:"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
-msgid "But what if we only have one interceptor and we want the manager to ignore the value of <literal>requiresNew</literal> when binding interceptors? We can use the <literal>@NonBinding</literal> annotation:"
-msgstr "Ma cosa succede se si ha solo un interceptor e si vuole che il manager ignori il valore di <literal>requiresNew</literal> quando si associa l'interceptor? Si può usare l'annotazione <literal>@NonBinding</literal>:"
+#: interceptors.xml:163
+#, fuzzy, no-c-format
+msgid ""
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"Ma cosa succede se si ha solo un interceptor e si vuole che il manager "
+"ignori il valore di <literal>requiresNew</literal> quando si associa "
+"l'interceptor? Si può usare l'annotazione <literal>@NonBinding</literal>:"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -384,19 +504,28 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "Annotazioni per interceptor binding multipli"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
-msgid "Usually we use combinations of interceptor bindings types to bind multiple interceptors to a Web Bean. For example, the following declaration would be used to bind <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr "Solitamente si usano combinazioni di tipi di interceptor binding per associare pià interceptor ad un Web Bean. Per esempio, la seguente dichiarazione verrebbe impiegata per associare <literal>TransactionInterceptor</literal> e <literal>SecurityInterceptor</literal> allo stesso Web Bean:"
+#: interceptors.xml:176
+#, fuzzy, no-c-format
+msgid ""
+"Usually we use combinations of interceptor bindings types to bind multiple "
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
+msgstr ""
+"Solitamente si usano combinazioni di tipi di interceptor binding per "
+"associare pià interceptor ad un Web Bean. Per esempio, la seguente "
+"dichiarazione verrebbe impiegata per associare "
+"<literal>TransactionInterceptor</literal> e <literal>SecurityInterceptor</"
+"literal> allo stesso Web Bean:"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -406,13 +535,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
-msgid "However, in very complex cases, an interceptor itself may specify some combination of interceptor binding types:"
-msgstr "Comunque in casi molto complessi un interceptor da solo potrebbe specificare alcune combinazioni di tipi di interceptor binding:"
+msgid ""
+"However, in very complex cases, an interceptor itself may specify some "
+"combination of interceptor binding types:"
+msgstr ""
+"Comunque in casi molto complessi un interceptor da solo potrebbe specificare "
+"alcune combinazioni di tipi di interceptor binding:"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -422,17 +555,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
-msgid "Then this interceptor could be bound to the <literal>checkout()</literal> method using any one of the following combinations:"
-msgstr "Allora quest'interceptor potrebbe venire associato al metodo <literal>checkout()</literal> usando una delle seguenti combinazioni:"
+msgid ""
+"Then this interceptor could be bound to the <literal>checkout()</literal> "
+"method using any one of the following combinations:"
+msgstr ""
+"Allora quest'interceptor potrebbe venire associato al metodo "
+"<literal>checkout()</literal> usando una delle seguenti combinazioni:"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -440,12 +577,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -454,12 +591,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -468,12 +605,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -482,35 +619,53 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "Ereditarietà del tipo di interceptor binding"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
-msgid "One limitation of the Java language support for annotations is the lack of annotation inheritance. Really, annotations should have reuse built in, to allow this kind of thing to work:"
-msgstr "Una limitazione del supporto del linguaggio Java per le annotazioni è la mancanza di ereditarietà delle annotazioni. In verità le annotazioni dovrebbero avere il riutilizzo predefinito per consentire che questo avvenga:"
+msgid ""
+"One limitation of the Java language support for annotations is the lack of "
+"annotation inheritance. Really, annotations should have reuse built in, to "
+"allow this kind of thing to work:"
+msgstr ""
+"Una limitazione del supporto del linguaggio Java per le annotazioni è la "
+"mancanza di ereditarietà delle annotazioni. In verità le annotazioni "
+"dovrebbero avere il riutilizzo predefinito per consentire che questo avvenga:"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
-msgid "Well, fortunately, Web Beans works around this missing feature of Java. We may annotate one interceptor binding type with other interceptor binding types. The interceptor bindings are transitive &#151; any Web Bean with the first interceptor binding inherits the interceptor bindings declared as meta-annotations."
-msgstr "Fortunatamente Web Beans provvede a questa mancanza di Java. E' possibile annotare un tipo di interceptor binding con altri tipi di interceptor binding. Gli interceptor binding sono transitivi &#151; qualsiasi Web Bean con il primo interceptor binding eredita gli interceptor binding dichiarati come meta-annotazioni."
+#: interceptors.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"Fortunatamente Web Beans provvede a questa mancanza di Java. E' possibile "
+"annotare un tipo di interceptor binding con altri tipi di interceptor "
+"binding. Gli interceptor binding sono transitivi &#151; qualsiasi Web Bean "
+"con il primo interceptor binding eredita gli interceptor binding dichiarati "
+"come meta-annotazioni."
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -522,64 +677,133 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
-msgid "Any Web Bean annotated <literal>@Action</literal> will be bound to both <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it exists.)"
-msgstr "Ogni Web Bean annotato con <literal>@Action</literal> verrà legato ad entrambi <literal>TransactionInterceptor</literal> e <literal>SecurityInterceptor</literal>. (E anche <literal>TransactionalSecureInterceptor</literal>, se questo esiste.)"
+#: interceptors.xml:225
+#, fuzzy, no-c-format
+msgid ""
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
+"<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
+"literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
+"exists.)"
+msgstr ""
+"Ogni Web Bean annotato con <literal>@Action</literal> verrà legato ad "
+"entrambi <literal>TransactionInterceptor</literal> e "
+"<literal>SecurityInterceptor</literal>. (E anche "
+"<literal>TransactionalSecureInterceptor</literal>, se questo esiste.)"
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "Uso di <literal>@Interceptors</literal>"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
-msgid "The <literal>@Interceptors</literal> annotation defined by the EJB specification is supported for both enterprise and simple Web Beans, for example:"
-msgstr "L'annotazione <literal>@Interceptors</literal> definita dalla specifica EJB è supportata per entrambi i Web Bean semplici ed enterprise, per esempio:"
+#: interceptors.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"L'annotazione <literal>@Interceptors</literal> definita dalla specifica EJB "
+"è supportata per entrambi i Web Bean semplici ed enterprise, per esempio:"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
 "    public void checkout() { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "Comunque, quest'approccio soffre dei seguenti difetti:"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
-msgstr "l'implementazione degli interceptor è codificata nel codice di business,"
+msgstr ""
+"l'implementazione degli interceptor è codificata nel codice di business,"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
-msgstr "gli interceptor possono non essere facilmente disabilitati a deployment time, e"
+msgstr ""
+"gli interceptor possono non essere facilmente disabilitati a deployment "
+"time, e"
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
-msgid "the interceptor ordering is non-global &#151; it is determined by the order in which interceptors are listed at the class level."
-msgstr "l'ordinamento degli interceptor è non-globale &#151; è determinata dall'ordine in cui gli interceptor sono elencati al livello di classe."
+#: interceptors.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"l'ordinamento degli interceptor è non-globale &#151; è determinata "
+"dall'ordine in cui gli interceptor sono elencati al livello di classe."
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr "Quindi si raccomanda l'uso di interceptor binding di stile Web Beans."
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans riutilizza l'architettura base degli interceptor di EJB3.0, "
+#~ "estendendo la funzionalità in due direzioni:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr "Qualsiasi Web Bean può avere interceptor, non solo i session bean."
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "Tutti gli interceptor dei Web Beans sono Web Beans semplici e possono "
+#~ "sfruttare la dependency injection e la gestione del ciclo di vita "
+#~ "contestuale."
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Infine occorre <emphasis>abilitare</emphasis> l'interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "Oppure si può disattivarli entrambi dal proprio ambiente di test!"

Modified: doc/trunk/reference/it-IT/intro.po
===================================================================
--- doc/trunk/reference/it-IT/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-25 12:11+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,40 +16,126 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Iniziare con Web Beans"
+msgid "Introduction"
+msgstr ""
 
 # Rendere la frase "wondering what kinds of hoops the Web Beans specification will make you jump through!" più italiana.
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
-msgid "So you're already keen to get started writing your first Web Bean? Or perhaps you're skeptical, wondering what kinds of hoops the Web Beans specification will make you jump through! The good news is that you've probably already written and used hundreds, perhaps thousands of Web Beans. You might not even remember the first Web Bean you wrote."
-msgstr "Non vedi l'ora di iniziare a scrivere il primo Web Beans? O forse sei un pò scettico e ti domandi quali virtuosismi ti farà fare la specifica Web Beans! La buona notizia è che probabilmente hai già scritto e usato centinaia, forse migliaia di Web Beans. Potresti addirittura non ricordare il primo Web Bean scritto."
+#, fuzzy, no-c-format
+msgid ""
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"Non vedi l'ora di iniziare a scrivere il primo Web Beans? O forse sei un pò "
+"scettico e ti domandi quali virtuosismi ti farà fare la specifica Web Beans! "
+"La buona notizia è che probabilmente hai già scritto e usato centinaia, "
+"forse migliaia di Web Beans. Potresti addirittura non ricordare il primo Web "
+"Bean scritto."
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "Il primo Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "Cosa è un Web Bean?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
-msgid "With certain, very special exceptions, every Java class with a constructor that accepts no parameters is a Web Bean. That includes every JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the JavaBeans and EJBs you've been writing every day have not been able to take advantage of the new services defined by the Web Beans specification, but you'll be able to use every one of them as Web Beans &#151; injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them &#151; without touching your existing code."
-msgstr "Con alcune eccezioni molto particolari, ogni classe Java con un costruttore che non accetta parametri è un Web Bean. Questo include ogni JavaBean. Inoltre, ogni session bean di stile EJB3 è un Web Bean. Sicuramente i JavaBean e gli EJB3 che si sono sempre scritti non erano in grado di sfruttare i nuovi servizi definiti dalla specifica Web Beans, ma si sarà presto in grado di usare ciascuno di essi come Web Bean &#151; iniettandoli in altri Web Beans, configurandoli tramite strumenti di configurazione XML Web Bean, e perfino aggiungendo a loro interceptor e decoratori &#151; senza toccare il codice esistente."
+msgid ""
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
-msgid "Suppose that we have two existing Java classes, that we've been using for years in various applications. The first class parses a string into a list of sentences:"
-msgstr "Si supponga di avere due classi Java esistenti, usate da anni in varie applicazioni. La prima classe esegue il parsing di una stringa in una lista di frasi:"
+msgid ""
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
+#. Tag: para
+#: intro.xml:27
 #, no-c-format
 msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
+msgstr ""
+"Si supponga di avere due classi Java esistenti, usate da anni in varie "
+"applicazioni. La prima classe esegue il parsing di una stringa in una lista "
+"di frasi:"
+
+#. Tag: programlisting
+#: intro.xml:68
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -57,18 +143,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
-msgid "The second existing class is a stateless session bean front-end for an external system that is able to translate sentences from one language to another:"
-msgstr "La seconda classe è un session bean stateless front-end per un sistema esterno capace di tradurre le frasi da una lingua ad un altra:"
+msgid ""
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
+msgstr ""
+"La seconda classe è un session bean stateless front-end per un sistema "
+"esterno capace di tradurre le frasi da una lingua ad un altra:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -77,18 +168,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "Dove <literal>Translator</literal> è l'interfaccia locale:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -97,34 +188,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
-msgid "Unfortunately, we don't have a preexisting class that translates whole text documents. So let's write a Web Bean that does this job:"
-msgstr "Sfortunatamente non ci sono classi preesistenti che traducano l'intero testo dei documenti. Quindi occorre scrivere un Web Bean che faccia questo lavoro:"
+#: intro.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"Sfortunatamente non ci sono classi preesistenti che traducano l'intero testo "
+"dei documenti. Quindi occorre scrivere un Web Bean che faccia questo lavoro:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -133,7 +227,8 @@
 "    private Translator sentenceTranslator;\n"
 "    \n"
 "    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+"    TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
 "        this.sentenceParser = sentenceParser;\n"
 "        this.sentenceTranslator = sentenceTranslator;\n"
 "    }\n"
@@ -149,790 +244,1020 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid "We may obtain an instance of <literal>TextTranslator</literal> by injecting it into a Web Bean, Servlet or EJB:"
-msgstr "Si può ottenere un'istanza di <literal>TextTranslator</literal> iniettandolo in un Web Bean, Servlet o EJB:"
+#: intro.xml:87
+#, fuzzy, no-c-format
+msgid ""
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
+msgstr ""
+"Ma <literal>TextTranslator</literal> non ha un costruttore con nessun "
+"parametro! E' ancora un Web Bean? Una classe che non ha un costruttore senza "
+"parametri può essere un Web Bean se il suo costruttore è annotato con "
+"<literal>@Initializer</literal>."
 
-#. Tag: programlisting
-#: intro.xml:49
+#. Tag: para
+#: intro.xml:93
+#, fuzzy, no-c-format
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
+msgstr ""
+"Come hai indovinato, l'annotazione <literal>@Initializer</literal> ha "
+"qualcosa che fare con la dependency injection! <literal>@Initializer</"
+"literal> può essere applicato ad un costruttore od un metodo di un Web Bean, "
+"e dice al manager Web Bean di chiamare quel costruttore o metodo quando si "
+"istanzia il Web Bean. Il manager Web Bean inietterà altri Web Bean nei "
+"parametri del costruttore o del metodo."
+
+#. Tag: para
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:107
 #, no-c-format
-msgid "Alternatively, we may obtain an instance by directly calling a method of the Web Bean manager:"
-msgstr "In alternativa si può ottenere un'istanza chiamando direttamente un metodo del manager Web Bean:"
+msgid ""
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
+msgstr ""
 
 #. Tag: programlisting
-#: intro.xml:54
+#: intro.xml:116
 #, no-c-format
-msgid "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-msgstr "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
+msgid ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid "But wait: <literal>TextTranslator</literal> does not have a constructor with no parameters! Is it still a Web Bean? Well, a class that does not have a constructor with no parameters can still be a Web Bean if it has a constructor annotated <literal>@Initializer</literal>."
-msgstr "Ma <literal>TextTranslator</literal> non ha un costruttore con nessun parametro! E' ancora un Web Bean? Una classe che non ha un costruttore senza parametri può essere un Web Bean se il suo costruttore è annotato con <literal>@Initializer</literal>."
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "Dove <literal>Translator</literal> è l'interfaccia locale:"
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:127
 #, no-c-format
-msgid "As you've guessed, the <literal>@Initializer</literal> annotation has something to do with dependency injection! <literal>@Initializer</literal> may be applied to a constructor or method of a Web Bean, and tells the Web Bean manager to call that constructor or method when instantiating the Web Bean. The Web Bean manager will inject other Web Beans to the parameters of the constructor or method."
-msgstr "Come hai indovinato, l'annotazione <literal>@Initializer</literal> ha qualcosa che fare con la dependency injection! <literal>@Initializer</literal> può essere applicato ad un costruttore od un metodo di un Web Bean, e dice al manager Web Bean di chiamare quel costruttore o metodo quando si istanzia il Web Bean. Il manager Web Bean inietterà altri Web Bean nei parametri del costruttore o del metodo."
+msgid ""
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:68
-#, no-c-format
-msgid "At system initialization time, the Web Bean manager must validate that exactly one Web Bean exists which satisfies each injection point. In our example, if no implementation of <literal>Translator</literal> available &#151; if the <literal>SentenceTranslator</literal> EJB was not deployed &#151; the Web Bean manager would throw an <literal>UnsatisfiedDependencyException</literal>. If more than one implementation of <literal>Translator</literal> was available, the Web Bean manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "In fase di inizializzazione del sistema, il manager Web Bean deve convalidare che esattamente un solo Web Bean esista e soddisfi ciascun punto di iniezione. Nell'esempio, se nessuna implementazione di <literal>Translator</literal> fosse disponibile &#151; se l'EJB <literal>SentenceTranslator</literal> non venisse deployato &#151; il manager Web Bean lancerebbe una <literal>UnsatisfiedDependencyException</literal>. Se più di un'implementazione di <literal>Translator</literal> fosse disponibile, il manager Web Bean lancerebbe una <literal>AmbiguousDependencyException</literal>."
+#: intro.xml:135
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"Si può ottenere un'istanza di <literal>TextTranslator</literal> iniettandolo "
+"in un Web Bean, Servlet o EJB:"
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "Cosa è un Web Bean?"
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:142
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "Ma cosa è <emphasis>esattamente</emphasis> un Web Bean?"
+msgid ""
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid "A Web Bean is an application class that contains business logic. A Web Bean may be called directly from Java code, or it may be invoked via Unified EL. A Web Bean may access transactional resources. Dependencies between Web Beans are managed automatically by the Web Bean manager. Most Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "Un Web Bean è una classe di un'applicazione che contiene della logica di business. Può essere chiamato direttamente da codice Java, o può essere invocato via Unified EL. Un Web Bean può accedere a risorse transazionali. Le dipendenze tra Web Beans sono gestite automaticamente dal manager Web Bean. La maggior parte dei Web Beans sono <emphasis>stateful</emphasis> e <emphasis>contestuali</emphasis>. Il ciclo di vita di un Web Bean è sempre gestito da un manager Web Bean."
+#: intro.xml:148
+#, fuzzy, no-c-format
+msgid ""
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"In fase di inizializzazione del sistema, il manager Web Bean deve "
+"convalidare che esattamente un solo Web Bean esista e soddisfi ciascun punto "
+"di iniezione. Nell'esempio, se nessuna implementazione di "
+"<literal>Translator</literal> fosse disponibile &#151; se l'EJB "
+"<literal>SentenceTranslator</literal> non venisse deployato &#151; il "
+"manager Web Bean lancerebbe una <literal>UnsatisfiedDependencyException</"
+"literal>. Se più di un'implementazione di <literal>Translator</literal> "
+"fosse disponibile, il manager Web Bean lancerebbe una "
+"<literal>AmbiguousDependencyException</literal>."
 
 #. Tag: para
-#: intro.xml:91
+#: intro.xml:156
 #, no-c-format
-msgid "Let's back up a second. What does it really mean to be \"contextual\"? Since Web Beans may be stateful, it matters <emphasis>which</emphasis> bean instance I have. Unlike a stateless component model (for example, stateless session beans) or a singleton component model (such as servlets, or singleton beans), different clients of a Web Bean see the Web Bean in different states. The client-visible state depends upon which instance of the Web Bean the client has a reference to."
-msgstr "Torniamo indietro un attimo. Cosa significa veramente essere \"contestuale\"? Poiché Web Beans può essere stateful, è importante <emphasis>quale</emphasis> istanza di bean si ha. Diversamente da un modello a componenti stateless (per esempio, i session bean stateless) o un modello a componenti singleton (come i servlet o i bean singleton) i client di un Web Bean vedono il Web Bean in stati differenti. Lo stato del client visibile dipende dall'istanza del Web Bean alla quale il client ha il riferimento."
+msgid ""
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
+msgstr ""
 
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid "However, like a stateless or singleton model, but <emphasis>unlike</emphasis> stateful session beans, the client does not control the lifecycle of the instance by explicitly creating and destroying it. Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "Comunque, in modo simile ad un modello stateless o singleton, ma <emphasis>non come</emphasis> i session bean stateful, il client non ha il controllo sul ciclo di vita dell'istanza, creandola e distruggendola esplicitamente. Invece, lo <emphasis>scope</emphasis> del Web Bean determina:"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Iniziare con Web Beans"
 
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "il ciclo di vita di ogni istanza del Web Bean e"
+#~ msgid "Your first Web Bean"
+#~ msgstr "Il primo Web Bean"
 
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "quali client condividono una referenza con una particolare istanza del Web Bean."
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "Con alcune eccezioni molto particolari, ogni classe Java con un "
+#~ "costruttore che non accetta parametri è un Web Bean. Questo include ogni "
+#~ "JavaBean. Inoltre, ogni session bean di stile EJB3 è un Web Bean. "
+#~ "Sicuramente i JavaBean e gli EJB3 che si sono sempre scritti non erano in "
+#~ "grado di sfruttare i nuovi servizi definiti dalla specifica Web Beans, ma "
+#~ "si sarà presto in grado di usare ciascuno di essi come Web Bean &#151; "
+#~ "iniettandoli in altri Web Beans, configurandoli tramite strumenti di "
+#~ "configurazione XML Web Bean, e perfino aggiungendo a loro interceptor e "
+#~ "decoratori &#151; senza toccare il codice esistente."
 
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid "For a given thread in a Web Beans application, there may be an <emphasis>active context</emphasis> associated with the scope of the Web Bean. This context may be unique to the thread (for example, if the Web Bean is request scoped), or it may be shared with certain other threads (for example, if the Web Bean is session scoped) or even all other threads (if it is application scoped)."
-msgstr "Per un dato thread in un'applicazione Web Beans, ci può essere un <emphasis>contesto attivo</emphasis> associato allo scope del Web Bean. Questo contesto può essere univoco nel thread (per esempio, se il Web Bean è con scope di richiesta), o può essere condiviso con alcuni altri thread (per esempio, se il Web Bean è con scope di sessione) od anche tutti gli altri thread (se è scope di applicazione). "
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "In alternativa si può ottenere un'istanza chiamando direttamente un "
+#~ "metodo del manager Web Bean:"
 
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid "Clients (for example, other Web Beans) executing in the same context will see the same instance of the Web Bean. But clients in a different context will see a different instance."
-msgstr "I client (per esempio, altri Web Beans) che sono in esecuzione nello stesso contesto vedranno la stessa istanza del Web Bean. Ma i client in un contesto diverso vedranno un istanza diversa."
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid "One great advantage of the contextual model is that it allows stateful Web Beans to be treated like services! The client need not concern itself with managing the lifecycle of the Web Bean it is using, <emphasis>nor does it even need to know what that lifecyle is.</emphasis> Web Beans interact by passing messages, and the Web Bean implementations define the lifecycle of their own state. The Web Beans are loosely coupled because:"
-msgstr "Un grande vantaggio del modello contestuale è che consente ai Web Beans stateful di essere trattati come servizi! Il client non deve preoccuparsi di gestire il ciclo di vita del Web Bean che sta utilizzando, <emphasis>e neppure deve sapere quale sia il ciclo di vita.</emphasis> Web Beans interagisce passando i messaggi, e le implementazioni Web Bean definiscono il ciclo di vita del proprio stato. I Web Beans sono debolmente disaccoppiati (loosely coupled) poiché:"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "Ma cosa è <emphasis>esattamente</emphasis> un Web Bean?"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "interagiscono tramite delle API pubblica ben-definita"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Un Web Bean è una classe di un'applicazione che contiene della logica di "
+#~ "business. Può essere chiamato direttamente da codice Java, o può essere "
+#~ "invocato via Unified EL. Un Web Bean può accedere a risorse "
+#~ "transazionali. Le dipendenze tra Web Beans sono gestite automaticamente "
+#~ "dal manager Web Bean. La maggior parte dei Web Beans sono "
+#~ "<emphasis>stateful</emphasis> e <emphasis>contestuali</emphasis>. Il "
+#~ "ciclo di vita di un Web Bean è sempre gestito da un manager Web Bean."
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "il loro ciclo di vita è completamente disaccoppiato"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "Torniamo indietro un attimo. Cosa significa veramente essere \"contestuale"
+#~ "\"? Poiché Web Beans può essere stateful, è importante <emphasis>quale</"
+#~ "emphasis> istanza di bean si ha. Diversamente da un modello a componenti "
+#~ "stateless (per esempio, i session bean stateless) o un modello a "
+#~ "componenti singleton (come i servlet o i bean singleton) i client di un "
+#~ "Web Bean vedono il Web Bean in stati differenti. Lo stato del client "
+#~ "visibile dipende dall'istanza del Web Bean alla quale il client ha il "
+#~ "riferimento."
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid "We can replace one Web Bean with a different Web Bean that implements the same API and has a different lifecycle (a different scope) without affecting the other Web Bean implementation. In fact, Web Beans defines a sophisticated facility for overriding Web Bean implementations at deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "Si può sostituire un Web Bean con un diverso Web Bean che implementa la stessa API ed ha un diverso ciclo di vita (un diverso scope) senza alterare l'implementazione dell'altro Web Bean. Infatti Web Beans definisce un meccanismo sofisticato per fare l'override delle implementazioni Web Bean al momento del deploy, come visto in <xref linkend=\"deploymenttypes\"/>."
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "Comunque, in modo simile ad un modello stateless o singleton, ma "
+#~ "<emphasis>non come</emphasis> i session bean stateful, il client non ha "
+#~ "il controllo sul ciclo di vita dell'istanza, creandola e distruggendola "
+#~ "esplicitamente. Invece, lo <emphasis>scope</emphasis> del Web Bean "
+#~ "determina:"
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid "Note that not all clients of a Web Bean are Web Beans. Other objects such as Servlets or Message-Driven Beans &#151; which are by nature not injectable, contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "Si noti che non tutti i client dei un Web Bean sono Web Bean. Altri oggetti come Servlet o Message-Driven Beans &#151; che sono per natura non iniettabili, oggetti contestuali &#151; possono pure ottenere riferimenti a Web Bean tramite iniezione."
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "il ciclo di vita di ogni istanza del Web Bean e"
 
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr ""
+#~ "quali client condividono una referenza con una particolare istanza del "
+#~ "Web Bean."
+
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Per un dato thread in un'applicazione Web Beans, ci può essere un "
+#~ "<emphasis>contesto attivo</emphasis> associato allo scope del Web Bean. "
+#~ "Questo contesto può essere univoco nel thread (per esempio, se il Web "
+#~ "Bean è con scope di richiesta), o può essere condiviso con alcuni altri "
+#~ "thread (per esempio, se il Web Bean è con scope di sessione) od anche "
+#~ "tutti gli altri thread (se è scope di applicazione). "
+
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "I client (per esempio, altri Web Beans) che sono in esecuzione nello "
+#~ "stesso contesto vedranno la stessa istanza del Web Bean. Ma i client in "
+#~ "un contesto diverso vedranno un istanza diversa."
+
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "Un grande vantaggio del modello contestuale è che consente ai Web Beans "
+#~ "stateful di essere trattati come servizi! Il client non deve preoccuparsi "
+#~ "di gestire il ciclo di vita del Web Bean che sta utilizzando, <emphasis>e "
+#~ "neppure deve sapere quale sia il ciclo di vita.</emphasis> Web Beans "
+#~ "interagisce passando i messaggi, e le implementazioni Web Bean "
+#~ "definiscono il ciclo di vita del proprio stato. I Web Beans sono "
+#~ "debolmente disaccoppiati (loosely coupled) poiché:"
+
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "interagiscono tramite delle API pubblica ben-definita"
+
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "il loro ciclo di vita è completamente disaccoppiato"
+
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Si può sostituire un Web Bean con un diverso Web Bean che implementa la "
+#~ "stessa API ed ha un diverso ciclo di vita (un diverso scope) senza "
+#~ "alterare l'implementazione dell'altro Web Bean. Infatti Web Beans "
+#~ "definisce un meccanismo sofisticato per fare l'override delle "
+#~ "implementazioni Web Bean al momento del deploy, come visto in <xref "
+#~ "linkend=\"deploymenttypes\"/>."
+
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "Si noti che non tutti i client dei un Web Bean sono Web Bean. Altri "
+#~ "oggetti come Servlet o Message-Driven Beans &#151; che sono per natura "
+#~ "non iniettabili, oggetti contestuali &#151; possono pure ottenere "
+#~ "riferimenti a Web Bean tramite iniezione."
+
 # Tolto "Enough hand-waving."
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "Più formalmente, secondo la specifica:"
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "Più formalmente, secondo la specifica:"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Un Web Bean comprende:"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Un Web Bean comprende:"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "Un set (non vuoto) di tipi di API"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "Un set (non vuoto) di tipi di API"
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "Un set (non vuoto) di tipi di annotazione di binding"
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "Un set (non vuoto) di tipi di annotazione di binding"
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "Uno scope"
+#~ msgid "A scope"
+#~ msgstr "Uno scope"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "Un tipo di deploy"
+#~ msgid "A deployment type"
+#~ msgstr "Un tipo di deploy"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "Opzionalmente un nome Web Bean"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "Opzionalmente un nome Web Bean"
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "Un set di tipi di interceptor binding"
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "Un set di tipi di interceptor binding"
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "Un implementazione Web Bean"
+#~ msgid "A Web Bean implementation"
+#~ msgstr "Un implementazione Web Bean"
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "Vediamo cosa significano alcuni di questi termini per lo sviluppatore Web Bean."
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr ""
+#~ "Vediamo cosa significano alcuni di questi termini per lo sviluppatore Web "
+#~ "Bean."
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "Tipi di API, tipi di binding e dependency injection"
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "Tipi di API, tipi di binding e dependency injection"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid "Web Beans usually acquire references to other Web Beans via dependency injection. Any injected attribute specifies a \"contract\" that must be satisfied by the Web Bean to be injected. The contract is:"
-msgstr "I Web Bean solitamente acquisiscono riferimenti ad altri Web Bean tramite la dependency injection. Ogni attributo iniettato specifica un \"contratto\" che deve essere soddisfatto dal Web Bean per essere iniettato. Il contratto è:"
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "I Web Bean solitamente acquisiscono riferimenti ad altri Web Bean tramite "
+#~ "la dependency injection. Ogni attributo iniettato specifica un \"contratto"
+#~ "\" che deve essere soddisfatto dal Web Bean per essere iniettato. Il "
+#~ "contratto è:"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "un tipo di API, assieme a"
+#~ msgid "an API type, together with"
+#~ msgstr "un tipo di API, assieme a"
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "un set di tipi di binding"
+#~ msgid "a set of binding types."
+#~ msgstr "un set di tipi di binding"
 
 # client-visible semantic  =?
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid "An API is a user-defined class or interface. (If the Web Bean is an EJB session bean, the API type is the <literal>@Local</literal> interface or bean-class local view). A binding type represents some client-visible semantic that is satisfied by some implementations of the API and not by others."
-msgstr "Un API è una classe o interfaccia definita dall'utente. (Se il Web Bean è un session bean EJB, il tipo di API è l'interfaccia <literal>@Local</literal> o la vista locale della classe-bean). Un tipo di binding rappresenta un semantica del client che è soddisfatta da certe implementazioni dell'API e non da altre."
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "Un API è una classe o interfaccia definita dall'utente. (Se il Web Bean è "
+#~ "un session bean EJB, il tipo di API è l'interfaccia <literal>@Local</"
+#~ "literal> o la vista locale della classe-bean). Un tipo di binding "
+#~ "rappresenta un semantica del client che è soddisfatta da certe "
+#~ "implementazioni dell'API e non da altre."
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid "Binding types are represented by user-defined annotations that are themselves annotated <literal>@BindingType</literal>. For example, the following injection point has API type <literal>PaymentProcessor</literal> and binding type <literal>@CreditCard</literal>:"
-msgstr "I tipi di binding sono rappresentati da annotazioni definite dall'utente che sono loro stesse annotate con <literal>@BindingType</literal>. Per esempio, il seguente punto di iniezione ha un tipo di API <literal>PaymentProcessor</literal> ed un tipo di binding <literal>@CreditCard</literal>:"
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "I tipi di binding sono rappresentati da annotazioni definite dall'utente "
+#~ "che sono loro stesse annotate con <literal>@BindingType</literal>. Per "
+#~ "esempio, il seguente punto di iniezione ha un tipo di API "
+#~ "<literal>PaymentProcessor</literal> ed un tipo di binding "
+#~ "<literal>@CreditCard</literal>:"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid "If no binding type is explicitly specified at an injection point, the default binding type <literal>@Current</literal> is assumed."
-msgstr "Se nessun tipo di binding viene specificato in modo esplicito ad un punto di iniezione, il tipo di binding di default si assume essere <literal>@Current</literal>."
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "Se nessun tipo di binding viene specificato in modo esplicito ad un punto "
+#~ "di iniezione, il tipo di binding di default si assume essere "
+#~ "<literal>@Current</literal>."
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid "For each injection point, the Web Bean manager searches for a Web Bean which satisfies the contract (implements the API, and has all the binding types), and injects that Web Bean."
-msgstr "Per ogni punto di iniezione, il manager Web Bean cerca un Web Bean che soddisfi il contratto (che implementi la API, e che abbia tutti i tipi di binding), ed inietta tale Web Bean."
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "Per ogni punto di iniezione, il manager Web Bean cerca un Web Bean che "
+#~ "soddisfi il contratto (che implementi la API, e che abbia tutti i tipi di "
+#~ "binding), ed inietta tale Web Bean."
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid "The following Web Bean has the binding type <literal>@CreditCard</literal> and implements the API type <literal>PaymentProcessor</literal>. It could therefore be injected to the example injection point:"
-msgstr "Il seguente Web Bean ha il tipo binding <literal>@CreditCard</literal> e implementa il tipo API <literal>PaymentProcessor</literal>. Può quindi essere iniettato nel punto di iniezione d'esempio:"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "Il seguente Web Bean ha il tipo binding <literal>@CreditCard</literal> e "
+#~ "implementa il tipo API <literal>PaymentProcessor</literal>. Può quindi "
+#~ "essere iniettato nel punto di iniezione d'esempio:"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid "If a Web Bean does not explicitly specify a set of binding types, it has exactly one binding type: the default binding type <literal>@Current</literal>."
-msgstr "Se un Web Bean non specifica esplicitamente un set di tipi di binding, ha esattamente un solo tipo di binding: il tipo di binding di default <literal>@Current</literal>."
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Se un Web Bean non specifica esplicitamente un set di tipi di binding, ha "
+#~ "esattamente un solo tipo di binding: il tipo di binding di default "
+#~ "<literal>@Current</literal>."
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid "Web Beans defines a sophisticated but intuitive <emphasis>resolution algorithm</emphasis> that helps the container decide what to do if there is more than one Web Bean that satisfies a particular contract. We'll get into the details in <xref linkend=\"injection\"/>."
-msgstr "Web Beans definisce un <emphasis>algoritmo di risoluzione</emphasis> sofisticato ma intuitivo che aiuta il container a decidere cosa fare se più di un Web Bean soddisfa un particolare contratto. Vedremo i dettagli in <xref linkend=\"injection\"/>."
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Beans definisce un <emphasis>algoritmo di risoluzione</emphasis> "
+#~ "sofisticato ma intuitivo che aiuta il container a decidere cosa fare se "
+#~ "più di un Web Bean soddisfa un particolare contratto. Vedremo i dettagli "
+#~ "in <xref linkend=\"injection\"/>."
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipi di deploy"
+#~ msgid "Deployment types"
+#~ msgstr "Tipi di deploy"
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid "<emphasis>Deployment types</emphasis> let us classify our Web Beans by deployment scenario. A deployment type is an annotation that represents a particular deployment scenario, for example <literal>@Mock</literal>, <literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We apply the annotation to Web Beans which should be deployed in that scenario. A deployment type allows a whole set of Web Beans to be conditionally deployed, with a just single line of configuration."
-msgstr "<emphasis>I tipi di deploy</emphasis> consentono di classificare i Web Bean secondo uno scenario di deploy. Un tipo di deploy è un'annotazione che rappresenta un particolare scenario di deploy, per esempio <literal>@Mock</literal>, <literal>@Staging</literal> oppure <literal>@AustralianTaxLaw</literal>. Si applica l'annotazione ai Web Bean che dovrebbero essere deployati in tale scenario. Un tipo di deploy consente ad un intero set di Web Bean di essere deployati in modo condizionato, con una sola linea di configurazione."
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>I tipi di deploy</emphasis> consentono di classificare i Web "
+#~ "Bean secondo uno scenario di deploy. Un tipo di deploy è un'annotazione "
+#~ "che rappresenta un particolare scenario di deploy, per esempio "
+#~ "<literal>@Mock</literal>, <literal>@Staging</literal> oppure "
+#~ "<literal>@AustralianTaxLaw</literal>. Si applica l'annotazione ai Web "
+#~ "Bean che dovrebbero essere deployati in tale scenario. Un tipo di deploy "
+#~ "consente ad un intero set di Web Bean di essere deployati in modo "
+#~ "condizionato, con una sola linea di configurazione."
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid "Many Web Beans just use the default deployment type <literal>@Production</literal>, in which case no deployment type need be explicitly specified. All three Web Bean in our example have the deployment type <literal>@Production</literal>."
-msgstr "Molti Web Bean usano soltanto il tipo di deploy di default <literal>@Production</literal>, ed in questo caso non occorre specificare esplicitamente nessun tipo di deploy. Tutti e tre i Web Bean d'esempio hanno ul tipo di deploy <literal>@Production</literal>. "
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "Molti Web Bean usano soltanto il tipo di deploy di default "
+#~ "<literal>@Production</literal>, ed in questo caso non occorre specificare "
+#~ "esplicitamente nessun tipo di deploy. Tutti e tre i Web Bean d'esempio "
+#~ "hanno ul tipo di deploy <literal>@Production</literal>. "
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid "In a testing environment, we might want to replace the <literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "In un ambiente di test è possibile sostituire il Web Bean <literal>SentenceTranslator</literal> con un \"oggetto mock\":"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "In un ambiente di test è possibile sostituire il Web Bean "
+#~ "<literal>SentenceTranslator</literal> con un \"oggetto mock\":"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid "We would enable the deployment type <literal>@Mock</literal> in our testing environment, to indicate that <literal>MockSentenceTranslator</literal> and any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "In ambiente di test si dovrebbe abilitare il tipo di deploy <literal>@Mock</literal> per indicare che l'uso di <literal>MockSentenceTranslator</literal> ed ogni altro Web Bean annotato con <literal>@Mock</literal>."
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "In ambiente di test si dovrebbe abilitare il tipo di deploy "
+#~ "<literal>@Mock</literal> per indicare che l'uso di "
+#~ "<literal>MockSentenceTranslator</literal> ed ogni altro Web Bean annotato "
+#~ "con <literal>@Mock</literal>."
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid "We'll talk more about this unique and powerful feature in <xref linkend=\"deploymenttypes\"/>."
-msgstr "Si discuterà questa potente funzionalità con maggior dettaglio in <xref linkend=\"deploymenttypes\"/>.\" "
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Si discuterà questa potente funzionalità con maggior dettaglio in <xref "
+#~ "linkend=\"deploymenttypes\"/>.\" "
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "Scope"
+#~ msgid "Scope"
+#~ msgstr "Scope"
 
 # arbitrary scope è corretto "scope arbitrari" ?
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid "The <emphasis>scope</emphasis> defines the lifecycle and visibility of instances of the Web Bean. The Web Beans context model is extensible, accommodating arbitrary scopes. However, certain important scopes are built-in to the specification, and provided by the Web Bean manager. A scope is represented by an annotation type."
-msgstr "Lo <emphasis>scope</emphasis> definisce il ciclo di vita e la visibilità delle istanze di Web Bean. Il modello di contesto Web Bean è estensibile e facilita gli scope arbitrari. Comunque alcuni importanti scope sono predefiniti all'internodella specifica e vengono forniti dal manager Web Bean. Uno scope è rapresentato da un tipo di annotazione."
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "Lo <emphasis>scope</emphasis> definisce il ciclo di vita e la visibilità "
+#~ "delle istanze di Web Bean. Il modello di contesto Web Bean è estensibile "
+#~ "e facilita gli scope arbitrari. Comunque alcuni importanti scope sono "
+#~ "predefiniti all'internodella specifica e vengono forniti dal manager Web "
+#~ "Bean. Uno scope è rapresentato da un tipo di annotazione."
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid "For example, any web application may have <emphasis>session scoped</emphasis> Web Beans:"
-msgstr "Per esempio un'applicazione web può avere Web Bean con <emphasis>scope di sessione</emphasis>"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "Per esempio un'applicazione web può avere Web Bean con <emphasis>scope di "
+#~ "sessione</emphasis>"
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid "An instance of a session scoped Web Bean is bound to a user session and is shared by all requests that execute in the context of that session."
-msgstr "Un'istanza di un Web Bean con scope sessione è legato ad una sessione utente ed è condivisa da tutte le richieste che si eseguono nel contesto di tale sessione."
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "Un'istanza di un Web Bean con scope sessione è legato ad una sessione "
+#~ "utente ed è condivisa da tutte le richieste che si eseguono nel contesto "
+#~ "di tale sessione."
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid "By default, Web Beans belong to a special scope called the <emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are pure dependent objects of the object into which they are injected, and their lifecycle is bound to the lifecycle of that object."
-msgstr "Di default i Web Bean appartengono ad uno speciale scope chiamato <emphasis>pseudo-scope dipendente</emphasis>. Web Bean con questo scope sono oggetti puri dipendenti dall'oggetto nel quale vengono iniettati ed il loro ciclo di vita è legato al ciclo di vita di tale oggetto."
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "Di default i Web Bean appartengono ad uno speciale scope chiamato "
+#~ "<emphasis>pseudo-scope dipendente</emphasis>. Web Bean con questo scope "
+#~ "sono oggetti puri dipendenti dall'oggetto nel quale vengono iniettati ed "
+#~ "il loro ciclo di vita è legato al ciclo di vita di tale oggetto."
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "Approfondiremo gli scope in <xref linkend=\"scopescontexts\"/>."
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr "Approfondiremo gli scope in <xref linkend=\"scopescontexts\"/>."
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Nomi Web Bean e Unified EL"
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Nomi Web Bean e Unified EL"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Un Web Bean può avere un <emphasis>nome</emphasis> che gli consente di essere usato in un'espressione Unified EL. E' facile specificare il nome del Web Bean:"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Un Web Bean può avere un <emphasis>nome</emphasis> che gli consente di "
+#~ "essere usato in un'espressione Unified EL. E' facile specificare il nome "
+#~ "del Web Bean:"
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "Ora si può facilmente utilizzare il Web Bean in ogni pagina JSF o JSP:"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr ""
+#~ "Ora si può facilmente utilizzare il Web Bean in ogni pagina JSF o JSP:"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "Si può anche lasciare assegnare al manager Web Bean il nome di default:"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "Si può anche lasciare assegnare al manager Web Bean il nome di default:"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid "In this case, the name defaults to <literal>shoppingCart</literal> &#151; the unqualified class name, with the first character changed to lowercase."
-msgstr "In questo caso il nome di default è <literal>shoppingCart</literal> &#151; il nome della classe non qualificata, con il primo carattere messo in minuscolo."
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "In questo caso il nome di default è <literal>shoppingCart</literal> "
+#~ "&#151; il nome della classe non qualificata, con il primo carattere messo "
+#~ "in minuscolo."
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "Tipi di interceptor binding"
+#~ msgid "Interceptor binding types"
+#~ msgstr "Tipi di interceptor binding"
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid "Web Beans supports the interceptor functionality defined by EJB 3, not only for EJB beans, but also for plain Java classes. In addition, Web Beans provides a new approach to binding interceptors to EJB beans and other Web Beans."
-msgstr "Web Beans supporta la funzionalità di interceptor definita da EJB 3, non solo per i bean EJB, ma anche per classi Java semplici (plain). In aggiunta, Web Beans fornisce un nuovo approccio al binding di interceptor nei confronti di bean EJB e di altri Web Beans."
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans supporta la funzionalità di interceptor definita da EJB 3, non "
+#~ "solo per i bean EJB, ma anche per classi Java semplici (plain). In "
+#~ "aggiunta, Web Beans fornisce un nuovo approccio al binding di interceptor "
+#~ "nei confronti di bean EJB e di altri Web Beans."
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid "It remains possible to directly specify the interceptor class via use of the <literal>@Interceptors</literal> annotation:"
-msgstr "Rimane la possibilità di specificare direttamente la classe interceptor tramite l'uso dell'annotazione <literal>@Interceptors</literal>."
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "Rimane la possibilità di specificare direttamente la classe interceptor "
+#~ "tramite l'uso dell'annotazione <literal>@Interceptors</literal>."
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
 # indirect = ?
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid "However, it is more elegant, and better practice, to indirect the interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "Comunque è più elegante ed è considerata una pratica migliore quella di giungere indirettamente ad un interceptor binding tramite un <emphasis>tipo di interceptor binding</emphasis>:"
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Comunque è più elegante ed è considerata una pratica migliore quella di "
+#~ "giungere indirettamente ad un interceptor binding tramite un "
+#~ "<emphasis>tipo di interceptor binding</emphasis>:"
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid "We'll discuss Web Beans interceptors and decorators in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "Si discuteranno gli interceptor e i decoratori di Web BEans in <xref linkend=\"interceptors\"/> e <xref linkend=\"decorators\"/>."
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "Si discuteranno gli interceptor e i decoratori di Web BEans in <xref "
+#~ "linkend=\"interceptors\"/> e <xref linkend=\"decorators\"/>."
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "Quali tipi di oggetti possono essere Web Beans?"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "Quali tipi di oggetti possono essere Web Beans?"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid "We've already seen that JavaBeans, EJBs and some other Java classes can be Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "Si è già visto che JavaBeans, EJB ed altri tipi di classi Java possono essere Web Bean. Ma esattamente quali tipi di oggetti sono Web Beans?"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "Si è già visto che JavaBeans, EJB ed altri tipi di classi Java possono "
+#~ "essere Web Bean. Ma esattamente quali tipi di oggetti sono Web Beans?"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "Web Beans Semplici"
+#~ msgid "Simple Web Beans"
+#~ msgstr "Web Beans Semplici"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid "The Web Beans specification says that a concrete Java class is a <emphasis>simple</emphasis> Web Bean if:"
-msgstr "La specifica Web Beans dice che una classe concreta Java è un Web Bean <emphasis>semplice</emphasis> se:"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "La specifica Web Beans dice che una classe concreta Java è un Web Bean "
+#~ "<emphasis>semplice</emphasis> se:"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid "it is not an EE container-managed component, like an EJB, a Servlet or a JPA entity,"
-msgstr "Non è un componente gestito da un container EE, come EJB, un Servlet o un entity JPA,"
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "Non è un componente gestito da un container EE, come EJB, un Servlet o un "
+#~ "entity JPA,"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "non è una classe interna statica/non statica,"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "non è una classe interna statica/non statica,"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "non è un tipo parametrizzato, e"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "non è un tipo parametrizzato, e"
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid "it has a constructor with no parameters, or a constructor annotated <literal>@Initializer</literal>."
-msgstr "ha un costruttore senza parametro, o un costruttore annotato con <literal>@Initializer</literal>."
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "ha un costruttore senza parametro, o un costruttore annotato con "
+#~ "<literal>@Initializer</literal>."
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "Quindi quasi ogni JavaBean è un Web Bean semplice."
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "Quindi quasi ogni JavaBean è un Web Bean semplice."
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid "Every interface implemented directly or indirectly by a simple Web Bean is an API type of the simple Web Bean. The class and its superclasses are also API types."
-msgstr "Ogni interfaccia implementata direttamente o indirettamente da un Web Bean semplice è un tipo di API di un Web Bean semplice. La classe e le sue superclassi sono anch'essere tipi di API."
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "Ogni interfaccia implementata direttamente o indirettamente da un Web "
+#~ "Bean semplice è un tipo di API di un Web Bean semplice. La classe e le "
+#~ "sue superclassi sono anch'essere tipi di API."
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "Web Bean Enterprise"
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "Web Bean Enterprise"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid "The specification says that all EJB 3-style session and singleton beans are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web Beans &#151; since they are not intended to be injected into other objects &#151; but they can take advantage of most of the functionality of Web Beans, including dependency injection and interceptors."
-msgstr "La specifica dice che tutti i bean di sessione stile EJB3 e quelli singleton sono Web Bean <emphasis>enterprise</emphasis>. I bean message driven non sono Web Bean &#151; poiché non sono intesi per essere iniettati in altri oggetti &#151; ma possono sfruttare la maggior parte della funzionalità dei Web Bean, inclusi dependency injection e interceptor."
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "La specifica dice che tutti i bean di sessione stile EJB3 e quelli "
+#~ "singleton sono Web Bean <emphasis>enterprise</emphasis>. I bean message "
+#~ "driven non sono Web Bean &#151; poiché non sono intesi per essere "
+#~ "iniettati in altri oggetti &#151; ma possono sfruttare la maggior parte "
+#~ "della funzionalità dei Web Bean, inclusi dependency injection e "
+#~ "interceptor."
 
 # bean class local view = ?
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid "Every local interface of an enterprise Web Bean that does not have a wildcard type parameter or type variable, and every one of its superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean has a bean class local view, the bean class, and every one of its superclasses, is also an API type."
-msgstr "Ogni interfaccia locale di un Web Bean enterprise che non ha un parametro tipo wildcard o variabile tipo, e ciascuna delle sue superinterfacce, è un tipo di API del Web Bean enterprise. Se il bean EJB ha una vista locale di classe bean, la classe bean e ogni sua superclasse è anch'essa un tipo di API."
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "Ogni interfaccia locale di un Web Bean enterprise che non ha un parametro "
+#~ "tipo wildcard o variabile tipo, e ciascuna delle sue superinterfacce, è "
+#~ "un tipo di API del Web Bean enterprise. Se il bean EJB ha una vista "
+#~ "locale di classe bean, la classe bean e ogni sua superclasse è anch'essa "
+#~ "un tipo di API."
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid "Stateful session beans should declare a remove method with no parameters or a remove method annotated <literal>@Destructor</literal>. The Web Bean manager calls this method to destroy the stateful session bean instance at the end of its lifecycle. This method is called the <emphasis>destructor</emphasis> method of the enterprise Web Bean."
-msgstr "I session bean stateful dovrebbero dichiarare un metodo remoto senza parametri od un metodo annotato con <literal>@Destructor</literal>. Il manager Web Bean chiama questo metodo per distruggere l'istanza del session bean statefull alla fine del suo ciclo di vita. Questo metodo è chiamato metodo <emphasis>distruttore</emphasis> del Web Bean enterprise."
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "I session bean stateful dovrebbero dichiarare un metodo remoto senza "
+#~ "parametri od un metodo annotato con <literal>@Destructor</literal>. Il "
+#~ "manager Web Bean chiama questo metodo per distruggere l'istanza del "
+#~ "session bean statefull alla fine del suo ciclo di vita. Questo metodo è "
+#~ "chiamato metodo <emphasis>distruttore</emphasis> del Web Bean enterprise."
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid "So when should we use an enterprise Web Bean instead of a simple Web Bean? Well, whenever we need the advanced enterprise services offered by EJB, such as:"
-msgstr "Ma allora quando occorre usare un Web Bean enterprise invece di un Web Bean semplice? Quando occorrono servizi enterprise avanzati offerti da EJB, quali:"
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "Ma allora quando occorre usare un Web Bean enterprise invece di un Web "
+#~ "Bean semplice? Quando occorrono servizi enterprise avanzati offerti da "
+#~ "EJB, quali:"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "gestione delle transazioni a livello di metodo e sicurezza,"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "gestione delle transazioni a livello di metodo e sicurezza,"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "gestione della concorrenza,"
+#~ msgid "concurrency management,"
+#~ msgstr "gestione della concorrenza,"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
-msgstr "passivazione a livello di istanza per session bean stateful e pooling di istanze per session bean stateless,"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "passivazione a livello di istanza per session bean stateful e pooling di "
+#~ "istanze per session bean stateless,"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "invocazione remota e web service, e"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "invocazione remota e web service, e"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "timer e metodi asincroni,"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "timer e metodi asincroni,"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid "we should use an enterprise Web Bean. When we don't need any of these things, a simple Web Bean will serve just fine."
-msgstr "si dovrebbe usare un Web Bean enterprise. Quando non occorrono queste cose, va bene utilizzare un Web Bean semplice."
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "si dovrebbe usare un Web Bean enterprise. Quando non occorrono queste "
+#~ "cose, va bene utilizzare un Web Bean semplice."
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid "Many Web Beans (including any session or application scoped Web Bean) are available for concurrent access. Therefore, the concurrency management provided by EJB 3.1 is especially useful. Most session and application scoped Web Beans should be EJBs."
-msgstr "Molti Web Bean (inclusi Web Bean con scope di sessione o applicazione) sono disponibili per accessi concorrenti. Quindi la gestione della concorrenza fornita da EJB3.1 è molto utile. La maggior parte dei Web Bean con scope sessione e applicazione dovrebbero essere EJB."
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "Molti Web Bean (inclusi Web Bean con scope di sessione o applicazione) "
+#~ "sono disponibili per accessi concorrenti. Quindi la gestione della "
+#~ "concorrenza fornita da EJB3.1 è molto utile. La maggior parte dei Web "
+#~ "Bean con scope sessione e applicazione dovrebbero essere EJB."
 
 # internal state benefit =?
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid "Web Beans which hold references to heavy-weight resources, or hold a lot of internal state benefit from the advanced container-managed lifecycle defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> model, with its support for passivation and instance pooling."
-msgstr "Web Bean che mantengono riferimenti alle risorse pesanti o mantengono molti benefici dello stato interno dal ciclo di vita avanzato, gestito dal container, definito dal modello EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal>\", con supporto alla passivazione e pooling delle istanze."
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "Web Bean che mantengono riferimenti alle risorse pesanti o mantengono "
+#~ "molti benefici dello stato interno dal ciclo di vita avanzato, gestito "
+#~ "dal container, definito dal modello EJB <literal>@Stateless</literal>/"
+#~ "<literal>@Stateful</literal>/<literal>@Singleton</literal>\", con "
+#~ "supporto alla passivazione e pooling delle istanze."
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid "Finally, it's usually obvious when method-level transaction management, method-level security, timers, remote methods or asynchronous methods are needed."
-msgstr "Infine è ovvio quando occorre usare la gestione delle transazioni a livello di metodo, la sicurezza a livello di metoto, i timer, i metodi remoti o i metodi asincroni."
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "Infine è ovvio quando occorre usare la gestione delle transazioni a "
+#~ "livello di metodo, la sicurezza a livello di metoto, i timer, i metodi "
+#~ "remoti o i metodi asincroni."
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid "It's usually easy to start with simple Web Bean, and then turn it into an EJB, just by adding an annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "E' facile iniziare con un Web Bean semplice e poi volgere a EJB semplicemente aggiungendo l'annotazione: <literal>@Stateless</literal>, <literal>@Stateful</literal> o <literal>@Singleton</literal>."
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "E' facile iniziare con un Web Bean semplice e poi volgere a EJB "
+#~ "semplicemente aggiungendo l'annotazione: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> o <literal>@Singleton</literal>."
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "Metodi produttori"
+#~ msgid "Producer methods"
+#~ msgstr "Metodi produttori"
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid "A <emphasis>producer method</emphasis> is a method that is called by the Web Bean manager to obtain an instance of the Web Bean when no instance exists in the current context. A producer method lets the application take full control of the instantiation process, instead of leaving instantiation to the Web Bean manager. For example:"
-msgstr "Un <emphasis>metodo produttore</emphasis> è un metodo che viene chiamato dal manager Web Bean per ottenere un'istanza di un Web Bean quando non esiste alcuna istanza nel contesto corrente. Un metodo produttore lascia all'applicazione il pieno controllo del processo di istanziamento, invece di lasciare l'istanziamento al manager Web Bean. Per esempio:"
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "Un <emphasis>metodo produttore</emphasis> è un metodo che viene chiamato "
+#~ "dal manager Web Bean per ottenere un'istanza di un Web Bean quando non "
+#~ "esiste alcuna istanza nel contesto corrente. Un metodo produttore lascia "
+#~ "all'applicazione il pieno controllo del processo di istanziamento, invece "
+#~ "di lasciare l'istanziamento al manager Web Bean. Per esempio:"
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "Il risultato del metodo produttore è iniettato come qualsiasi altro Web Bean."
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "Il risultato del metodo produttore è iniettato come qualsiasi altro Web "
+#~ "Bean."
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid "The method return type and all interfaces it extends/implements directly or indirectly are API types of the producer method. If the return type is a class, all superclasses are also API types."
-msgstr "Il tipo di ritorno del metodo e tutte le interfacce che estende/implementa direttamente o indirettamente sono tipi di API del metodo produttore. Se il tipo di ritorno è una classe, tutte le superclassi sono anch'esse tipi di API."
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "Il tipo di ritorno del metodo e tutte le interfacce che estende/"
+#~ "implementa direttamente o indirettamente sono tipi di API del metodo "
+#~ "produttore. Se il tipo di ritorno è una classe, tutte le superclassi sono "
+#~ "anch'esse tipi di API."
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "Alcuni metodi produttori restituiscono oggetti che richiedono una distruzione esplicita:"
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr ""
+#~ "Alcuni metodi produttori restituiscono oggetti che richiedono una "
+#~ "distruzione esplicita:"
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid "These producer methods may define matching <emphasis>disposal methods</emphasis>:"
-msgstr "Questi metodi produttori possono definire corrispondenti <emphasis>metodi distruttori</emphasis>:\""
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Questi metodi produttori possono definire corrispondenti <emphasis>metodi "
+#~ "distruttori</emphasis>:\""
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid "This disposal method is called automatically by the Web Bean manager at the end of the request."
-msgstr "Il metodo distruttore è chiamato direttamente dal manager Web Bean alla fine della richiesta."
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "Il metodo distruttore è chiamato direttamente dal manager Web Bean alla "
+#~ "fine della richiesta."
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
-msgstr "Si parlerà in maggior dettaglio dei metodi produttori in <xref linkend=\"producermethods\"/>."
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "Si parlerà in maggior dettaglio dei metodi produttori in <xref linkend="
+#~ "\"producermethods\"/>."
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "Endpoint JMS"
+#~ msgid "JMS endpoints"
+#~ msgstr "Endpoint JMS"
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the developer from the tedium of managing the lifecycles of all the various JMS objects required to send messages to queues and topics. We'll discuss JMS endpoints in <xref linkend=\"jms\"/>."
-msgstr "Infine una coda od un topic JMS possono essere Web Bean. Web Beans solleva lo sviluppatore dalla noia della gestione dei cicli di vita di tutti i vari oggetti JMS richiesto per inviare messaggi a code o topic. Si discuteranno gli endpoint JMS in <xref linkend=\"jms\"/>."
-
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "Infine una coda od un topic JMS possono essere Web Bean. Web Beans "
+#~ "solleva lo sviluppatore dalla noia della gestione dei cicli di vita di "
+#~ "tutti i vari oggetti JMS richiesto per inviare messaggi a code o topic. "
+#~ "Si discuteranno gli endpoint JMS in <xref linkend=\"jms\"/>."

Modified: doc/trunk/reference/it-IT/master.po
===================================================================
--- doc/trunk/reference/it-IT/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-20 22:16+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,50 +14,107 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "Nota"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
-msgid "JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
-msgstr "JSR-299 ha recentemente cambiato il suo nome da \"Web Beans\" a \"Contesti Java e Dependency Injection\". La guida fa comunque riferimento alla JSR-299 come \"Web Beans\" e alla JSR-299 Reference Implementation come \"Web Beans RI\". Altre documentazioni, blogs, forum, ecc. potrebbero usare la nuova nomenclatura, includendo il nuovo nome per la JSR-299 Reference Implementation - \"Web Beans\"."
+msgid ""
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
+msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
-msgid "You'll also find that some of the more recent functionality to be specified is missing (such as producer fields, realization, asynchronous events, XML mapping of EE resources)."
-msgstr "Si vedrà che alcune delle più recenti funzionalità da specificare mancano (come campi produttori, realizzazione, eventi asincroni, mappatura XML delle risorse EE)."
+msgid ""
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
+msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "Usare gli oggetti contestuali"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "Sviluppare codice debolmente-accoppiato"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "Realizzare una tipizzazione più forte"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans e l'ecosistema Java EE"
 
 #. Tag: title
-#: master.xml:76
-#, no-c-format
-msgid "Web Beans Reference"
+#: master.xml:87
+#, fuzzy, no-c-format
+msgid "Weld reference"
 msgstr "Web Beans Reference"
 
+#~ msgid "Note"
+#~ msgstr "Nota"
+
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "JSR-299 ha recentemente cambiato il suo nome da \"Web Beans\" a "
+#~ "\"Contesti Java e Dependency Injection\". La guida fa comunque "
+#~ "riferimento alla JSR-299 come \"Web Beans\" e alla JSR-299 Reference "
+#~ "Implementation come \"Web Beans RI\". Altre documentazioni, blogs, forum, "
+#~ "ecc. potrebbero usare la nuova nomenclatura, includendo il nuovo nome per "
+#~ "la JSR-299 Reference Implementation - \"Web Beans\"."
+
+#~ msgid ""
+#~ "You'll also find that some of the more recent functionality to be "
+#~ "specified is missing (such as producer fields, realization, asynchronous "
+#~ "events, XML mapping of EE resources)."
+#~ msgstr ""
+#~ "Si vedrà che alcune delle più recenti funzionalità da specificare mancano "
+#~ "(come campi produttori, realizzazione, eventi asincroni, mappatura XML "
+#~ "delle risorse EE)."
+
+#~ msgid "Using contextual objects"
+#~ msgstr "Usare gli oggetti contestuali"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "Sviluppare codice debolmente-accoppiato"

Modified: doc/trunk/reference/it-IT/next.po
===================================================================
--- doc/trunk/reference/it-IT/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-20 01:10+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,18 +22,129 @@
 #. Tag: para
 #: next.xml:6
 #, no-c-format
-msgid "Because Web Beans is so new, there's not yet a lot of information available online."
-msgstr "Poiché Web Beans è una tecnologia nuova, non è ancora disponibile molta informazione online."
+msgid ""
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"L'implementazione della documentazione Web Beans è stata sviluppata in "
+"<literal>http://seamframework.org/WebBeans</literal>. Il team di sviluppo di "
+"RI ed il blog per la specifica Web Beans si trova in <literal>http://in."
+"relation.to</literal>. Quest'articolo è sostanzialmente basato su una serie "
+"di articoli pubblicati sul blog."
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
-msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "La specifica Web Beans è sicuramente la migliore fonte per avere informazioni su Web Beans. La specifica è lunga circa 100 pagine, circa quest'articolo e per lo più leggibile altrettanto facilmente. Ma sicuramente copre molti dettagli che sono stati saltati nel presente documento. La specifica è disponibile al seguente indirizzo <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+msgid ""
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
-msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
-msgstr "L'implementazione della documentazione Web Beans è stata sviluppata in <literal>http://seamframework.org/WebBeans</literal>. Il team di sviluppo di RI ed il blog per la specifica Web Beans si trova in <literal>http://in.relation.to</literal>. Quest'articolo è sostanzialmente basato su una serie di articoli pubblicati sul blog."
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Poiché Web Beans è una tecnologia nuova, non è ancora disponibile molta "
+#~ "informazione online."
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "La specifica Web Beans è sicuramente la migliore fonte per avere "
+#~ "informazioni su Web Beans. La specifica è lunga circa 100 pagine, circa "
+#~ "quest'articolo e per lo più leggibile altrettanto facilmente. Ma "
+#~ "sicuramente copre molti dettagli che sono stati saltati nel presente "
+#~ "documento. La specifica è disponibile al seguente indirizzo "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."

Modified: doc/trunk/reference/it-IT/part1.po
===================================================================
--- doc/trunk/reference/it-IT/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-24 19:21+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -17,173 +17,384 @@
 # 1. sovrappone
 # 2. ciclo di vita (dei componenti)
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
-msgid "The Web Beans (JSR-299) specification defines a set of services for the Java EE environment that makes applications much easier to develop. Web Beans layers an enhanced lifecycle and interaction model over existing Java component types including JavaBeans and Enterprise Java Beans. As a complement to the traditional Java EE programming model, the Web Beans services provide:"
-msgstr "La specifica Web Beans (JSR-299) definisce un insieme di servizi per l'ambiente Java EE che rende molto più facile lo sviluppo di applicazioni. Web Beans sovrappone un più ricco modello di interazione e di gestione del ciclo di vita ai tipi di componenti java esistenti, Java Beans and Enterprise Java Beans inclusi. A complemento del tradizionale modello di programmazione Java EE, i servizi  Web Beans forniscono:"
+#: part1.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"La specifica Web Beans (JSR-299) definisce un insieme di servizi per "
+"l'ambiente Java EE che rende molto più facile lo sviluppo di applicazioni. "
+"Web Beans sovrappone un più ricco modello di interazione e di gestione del "
+"ciclo di vita ai tipi di componenti java esistenti, Java Beans and "
+"Enterprise Java Beans inclusi. A complemento del tradizionale modello di "
+"programmazione Java EE, i servizi  Web Beans forniscono:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
-msgid "an improved lifecycle for stateful components, bound to well-defined <emphasis>contexts</emphasis>,"
-msgstr "una migliore gestione del ciclo di vita dei componenti stateful, associata a <emphasis>contesti</emphasis> ben definiti"
+#: part1.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"an improved lifecycle for stateful objects, bound to well-defined "
+"<emphasis>contexts</emphasis>,"
+msgstr ""
+"una migliore gestione del ciclo di vita dei componenti stateful, associata a "
+"<emphasis>contesti</emphasis> ben definiti"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr "un approccio typesafe alla <emphasis>dependency injection</emphasis>,"
 
 # facility=struttura?
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
+msgstr ""
+"interazioni basate su una struttura per <emphasis>la notifica degli eventi</"
+"emphasis>, e"
+
+#. Tag: para
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"un migliore approccio nell'associazione degli <emphasis>interceptors</"
+"emphasis> ai componenti, unitamente all'introduzione di un nuovo tipo di "
+"interceptor, chiamato <emphasis>decoratore</emphasis>, più adatto ad essere "
+"utilizzato nella soluzione di problemi legati alla business logic."
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
-msgstr "interazioni basate su una struttura per <emphasis>la notifica degli eventi</emphasis>, e"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:51
 #, no-c-format
-msgid "a better approach to binding <emphasis>interceptors</emphasis> to components, along with a new kind of interceptor, called a <emphasis>decorator</emphasis>, that is more appropriate for use in solving business problems."
-msgstr "un migliore approccio nell'associazione degli <emphasis>interceptors</emphasis> ai componenti, unitamente all'introduzione di un nuovo tipo di interceptor, chiamato <emphasis>decoratore</emphasis>, più adatto ad essere utilizzato nella soluzione di problemi legati alla business logic."
+msgid ""
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:61
 #, no-c-format
-msgid "Dependency injection, together with contextual lifecycle management, saves the user of an unfamiliar API from having to ask and answer the following questions:"
-msgstr "La dependency injection, insieme alla gestione contestuale del ciclo di vita dei componenti, risparmia a chi utilizza un API con cui non ha familiarità la necessità di dover formulare le risposte relative alle seguenti domande:"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:68
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "qual è il ciclo di vita di questo oggetto?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:71
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "quanti client può simultaneamente avere?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:75
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "è multithreaded?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
-# ottenerne/ricavarne
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:83
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "da dove posso ottenerne uno?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:86
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "devo distruggerlo esplicitamente?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:89
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "dove dovrei tenerne il riferimento quando non lo sto usando direttamente?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:92
 #, no-c-format
-msgid "how can I add an indirection layer, so that the implementation of this object can vary at deployment time?"
-msgstr "come posso aggiungere un livello di indirezione, in modo che l'implementazione di tale oggetto possa variare a deployment time?"
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
 
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
+msgid ""
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"La dependency injection, insieme alla gestione contestuale del ciclo di vita "
+"dei componenti, risparmia a chi utilizza un API con cui non ha familiarità "
+"la necessità di dover formulare le risposte relative alle seguenti domande:"
+
+#. Tag: para
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "qual è il ciclo di vita di questo oggetto?"
+
+#. Tag: para
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "quanti client può simultaneamente avere?"
+
+#. Tag: para
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "è multithreaded?"
+
+#. Tag: para
+#: part1.xml:114
+#, no-c-format
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "devo distruggerlo esplicitamente?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr ""
+"dove dovrei tenerne il riferimento quando non lo sto usando direttamente?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"come posso aggiungere un livello di indirezione, in modo che "
+"l'implementazione di tale oggetto possa variare a deployment time?"
+
 # go about (dovrei comportarmi)???
 #. Tag: para
-#: part1.xml:61
-#, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "cosa dovrei fare per condividere questo oggetto con altri oggetti?"
 
-# implementazione concreta mi pare pleonastico
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
-msgid "A Web Bean specifies only the type and semantics of other Web Beans it depends upon. It need not be aware of the actual lifecycle, concrete implementation, threading model or other clients of any Web Bean it depends upon. Even better, the concrete implementation, lifecycle and threading model of a Web Bean it depends upon may vary according to the deployment scenario, without affecting any client."
-msgstr "Un Web Bean specifica soltanto il tipo e la semantica degli altri Web Beans da cui dipende. Non ha bisogno di essere a conoscenza del reale ciclo di vita, della implementazione, del modello di threading o degli altri client dei Web Bean da cui dipende. Ancor meglio, l'implementazione, il ciclo di vita e il modello di threading di un Web Bean da cui dipende possono variare a seconda dello scenario di deployment, senza avere effetti su nessun client."
+msgid ""
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
+# implementazione concreta mi pare pleonastico
+#. Tag: para
+#: part1.xml:142
+#, fuzzy, no-c-format
+msgid ""
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Un Web Bean specifica soltanto il tipo e la semantica degli altri Web Beans "
+"da cui dipende. Non ha bisogno di essere a conoscenza del reale ciclo di "
+"vita, della implementazione, del modello di threading o degli altri client "
+"dei Web Bean da cui dipende. Ancor meglio, l'implementazione, il ciclo di "
+"vita e il modello di threading di un Web Bean da cui dipende possono variare "
+"a seconda dello scenario di deployment, senza avere effetti su nessun client."
+
 # <emphasis>loose-coupling</emphasis> è da tradurre?
 # inerente o inerente a?
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
-msgid "Events, interceptors and decorators enhance the <emphasis>loose-coupling</emphasis> that is inherent in this model:"
-msgstr "Eventi, interceptor e decoratori potenziano l'<emphasis>accoppiamento debole</emphasis> (loose-coupling) inerente a questo modello:"
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"Eventi, interceptor e decoratori potenziano l'<emphasis>accoppiamento "
+"debole</emphasis> (loose-coupling) inerente a questo modello:"
 
 # notifiche o eventi?
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:155
 #, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers,"
-msgstr "le <emphasis>notifiche degli eventi</emphasis> disaccoppiano i produttori di eventi dai consumatori,"
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers,"
+msgstr ""
+"le <emphasis>notifiche degli eventi</emphasis> disaccoppiano i produttori di "
+"eventi dai consumatori,"
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic, and"
-msgstr "gli <emphasis>interceptor</emphasis> disaccoppiano i problemi tecnici dalla business logic, e"
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic, and"
+msgstr ""
+"gli <emphasis>interceptor</emphasis> disaccoppiano i problemi tecnici dalla "
+"business logic, e"
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
-msgid "<emphasis>decorators</emphasis> allow business concerns to be compartmentalized."
-msgstr "i <emphasis>decoratori</emphasis> permettono di compartimentare i problemi di business logic."
+msgid ""
+"<emphasis>decorators</emphasis> allow business concerns to be "
+"compartmentalized."
+msgstr ""
+"i <emphasis>decoratori</emphasis> permettono di compartimentare i problemi "
+"di business logic."
 
 # loro consumatori di eventi? destinatari è meglio?
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
-msgid "Most importantly, Web Beans provides all these facilities in a <emphasis>typesafe</emphasis> way. Web Beans never uses string-based identifiers to determine how collaborating objects fit together. And XML, though it remains an option, is rarely used. Instead, Web Beans uses the typing information that is already available in the Java object model, together with a new pattern, called <emphasis>binding annotations</emphasis>, to wire together Web Beans, their dependencies, their interceptors and decorators and their event consumers."
-msgstr "Soprattutto, Web Beans fornisce tutti questi strumenti in un modo <emphasis>typesafe</emphasis>. Web Beans non usa mai identificatori di tipo stringa per determinare come interagiscono oggetti che collaborano fra di loro. Sebbene resti un'opzione, il linguaggio XML è usato raramente. Invece Web Beans utilizza l'informazione di tipo già presente nel modello a oggetti di Java, insieme ad un nuovo pattern, chiamato <emphasis>binding annotations</emphasis>, per assemblare i Web Beans, le loro dipendenze, i loro interceptor e decoratori e i loro consumatori di eventi."
+#: part1.xml:168
+#, fuzzy, no-c-format
+msgid ""
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"Soprattutto, Web Beans fornisce tutti questi strumenti in un modo "
+"<emphasis>typesafe</emphasis>. Web Beans non usa mai identificatori di tipo "
+"stringa per determinare come interagiscono oggetti che collaborano fra di "
+"loro. Sebbene resti un'opzione, il linguaggio XML è usato raramente. Invece "
+"Web Beans utilizza l'informazione di tipo già presente nel modello a oggetti "
+"di Java, insieme ad un nuovo pattern, chiamato <emphasis>binding "
+"annotations</emphasis>, per assemblare i Web Beans, le loro dipendenze, i "
+"loro interceptor e decoratori e i loro consumatori di eventi."
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
-msgid "The Web Beans services are general and apply to the following types of components that exist in the Java EE environment:"
-msgstr "I servizi di Web Beans sono generali e applicabili ai seguenti tipi di componenti che esistono in ambiente Java EE:"
+msgid ""
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "tutti i JavaBeans,"
+#: part1.xml:183
+#, fuzzy, no-c-format
+msgid ""
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans fornisce anche i necessari punti di integrazione in modo che altri "
+"tipi di componenti  definiti da future specifiche Java EE o da framework non "
+"standard possano essere integrati in modo trasparente con Web Beans, "
+"avvantaggiarsi dei suoi servizi, e interagire con qualunque altro tipo di "
+"Web Bean."
 
 #. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "tutti gli EJB, e"
+#: part1.xml:189
+#, fuzzy, no-c-format
+msgid ""
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Beans è stata influenzata da un buon numero di framework Java esistenti, "
+"inclusi Seam, Guice and Spring. Comunque, Web Beans ha un proprio chiaro "
+"carattere distintivo: è più sicuro nell'uso dei tipi (typesafe) di Seam, è "
+"più orientato allo stato (stateful) e meno basato su XML di Spring, e più "
+"capace di Guice nelle applicazioni web ed enterprise."
 
 #. Tag: para
-#: part1.xml:111
+#: part1.xml:197
 #, no-c-format
-msgid "all Servlets."
-msgstr "tutti i Servlets."
+msgid ""
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
-msgid "Web Beans even provides the necessary integration points so that other kinds of components defined by future Java EE specifications or by non-standard frameworks may be cleanly integrated with Web Beans, take advantage of the Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans fornisce anche i necessari punti di integrazione in modo che altri tipi di componenti  definiti da future specifiche Java EE o da framework non standard possano essere integrati in modo trasparente con Web Beans, avvantaggiarsi dei suoi servizi, e interagire con qualunque altro tipo di Web Bean."
+# ottenerne/ricavarne
+#~ msgid "where can I get one from?"
+#~ msgstr "da dove posso ottenerne uno?"
 
-#. Tag: para
-#: part1.xml:120
-#, no-c-format
-msgid "Web Beans was influenced by a number of existing Java frameworks, including Seam, Guice and Spring. However, Web Beans has its own very distinct character: more typesafe than Seam, more stateful and less XML-centric than Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Beans è stata influenzata da un buon numero di framework Java esistenti, inclusi Seam, Guice and Spring. Comunque, Web Beans ha un proprio chiaro carattere distintivo: è più sicuro nell'uso dei tipi (typesafe) di Seam, è più orientato allo stato (stateful) e meno basato su XML di Spring, e più capace di Guice nelle applicazioni web ed enterprise."
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "I servizi di Web Beans sono generali e applicabili ai seguenti tipi di "
+#~ "componenti che esistono in ambiente Java EE:"
 
+#~ msgid "all JavaBeans,"
+#~ msgstr "tutti i JavaBeans,"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "tutti gli EJB, e"
+
+#~ msgid "all Servlets."
+#~ msgstr "tutti i Servlets."
+
 # dove EJB Lite sia disponibile in modo embeddable
-#. Tag: para
-#: part1.xml:125
-#, no-c-format
-msgid "Most importantly, Web Beans is a JCP standard that integrates cleanly with Java EE, and with any Java SE environment where embeddable EJB Lite is available."
-msgstr "Soprattutto, Web Beans è uno standard JCP che si integra in modo trasparente con Java EE, e con qualunque ambiente Java SE dove EJB Lite sia disponibile in modo embeddable."
-
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "Soprattutto, Web Beans è uno standard JCP che si integra in modo "
+#~ "trasparente con Java EE, e con qualunque ambiente Java SE dove EJB Lite "
+#~ "sia disponibile in modo embeddable."

Modified: doc/trunk/reference/it-IT/part2.po
===================================================================
--- doc/trunk/reference/it-IT/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-24 19:23+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,69 +16,118 @@
 #. Tag: para
 #: part2.xml:5
 #, no-c-format
-msgid "The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. We've already seen three means of achieving loose coupling:"
-msgstr "Il primo tema saliente di Web Beans è l'<emphasis>accoppiamento debole (loose coupling)</emphasis>. Abbiamo già visto tre modi per realizzarlo:"
+msgid ""
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "i <emphasis>tipi di deployment</emphasis> rendono possibile il polimorfismo a deployment time,"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
+#: part2.xml:18
 #, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "i <emphasis>metodi produttori</emphasis> rendono possibile il polimorfismo a runtime, e"
+msgid ""
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Il primo tema saliente di Web Beans è l'<emphasis>accoppiamento debole "
+#~ "(loose coupling)</emphasis>. Abbiamo già visto tre modi per realizzarlo:"
+
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "i <emphasis>tipi di deployment</emphasis> rendono possibile il "
+#~ "polimorfismo a deployment time,"
+
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "i <emphasis>metodi produttori</emphasis> rendono possibile il "
+#~ "polimorfismo a runtime, e"
+
 # la gestione del ciclo di vita contestuale  o la gestione contestuale del ciclo di vita?
-#. Tag: para
-#: part2.xml:18
-#, no-c-format
-msgid "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean lifecycles."
-msgstr "<emphasis>la gestione contestuale del ciclo di vita</emphasis> disaccoppia i cicli di vita dei Web Bean"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>la gestione contestuale del ciclo di vita</emphasis> "
+#~ "disaccoppia i cicli di vita dei Web Bean"
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid "These techniques serve to enable loose coupling of client and server. The client is no longer tightly bound to an implementation of an API, nor is it required to manage the lifecycle of the server object. This approach lets <emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "Queste tecniche servono a realizzare l'accoppiamento debole (loose coupling) di client e server. Il client non è più strettamente legato all'implementazione di una API, né è tenuto a gestire il ciclo di vita dell'oggetto server. Questo approccio permette <emphasis>agli oggetti stateful di interagire come se fossero servizi</emphasis>."
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "Queste tecniche servono a realizzare l'accoppiamento debole (loose "
+#~ "coupling) di client e server. Il client non è più strettamente legato "
+#~ "all'implementazione di una API, né è tenuto a gestire il ciclo di vita "
+#~ "dell'oggetto server. Questo approccio permette <emphasis>agli oggetti "
+#~ "stateful di interagire come se fossero servizi</emphasis>."
 
 #  le funzionalità e gli strumenti sopraelencati
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system can respond to change in a well-defined manner. In the past, frameworks that attempted to provide the facilities listed above invariably did it by sacrificing type safety. Web Beans is the first technology that achieves this level of loose coupling in a typesafe way."
-msgstr "L'accoppiamento debole (loose coupling) rende un sistema più <emphasis>dinamico</emphasis>. Il sistema può rispondere ai cambiamenti in un modo ben definito. In passato, i framework che hanno cercato di fornire le funzionalità e gli strumenti sopraelencati, l'hanno puntualmente fatto a discapito della sicurezza dei tipi (type safety). Web Beans è la prima tecnologia a raggiungere questo livello di puntualmente accoppiamento debole (loose coupling) in modo sicuro rispetto all'uso dei tipi."
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "L'accoppiamento debole (loose coupling) rende un sistema più "
+#~ "<emphasis>dinamico</emphasis>. Il sistema può rispondere ai cambiamenti "
+#~ "in un modo ben definito. In passato, i framework che hanno cercato di "
+#~ "fornire le funzionalità e gli strumenti sopraelencati, l'hanno "
+#~ "puntualmente fatto a discapito della sicurezza dei tipi (type safety). "
+#~ "Web Beans è la prima tecnologia a raggiungere questo livello di "
+#~ "puntualmente accoppiamento debole (loose coupling) in modo sicuro "
+#~ "rispetto all'uso dei tipi."
 
 # sostengono o ampliano o aiutano...
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid "Web Beans provides three extra important facilities that further the goal of loose coupling:"
-msgstr "Web Beans fornisce tre strumenti extra importanti che ampliano l'obiettivo del loose coupling:"
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beans fornisce tre strumenti extra importanti che ampliano "
+#~ "l'obiettivo del loose coupling:"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic,"
-msgstr "gli <emphasis>interceptor</emphasis> disaccoppiano i problemi tecnici dalla business logic,"
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "gli <emphasis>interceptor</emphasis> disaccoppiano i problemi tecnici "
+#~ "dalla business logic,"
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> may be used to decouple some business concerns, and"
-msgstr "i <emphasis>decoratori</emphasis> possono essere usati per disaccoppiare alcuni problemi relativi alla business logic, e"
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "i <emphasis>decoratori</emphasis> possono essere usati per disaccoppiare "
+#~ "alcuni problemi relativi alla business logic, e"
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers."
-msgstr "le <emphasis>notifiche degli eventi</emphasis> disaccoppiano i produttori di eventi dai consumatori"
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "le <emphasis>notifiche degli eventi</emphasis> disaccoppiano i produttori "
+#~ "di eventi dai consumatori"
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "Innanzitutto esploriamo gli interceptor."
-
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "Innanzitutto esploriamo gli interceptor."

Modified: doc/trunk/reference/it-IT/part3.po
===================================================================
--- doc/trunk/reference/it-IT/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 20:46+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -13,110 +13,262 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-# strong typing?
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Il secondo tema saliente di Web Beans è lo <emphasis>tipizzazione forte (strong typing)</emphasis>. Le informazioni riguardanti dipendenze, interceptor e decorator di un Web Bean, e le informazioni sui i consumatori relativi ad un produttore di eventi, sono contenute in costrutti Java sicuri rispetto ai tipi (typesafe) che possono essere validati dal compilatore."
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "Non si vedono identificatori di tipo stringa nel codice basato su Web Beans, non perché il framework li nasconde usando regole intelligenti nell'assegnamento dei valori di default &#151; la cosiddetta \"configurazione per convenzione (configuration by convention)\" &#151; ma semplicemente perché non ci sono stringhe, tanto per cominciare!"
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
-# senza che sia necessario realizzare dei tools appositi
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "L'ovvio beneficio di questo approccio è che <emphasis>qualunque</emphasis> IDE può fornire autocompletamento, validazione e refactoring senza che sia necessario realizzare dei tool appositi. Ma c'è un secondo beneficio meno immediatamente ovvio. Si scopre che quando si incomincia a pensare di identificare oggetti, eventi o interceptor usando annotazioni invece di nomi, si ha l'opportunità di elevare il livello semantico del proprio codice."
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
-msgstr "Web Beans incoraggia a sviluppare annotazioni che modellano concetti, per esempio,"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:27
 #, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+# strong typing?
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Il secondo tema saliente di Web Beans è lo <emphasis>tipizzazione forte "
+"(strong typing)</emphasis>. Le informazioni riguardanti dipendenze, "
+"interceptor e decorator di un Web Bean, e le informazioni sui i consumatori "
+"relativi ad un produttore di eventi, sono contenute in costrutti Java sicuri "
+"rispetto ai tipi (typesafe) che possono essere validati dal compilatore."
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Non si vedono identificatori di tipo stringa nel codice basato su Web Beans, "
+"non perché il framework li nasconde usando regole intelligenti "
+"nell'assegnamento dei valori di default &#151; la cosiddetta "
+"\"configurazione per convenzione (configuration by convention)\" &#151; ma "
+"semplicemente perché non ci sono stringhe, tanto per cominciare!"
+
+# senza che sia necessario realizzare dei tools appositi
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"L'ovvio beneficio di questo approccio è che <emphasis>qualunque</emphasis> "
+"IDE può fornire autocompletamento, validazione e refactoring senza che sia "
+"necessario realizzare dei tool appositi. Ma c'è un secondo beneficio meno "
+"immediatamente ovvio. Si scopre che quando si incomincia a pensare di "
+"identificare oggetti, eventi o interceptor usando annotazioni invece di "
+"nomi, si ha l'opportunità di elevare il livello semantico del proprio codice."
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Web Beans incoraggia a sviluppare annotazioni che modellano concetti, per "
+"esempio,"
+
+#. Tag: para
+#: part3.xml:87
+#, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> or"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Secure</literal> or"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "invece di usare nomi composti come"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> or"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 # literate=elegante?
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "Le annotazioni sono riutilizzabili. Aiutano a descrivere caratteristiche comuni di parti diverse del sistema. Ci aiutano a categorizzare e comprendere il nostro stesso codice. Ci aiutano ad affrontare i concern comuni in un modo comune. Rendono il nostro codice più elegante e comprensibile."
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"Le annotazioni sono riutilizzabili. Aiutano a descrivere caratteristiche "
+"comuni di parti diverse del sistema. Ci aiutano a categorizzare e "
+"comprendere il nostro stesso codice. Ci aiutano ad affrontare i concern "
+"comuni in un modo comune. Rendono il nostro codice più elegante e "
+"comprensibile."
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Gli <emphasis>stereotipi (stereotypes)</emphasis> di Web Beans fanno fare un ulteriore passo in avanti a questa idea. Uno stereotipo descrive un <emphasis>ruolo</emphasis> comune nell'architettura di un'applicazione. Incapsula in un unico pacchetto riutilizzabile varie proprietà del ruolo stesso, inclusi lo scope, gli interceptor bindings, il tipo di deployment, etc, ."
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Gli <emphasis>stereotipi (stereotypes)</emphasis> di Web Beans fanno fare un "
+"ulteriore passo in avanti a questa idea. Uno stereotipo descrive un "
+"<emphasis>ruolo</emphasis> comune nell'architettura di un'applicazione. "
+"Incapsula in un unico pacchetto riutilizzabile varie proprietà del ruolo "
+"stesso, inclusi lo scope, gli interceptor bindings, il tipo di deployment, "
+"etc, ."
 
+#. Tag: para
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"Ora siamo pronti ad incontrare alcune caratteristiche più avanzate di Web "
+"Beans. Tenete a mente che tali caratteristiche esistono sia per rendere il "
+"nostro codice più facile da validare che per renderlo più comprensibile. La "
+"maggior parte delle volte non è necessario usare tali carattestiche, ma, se "
+"usate con accortezza, si arriverà ad apprezzerne l'efficacia."
+
 # literate=elegante (come in altri contesti)? oppure = letterato/informato/cosciente. Qui scelgo informato... nel senso di cosciente di se stesso.
 # l'XML=i descrittori XML, il codice XML?
-#. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "Persino i metadati XML di Web Beans sono fortemente tipizzati (strongly typed)! Non esistendo un compilatore XML, Web Beans si basa sugli schemi XML per validare i tipi Java e gli attributi che compaiono nell'XML. Questo approccio finisce col rendere il codice XML più informato, proprio come le annotazioni rendono il codice Java + informato."
-
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "Ora siamo pronti ad incontrare alcune caratteristiche più avanzate di Web Beans. Tenete a mente che tali caratteristiche esistono sia per rendere il nostro codice più facile da validare che per renderlo più comprensibile. La maggior parte delle volte non è necessario usare tali carattestiche, ma, se usate con accortezza, si arriverà ad apprezzerne l'efficacia."
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Persino i metadati XML di Web Beans sono fortemente tipizzati (strongly "
+#~ "typed)! Non esistendo un compilatore XML, Web Beans si basa sugli schemi "
+#~ "XML per validare i tipi Java e gli attributi che compaiono nell'XML. "
+#~ "Questo approccio finisce col rendere il codice XML più informato, proprio "
+#~ "come le annotazioni rendono il codice Java + informato."

Modified: doc/trunk/reference/it-IT/part4.po
===================================================================
--- doc/trunk/reference/it-IT/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-24 19:34+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,19 +16,74 @@
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
-msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
-msgstr "Il terzo tema di Web Beans è <emphasis>l'integrazione</emphasis>. Web Beans è stata progettata per funzionare in armonia con altre tecnologie, per aiutare lo sviluppatore a far funzionare assieme le altre tecnologie. Web Beans è una tecnologia aperta. Costituisce una parte dell'ecosistema Java EE, ed è essa stessa la fondazione di un nuovo ecosistema di estensioni portabili e di integrazioni con framework e tecnologie esistenti."
+msgid ""
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 # modelli a componenti o architetture a componenti?
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
-msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
-msgstr "Abbiamo già visto come Web Beans aiuti ad integrare EJB con JSF, permettendo agli EJB di essere legati direttamente alle pagine JSF. Questo non è che l'inizio. Web Beans offre le stesse potenzialità ad altre e diverse tecnologie, quali i motori di gestione di processi di business, altri Framework Web, e modelli a componenti di terze parti. La piattaforma Java EE non potrà mai standardizzare tutte le interessanti tecnologie utilizzate nel mondo dello sviluppo di applicazioni Java, ma Web Beans rende più facile usare in modo trasparente all'interno dell'ambiente Java EE tecnologie che non fanno ancora parte di tale ambiente."
+#, fuzzy, no-c-format
+msgid ""
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"Abbiamo già visto come Web Beans aiuti ad integrare EJB con JSF, permettendo "
+"agli EJB di essere legati direttamente alle pagine JSF. Questo non è che "
+"l'inizio. Web Beans offre le stesse potenzialità ad altre e diverse "
+"tecnologie, quali i motori di gestione di processi di business, altri "
+"Framework Web, e modelli a componenti di terze parti. La piattaforma Java EE "
+"non potrà mai standardizzare tutte le interessanti tecnologie utilizzate nel "
+"mondo dello sviluppo di applicazioni Java, ma Web Beans rende più facile "
+"usare in modo trasparente all'interno dell'ambiente Java EE tecnologie che "
+"non fanno ancora parte di tale ambiente."
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
-msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
-msgstr "Stiamo per scoprire come sfruttare appieno la piattaforma Java EE in applicazioni che usano  Web Beans. Scorreremo anche velocemente un insieme di SPI (Service Provider Interface) fornite per permettere la realizzazione di estensioni portabili di Web Beans. Potrebbe non essere mai necessario usare queste SPI direttamente, ma è opportuno sapere che esistono, qualora possano servire. Soprattutto, le si sfrutterà in modo indiretto ogni volta che si utilizzeranno estensioni di terze parti."
+#: part4.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"We're about to see how to take full advantage of the Java EE platform in an "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Stiamo per scoprire come sfruttare appieno la piattaforma Java EE in "
+"applicazioni che usano  Web Beans. Scorreremo anche velocemente un insieme "
+"di SPI (Service Provider Interface) fornite per permettere la realizzazione "
+"di estensioni portabili di Web Beans. Potrebbe non essere mai necessario "
+"usare queste SPI direttamente, ma è opportuno sapere che esistono, qualora "
+"possano servire. Soprattutto, le si sfrutterà in modo indiretto ogni volta "
+"che si utilizzeranno estensioni di terze parti."
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Il terzo tema di Web Beans è <emphasis>l'integrazione</emphasis>. Web "
+#~ "Beans è stata progettata per funzionare in armonia con altre tecnologie, "
+#~ "per aiutare lo sviluppatore a far funzionare assieme le altre tecnologie. "
+#~ "Web Beans è una tecnologia aperta. Costituisce una parte dell'ecosistema "
+#~ "Java EE, ed è essa stessa la fondazione di un nuovo ecosistema di "
+#~ "estensioni portabili e di integrazioni con framework e tecnologie "
+#~ "esistenti."

Modified: doc/trunk/reference/it-IT/part5.po
===================================================================
--- doc/trunk/reference/it-IT/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-31 10:42+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,13 +16,44 @@
 
 #. Tag: para
 #: part5.xml:5
-#, no-c-format
-msgid "Web Beans is the reference implementation of JSR-299, and is used by JBoss AS and Glassfish to provide JSR-299 services for Java Enterprise Edition applications. Web Beans also goes beyond the environments and APIs defined by the JSR-299 specification and provides support for a number of other environments (such as a servlet container such as Tomcat, or Java SE) and additional APIs and modules (such as logging, XSD generation for the JSR-299 XML deployment descriptors)."
-msgstr "Web Beans è la reference implementatio di JSR-299, ed è usata da JBoss AS e Glassfish per fornire i servizi JSR-299 per le applicazioni Java Enterprise Edition. Web Beans va oltre gli ambienti e le API definite dalla specifica JSR-299 e fornisce supporto ad un numero di altri ambienti (quali servlet container quali Tomcat o Java SE) ed API e moduli addizionali (quali il logging la generazione XSD per i descrittori di deploy XML JSR-299)."
+#, fuzzy, no-c-format
+msgid ""
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
+"environments (such as a servlet container such as Tomcat, or Java SE) and "
+"additional APIs and modules (such as logging and bean utilities)."
+msgstr ""
+"Web Beans è la reference implementatio di JSR-299, ed è usata da JBoss AS e "
+"Glassfish per fornire i servizi JSR-299 per le applicazioni Java Enterprise "
+"Edition. Web Beans va oltre gli ambienti e le API definite dalla specifica "
+"JSR-299 e fornisce supporto ad un numero di altri ambienti (quali servlet "
+"container quali Tomcat o Java SE) ed API e moduli addizionali (quali il "
+"logging la generazione XSD per i descrittori di deploy XML JSR-299)."
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
-msgid "If you want to get started quickly using Web Beans with JBoss AS or Tomcat and experiment with one of the examples, take a look at <xref linkend=\"ri\"/>. Otherwise read on for a exhaustive discussion of using Web Beans in all the environments and application servers it supports, as well the Web Beans extensions."
-msgstr "Se si vuole velocemente iniziare ad usare Web Beans con JBoss AS o Tomcat e provare con un esempio, si guardi in <xref linkend=\"ri\"/>. Altrimenti continuare a leggere la discussione esaustiva per usare Web Beans in tutti gli ambienti e gli application server che vengono supportati, così come le estensioni Web Beans."
+msgid ""
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
+msgstr ""
 
+#. Tag: para
+#: part5.xml:18
+#, fuzzy, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""
+"Se si vuole velocemente iniziare ad usare Web Beans con JBoss AS o Tomcat e "
+"provare con un esempio, si guardi in <xref linkend=\"ri\"/>. Altrimenti "
+"continuare a leggere la discussione esaustiva per usare Web Beans in tutti "
+"gli ambienti e gli application server che vengono supportati, così come le "
+"estensioni Web Beans."

Modified: doc/trunk/reference/it-IT/producermethods.po
===================================================================
--- doc/trunk/reference/it-IT/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-31 11:05+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,13 +21,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "I metodi produttori consentono di superare alcune limitazioni che sorgono "
 "quando il manager Web Bean è responsabile dell'istanziamento degli oggetti "
@@ -36,87 +35,83 @@
 "(Si incontrerà un secondo approccio in <xref linkend=\"xml\"/>.)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "Secondo la specifica:"
 
 #. Tag: para
-#: producermethods.xml:16
-#, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+#: producermethods.xml:18
+#, fuzzy, no-c-format
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 "Un metodo produttore Web Beans agisce come sorgente di oggetti da iniettare, "
 "dove:"
 
 #. Tag: para
-#: producermethods.xml:20
-#, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+#: producermethods.xml:22
+#, fuzzy, no-c-format
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr "gli oggetti da iniettare non sono richiesti come istanze di Web Beans,"
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr "il tipo concreto di oggetti da iniettare può variare a runtime o"
 
 #. Tag: para
-#: producermethods.xml:26
-#, no-c-format
+#: producermethods.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 "gli oggetti richiedono alcune inizializzazioni personalizzate che non "
 "vengono eseguite da costruttore Web Bean"
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "Per esempio, i metodi produttori consentono di:"
 
 #. Tag: para
-#: producermethods.xml:37
-#, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+#: producermethods.xml:40
+#, fuzzy, no-c-format
+msgid "expose a JPA entity as a bean,"
 msgstr "espone un entity JPA come Web Bean,"
 
 #. Tag: para
-#: producermethods.xml:40
-#, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+#: producermethods.xml:43
+#, fuzzy, no-c-format
+msgid "expose any JDK class as a bean,"
 msgstr "espone qualsiasi classe JDK come Web Bean,"
 
 #. Tag: para
-#: producermethods.xml:43
-#, no-c-format
+#: producermethods.xml:46
+#, fuzzy, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 "definisce più Web Bean con differenti scope o inizializzazioni, per la "
 "stessa classe di implementazione, o"
 
 #. Tag: para
-#: producermethods.xml:47
-#, no-c-format
-msgid "vary the implementation of an API type at runtime."
+#: producermethods.xml:51
+#, fuzzy, no-c-format
+msgid "vary the implementation of a bean type at runtime."
 msgstr "varia l'implementazione di un tipo di API a runtime."
 
 #. Tag: para
-#: producermethods.xml:51
-#, no-c-format
+#: producermethods.xml:55
+#, fuzzy, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 "In particolare i metodi produttori consentono l'uso del polimorfismo a "
 "runtime con Web Beans. Come visto, i tipi di deploy sono soluzioni potenti "
@@ -125,26 +120,22 @@
 "non ha tali limitazioni:"
 
 #. Tag: programlisting
-#: producermethods.xml:56
-#, no-c-format
+#: producermethods.xml:61
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -167,25 +158,25 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr "Si consideri un punto di iniezione:"
 
 #. Tag: programlisting
-#: producermethods.xml:60
-#, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+#: producermethods.xml:65
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
 
 #. Tag: para
-#: producermethods.xml:62
-#, no-c-format
+#: producermethods.xml:67
+#, fuzzy, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 "Il punto di iniezione ha lo stesso tipo e le stesse annotazioni di binding "
 "del metodo produttore, e quindi risolve il metodo produttore usando le "
@@ -194,19 +185,19 @@
 "iniezione:"
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "Scope di un metodo produttore"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "Lo scope dei metodi produttori è di default impostato a <literal>@Dependent</"
@@ -216,7 +207,7 @@
 "dell'oggetto <literal>PaymentStrategy</literal> per ogni sessione utente."
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -226,12 +217,12 @@
 "<literal>@SessionScoped</literal> al metodo."
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -240,7 +231,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -252,13 +243,13 @@
 "sessione. Il metodo produttore non verrà più chiamato nella stessa sessione."
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "Iniezione nei metodi produttori"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -274,29 +265,29 @@
 "interceptor."
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "Se questo non è ciò che si vuole, è possibile usare la dependency injection "
 "nel metodo produttore per ottenere istanze Web Bean:"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -312,17 +303,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "Ma cosa succede se <literal>CreditCardPaymentStrategy</literal> è un Web "
 "Bean con scope di tipo richiesta? Il metodo produttore ha l'effetto di "
@@ -334,13 +325,13 @@
 "Bean dai metodi produttori!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "Ci sono almeno 3 modi per correggere questo bug. Si può cambiare lo scope "
@@ -350,43 +341,43 @@
 "<literal>@Dependent</literal> o <literal>@RequestScoped</literal>."
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "Ma una soluzione più comune è quella di usare la speciale annotazione di "
 "binding <literal>@New</literal>."
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "Uso di <literal>@New</literal> con i metodi produttori"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "Si consideri il seguente metodo produttore:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -404,7 +395,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -420,6 +411,60 @@
 "L'oggetto dipendente non verrebbe distrutto finché l'oggetto "
 "<literal>Preferences</literal> non viene distrutto, cioè a fine sessione."
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "Metodi produttori"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/it-IT/resources.po
===================================================================
--- doc/trunk/reference/it-IT/resources.po	                        (rev 0)
+++ doc/trunk/reference/it-IT/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language it-IT translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/it-IT/ri-spi.po
===================================================================
--- doc/trunk/reference/it-IT/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-08 21:35+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,709 +15,1694 @@
 
 #. Tag: title
 #: ri-spi.xml:4
-#, no-c-format
-msgid "Integrating Web Beans into other environments"
+#, fuzzy, no-c-format
+msgid "Integrating Weld into other environments"
 msgstr "Integrazione di Web Beans in altri ambienti"
 
 #. Tag: para
 #: ri-spi.xml:6
 #, no-c-format
-msgid "Currently Web Beans only runs in JBoss AS 5; integrating the RI into other EE environments (for example another application server like Glassfish), into a servlet container (like Tomcat), or with an Embedded EJB3.1 implementation is fairly easy. In this Appendix we will briefly discuss the steps needed."
-msgstr "Attualmente Web Beans funziona solo in JBoss AS 5; l'integrazione di RI in altri ambienti EE (per esempio in un application server come Glassfish), in un servlet container (come Tomcat), o con un'implementazione EJB3.1 Embedded è abbastanza facile. In questo appendice si discuterà brevemente dei passi necessari."
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:15
-#, no-c-format
-msgid "The Web Beans SPI"
-msgstr "Web Beans SPI"
+#: ri-spi.xml:12
+#, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "Servizi di risorse"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:13
 #, no-c-format
-msgid "The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, if you need to override the default behavior, others are required."
-msgstr "Web Beans SPI è collocato nel modulo <literal>webbeans-spi</literal>, ed è impacchettato come <literal>webbeans-spi.jar</literal>. Alcuni SPI sono opzionali se occorre fare override del comportamento di default, altri sono richiesti."
+msgid ""
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:21
 #, no-c-format
-msgid "All interfaces in the SPI support the decorator pattern and provide a <literal>Forwarding</literal> class located in the <literal>helpers</literal> sub package. Additional, commonly used, utility classes, and standard implementations are also located in the <literal>helpers</literal> sub package."
-msgstr "Tutte le interfacce in SPI supportano il pattern decorator e forniscono una classe <literal>Forwarding</literal> situata nel sottopacchetto <literal>helpers</literal>. Anche altre classi utility ed implementazioni standard sono collocate nel sottopacchetto <literal>helpers</literal>."
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:33
-#, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean Discovery"
+#: ri-spi.xml:27
+#, fuzzy, no-c-format
+msgid "The Weld SPI"
+msgstr "Web Beans SPI"
 
-#. Tag: programlisting
+#. Tag: para
+#: ri-spi.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
+msgstr ""
+"Web Beans SPI è collocato nel modulo <literal>webbeans-spi</literal>, ed è "
+"impacchettato come <literal>webbeans-spi.jar</literal>. Alcuni SPI sono "
+"opzionali se occorre fare override del comportamento di default, altri sono "
+"richiesti."
+
+#. Tag: para
 #: ri-spi.xml:35
 #, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"All interfaces in the SPI support the decorator pattern and provide a "
+"<literal>Forwarding</literal> class located in the <literal>helpers</"
+"literal> sub package. Additional, commonly used, utility classes, and "
+"standard implementations are also located in the <literal>helpers</literal> "
+"sub package."
 msgstr ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"Tutte le interfacce in SPI supportano il pattern decorator e forniscono una "
+"classe <literal>Forwarding</literal> situata nel sottopacchetto "
+"<literal>helpers</literal>. Anche altre classi utility ed implementazioni "
+"standard sono collocate nel sottopacchetto <literal>helpers</literal>."
 
 #. Tag: para
-#: ri-spi.xml:37
-#, no-c-format
-msgid "The discovery of Web Bean classes and <literal>beans.xml</literal> files is self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 specification, and isn't repeated here)."
-msgstr "L'analisi dei file delle classi Web Bean e di <literal>beans.xml</literal> è molto istruttiva (l'algoritmo è descritto nella sezione 11.1 della specifica JSR-299 e non viene qua ripetuto)."
+#: ri-spi.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+"Il bootstrap supporta più ambienti. Un ambiente viene definito da "
+"un'implementazione dell'interfaccia <literal>Environment</literal>. Un "
+"numero di ambienti standard sono predefiniti nell'enumeration "
+"<literal>Environments</literal>. Diversi ambienti richiedono diversi servizi "
+"presenti (per esempio servlet non richiede i servizi di transazione, EJB o "
+"JPA). Di default viene assunto un ambiente EE, ma si può impostare un "
+"ambiente chiamando <literal>bootstrap.setEnvironment()</literal>."
 
+#. Tag: para
+#: ri-spi.xml:50
+#, fuzzy, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+"Web Beans usa un registro di servizio con tipo generico per consentire ai "
+"servizi di essere registrati. Tutti i servizi implementano l'interfaccia "
+"<literal>Service</literal>. Il registro di servizio consente ai servizio di "
+"essere aggiunti e recuperati."
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:56
 #, no-c-format
-msgid "EJB services"
-msgstr "Servizi EJB"
+msgid "Deployment structure"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:58
 #, no-c-format
-msgid "Web Beans will run without an EJB container; in this case you don't need to implement the EJB SPI."
-msgstr "Web Beans girerà senza EJB container; in questo caso non serve implementare EJB SPI."
+msgid ""
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
+#: ri-spi.xml:67
 #, no-c-format
-msgid "Web Beans also delegates EJB3 bean discovery to the container so that it doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</literal>. For each EJB in the application an EJBDescriptor should be discovered:"
-msgstr "Web Beans delega al container la rilevazione dei bean EJB3 e quindi risulta non essere necessario eseguire lo scan delle annotazioni EJB3 o fare il parsing di <literal>ejb-jar.xml</literal>. Per ciascun EJB nell'applicazione dovrebbe essere rilevato un EJBDescriptor:"
+msgid ""
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:62
+#. Tag: para
+#: ri-spi.xml:76
 #, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:85
 #, no-c-format
-msgid "The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should return the relevant metadata as defined in the EJB specification. In addition to these two interfaces, there is <literal>BusinessInterfaceDescriptor</literal> which represents a local business interface (encapsulating the interface class and jndi name used to look up an instance of the EJB)."
-msgstr "Il <literal>EjbDescriptor</literal> è abbastanza auto-esplicatorio e dovrebbe restituire i metadati rilevanti definiti nella specifica EJB. In aggiunta a queste due interfacce, vi è <literal>BusinessInterfaceDescriptor</literal> a rappresentare un'interfaccia locale di business (che incapsula la classe d'interfaccia ed il nome jndi usato per la ricerca di una istanza EJB)."
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:73
+#. Tag: title
+#: ri-spi.xml:92
 #, no-c-format
-msgid "The resolution of <literal>@EJB</literal> (for injection into simple beans), the resolution of local EJBs (for backing session beans) and remote EJBs (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>org.jboss.webbeans.ejb.spi.EjbServices</literal> which provides these operations. For resolving the <literal>@EJB</literal> injection point, Web Beans will provide the <literal>InjectionPoint</literal>; for resolving local EJBs, the <literal>EjbDescriptor</literal> will be provided, and for remote EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or <literal>ejbLink</literal> will be provided."
-msgstr "La risoluzione di <literal>@EJB</literal> (per l'injection in bean semplici), la risoluzione di EJB locali (per backing bean di sessione) ed EJB remoti (per l'injection come risorsa Java EE) è delegata al container. Occorre fornire un'implementazione di <literal>org.jboss.webbeans.ejb.spi.EjbServices</literal> che rende disponibili queste operazioni. Web Beans fornisce <literal>InjectionPoint</literal>; per risolvere gli EJB locali, viene fornito <literal>EjbDescriptor</literal>, e per gli EJB remoti vengono forniti <literal>jndiName</literal>, <literal>mappedName</literal>, o <literal>ejbLink</literal>."
+msgid "Virtual BDAs"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:93
 #, no-c-format
-msgid "When resolving local EJBs (used to back session beans) a wrapper (<literal>SessionObjectReference</literal>) around the EJB reference is returned. This wrapper allows Web Beans to request a reference that implements the given business interface, and, in the case of SFSBs, request the removal of the EJB from the container."
-msgstr "Risolvendo gli EJB locali (usati per mappare i session bean) viene restituito un wrapper (<literal>SessionObjectReference</literal>) attorno al riferimento EJB. Questo wrapper consente a Web Beans di richiedere un riferimento che implementi l'interfaccia di business data e, nel caso di SFSB, la richiesta di rimozione dell'EJB dal container."
+msgid ""
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
-#, no-c-format
-msgid "JPA services"
-msgstr "Servizi JPA"
-
 #. Tag: para
 #: ri-spi.xml:100
 #, no-c-format
-msgid "Just as EJB resolution is delegated to the container, resolution of <literal>@PersistenceContext</literal> for injection into simple beans (with the <literal>InjectionPoint</literal> provided), and resolution of persistence contexts and persistence units (with the <literal>unitName</literal> provided) for injection as a Java EE resource is delegated to the container."
-msgstr "Così come la risoluzione EJB è delegataal container, vengono delegate al container anche la risoluzione del <literal>@PersistenceContext</literal> per l'iniezione in semplici bean (con <literal>InjectionPoint</literal> fornito), e la risoluzione dei contesti di persistenza e delle unità di persistenza (con <literal>InjectionPoint</literal> fornito) per l'iniezione come risorse Java EE."
+msgid ""
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:106
 #, no-c-format
-msgid "To allow JPA integration, the <literal>JpaServices</literal> interface should be implemented."
-msgstr "Per consentire l'integrazione con JPA, deve essere implementata l'interfaccia <literal>JpaServices</literal>."
+msgid ""
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
+msgstr ""
 
 #. Tag: para
 #: ri-spi.xml:114
 #, no-c-format
-msgid "Web Beans also needs to know what entities are in a deployment (so that they aren't managed by Web Beans). An implementation that detects entities through <literal>@Entity</literal> and <literal>orm.xml</literal> is provided by default. If you want to provide support for a entities defined by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can wrap or replace the default implementation."
-msgstr "Web Beans necessitaanche di sapere quali entità sono in deploy (quindi non sono gestite da Web Beans). Un'implementazione che rileva le entità attraverso <literal>@Entity</literal> e <literal>orm.xml</literal> viene fornita di default. Se si vuole fornire support alle entity definite da un provider JPA (quali gli <literal>.hbm.xml</literal> di Hibernate) si può fare il wrap o sostituire l'implementazione di default."
+msgid ""
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
-#, no-c-format
-msgid "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
-msgstr "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
-
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:122
 #, no-c-format
-msgid "Transaction Services"
-msgstr "Servizi di transazione"
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:124
 #, no-c-format
-msgid "Web Beans must delegate JTA activities to the container. The SPI provides a couple hooks to easily achieve this with the <literal>TransactionServices</literal> interface."
-msgstr "Web Beans deve delegare le attività JTA al container. SPI fornisce un paio di modi per ottenere ciò tramite l'interfaccia <literal>TransactionServices</literal>."
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:132
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
 msgstr ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:138
 #, no-c-format
-msgid "The enumeration <literal>Status</literal> is a convenience for implementors to be able to keep track of whether a synchronization is supposed to notify an observer only when the transaction is successful, or after a failure, or regardless of the status of the transaction."
-msgstr "La enumeration <literal>Status</literal> serve agli implementatori per poter essere in grado di tracciare se una sincronizzazione deve notificare un osservatore solo quando la transazione ha avuto successo, o dopo un errore, o indipendentemente dallo stato della transazione."
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:144
 #, no-c-format
-msgid "Any <literal>javax.transaction.Synchronization</literal> implementation may be passed to the <literal>registerSynchronization()</literal> method and the SPI implementation should immediately register the synchronization with the JTA transaction manager used for the EJBs."
-msgstr "Qualsiasi implementazione di <literal>javax.transaction.Synchronization</literal> può essere passata al metodo <literal>registerSynchronization()</literal> e l'implementazione SPI deve immediatamente registrare la sincronizzazione con il gestore della transazione JTA usato per EJB."
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
 #. Tag: para
 #: ri-spi.xml:155
 #, no-c-format
-msgid "To make it easier to determine whether or not a transaction is currently active for the requesting thread, the <literal>isTransactionActive()</literal> method can be used. The SPI implementation should query the same JTA transaction manager used for the EJBs."
-msgstr "Per facilitare la determinazione se o no una transazione è attualmente attiva per il thread di richiesta, può essere usato il metodo <literal>isTransactionActive()</literal>. L'implementazione SPI deve interrogare lo stesso gestore della transazione JTA usato per EJB."
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
+"Il <literal>EjbDescriptor</literal> è abbastanza auto-esplicatorio e "
+"dovrebbe restituire i metadati rilevanti definiti nella specifica EJB. In "
+"aggiunta a queste due interfacce, vi è <literal>BusinessInterfaceDescriptor</"
+"literal> a rappresentare un'interfaccia locale di business (che incapsula la "
+"classe d'interfaccia ed il nome jndi usato per la ricerca di una istanza "
+"EJB)."
+
 #. Tag: title
-#: ri-spi.xml:165
+#: ri-spi.xml:169
 #, no-c-format
-msgid "JMS services"
-msgstr "Servizi JMS"
+msgid "EE resource injection and resolution services"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:171
 #, no-c-format
-msgid "A number of JMS operations are not container specific, and so should be provided via the SPI <literal>JmsServices</literal>. JMS does not specify how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a method which should be used to look up a factory. Web Beans also delegates <literal>Destination</literal> lookup to the container via the SPI."
-msgstr "Un numero di operazioni JMS non sono specifiche del container e dovrebbero essere fornite via <literal>JmsServices</literal> SPI. JMS non specifica come ottenere una <literal>ConnectionFactory</literal> quindi SPI fornisce un metodo che dovrebbe essere usato per cercare una factory. Web Beans delega anche la ricerca di <literal>Destination</literal> al container tramite SPI."
+msgid ""
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:178
+#. Tag: para
+#: ri-spi.xml:176
 #, no-c-format
-msgid "Resource Services"
-msgstr "Servizi di risorse"
+msgid ""
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:182
 #, no-c-format
-msgid "The resolution of <literal>@Resource</literal> (for injection into simple beans) and the resolution of resources (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>ResourceServices</literal> which provides these operations. For resolving the <literal>@Resource</literal> injection, Web Beans will provide the <literal>InjectionPoint</literal>; and for Java EE resources, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
-msgstr "La risoluzione di <literal>@Resource</literal> (per l'injection in bean semplici) e la risoluzione delle risorse (per l'injection come risorsa Java EE) è delegata al container. Occorre fornire un'implementazione di <literal>ResourceServices</literal> che rende disponibili queste operazioni. Per la risoluzione dell'injection <literal>@Resource</literal>, Web Beans fornirà l'<literal>InjectionPoint</literal>; e per le risorse Java EE, verrà fornito <literal>jndiName</literal> o <literal>mappedName</literal>"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:189
 #, no-c-format
-msgid "Web Services"
-msgstr "Web Service"
+msgid ""
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:195
 #, no-c-format
-msgid "The resolution of web service references (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>WebServices</literal> whichprovides this operation. For resolving the Java EE resource, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
-msgstr "La risoluzione di di riferimenti web service (per l'iniezione come risorse Java EE) è delegata al container. Occorre fornire un'implementazione di <literal>WebServices</literal> che rende disponibili queste operazioni. Per risolvere la risorsa Java EE verrà fornito <literal>jndiName</literal> o <literal>mappedName</literal>"
+msgid ""
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:201
+#, no-c-format
+msgid ""
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:210
 #, no-c-format
-msgid "The bean store"
-msgstr "Il bean store"
+msgid "EJB services"
+msgstr "Servizi EJB"
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:212
 #, no-c-format
-msgid "Web Beans uses a map like structure to store bean instances - <literal>org.jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
-msgstr "Web Beans utilizza una mappa come struttura per memorizzare le istanze bean - <literal>org.jboss.webbeans.context.api.BeanStore</literal>. Si potrebbe trovare molto utile <literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal>."
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
+msgstr ""
+"Risolvendo gli EJB locali (usati per mappare i session bean) viene "
+"restituito un wrapper (<literal>SessionObjectReference</literal>) attorno al "
+"riferimento EJB. Questo wrapper consente a Web Beans di richiedere un "
+"riferimento che implementi l'interfaccia di business data e, nel caso di "
+"SFSB, la richiesta di rimozione dell'EJB dal container."
+
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:234
 #, no-c-format
-msgid "The application context"
-msgstr "Il contesto applicazione"
+msgid "JPA services"
+msgstr "Servizi JPA"
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
+msgstr ""
+"Così come la risoluzione EJB è delegataal container, vengono delegate al "
+"container anche la risoluzione del <literal>@PersistenceContext</literal> "
+"per l'iniezione in semplici bean (con <literal>InjectionPoint</literal> "
+"fornito), e la risoluzione dei contesti di persistenza e delle unità di "
+"persistenza (con <literal>InjectionPoint</literal> fornito) per l'iniezione "
+"come risorse Java EE."
+
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
-msgid "Web Beans expects the Application Server or other container to provide the storage for each application's context. The <literal>org.jboss.webbeans.context.api.BeanStore</literal> should be implemented to provide an application scoped storage."
-msgstr "Web Beans si aspetta che l'Application Server od un altro container fornisca la memorizzazione per ogni contesto applicazione. <literal>org.jboss.webbeans.context.api.BeanStore</literal> dovrebbe essere implementato per fornire uno storage con scope applicazione."
+msgid ""
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:251
 #, no-c-format
-msgid "Bootstrap and shutdown"
-msgstr "Bootstrap e spegnimento"
+msgid "Transaction Services"
+msgstr "Servizi di transazione"
 
 #. Tag: para
-#: ri-spi.xml:232
-#, no-c-format
-msgid "The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), tell it about the SPIs in use, and then request the container start."
-msgstr "L'interfaccia <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> definisce il bootstrap per Web Beans. Per avviare Web Beans occorre ottenere un'istanza di <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</literal> (che implementa <literal>Boostrap</literal>), e comunicare le SPI in uso, e poi chiedere che il container venga avviato."
+#: ri-spi.xml:253
+#, fuzzy, no-c-format
+msgid ""
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
+msgstr ""
+"Web Beans deve delegare le attività JTA al container. SPI fornisce un paio "
+"di modi per ottenere ciò tramite l'interfaccia <literal>TransactionServices</"
+"literal>."
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:258
 #, no-c-format
-msgid "The bootstrap is split into phases, bootstrap initialization and boot and shutdown. Initialization will create a manager, and add the standard (specification defined) contexts. Bootstrap will discover EJBs, classes and XML; add beans defined using annotations; add beans defined using XML; and validate all beans."
-msgstr "Il bootstrap è suddiviso in più fasi, inizializzazione del bootstrap, bootstrap e shutdown. L'inizializzazione creerà un manager, e aggiungerà i contesti standard (definiti dalla specifica). Bootstrap scoprirà EJB, classi e XML; aggiungerà i bean definiti con le annotazioni; aggiungerà i bean definiti con XML; e validerà tutti i bean."
+msgid ""
+"Any <literal>javax.transaction.Synchronization</literal> implementation may "
+"be passed to the <literal>registerSynchronization()</literal> method and the "
+"SPI implementation should immediately register the synchronization with the "
+"JTA transaction manager used for the EJBs."
+msgstr ""
+"Qualsiasi implementazione di <literal>javax.transaction.Synchronization</"
+"literal> può essere passata al metodo <literal>registerSynchronization()</"
+"literal> e l'implementazione SPI deve immediatamente registrare la "
+"sincronizzazione con il gestore della transazione JTA usato per EJB."
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:264
 #, no-c-format
-msgid "The bootstrap supports multiple environments. An environment is defined by an implementation of the <literal>Environment</literal> interface. A number of standard envrionments are built in as the enumeration <literal>Environments</literal>. Different environments require different services to be present (for example servlet doesn't require transaction, EJB or JPA services). By default an EE environment is assumed, but you can adjust the environment by calling <literal>bootstrap.setEnvironment()</literal>."
-msgstr "Il bootstrap supporta più ambienti. Un ambiente viene definito da un'implementazione dell'interfaccia <literal>Environment</literal>. Un numero di ambienti standard sono predefiniti nell'enumeration <literal>Environments</literal>. Diversi ambienti richiedono diversi servizi presenti (per esempio servlet non richiede i servizi di transazione, EJB o JPA). Di default viene assunto un ambiente EE, ma si può impostare un ambiente chiamando <literal>bootstrap.setEnvironment()</literal>."
+msgid ""
+"To make it easier to determine whether or not a transaction is currently "
+"active for the requesting thread, the <literal>isTransactionActive()</"
+"literal> method can be used. The SPI implementation should query the same "
+"JTA transaction manager used for the EJBs."
+msgstr ""
+"Per facilitare la determinazione se o no una transazione è attualmente "
+"attiva per il thread di richiesta, può essere usato il metodo "
+"<literal>isTransactionActive()</literal>. L'implementazione SPI deve "
+"interrogare lo stesso gestore della transazione JTA usato per EJB."
 
+#. Tag: title
+#: ri-spi.xml:272
+#, no-c-format
+msgid "Resource Services"
+msgstr "Servizi di risorse"
+
 #. Tag: para
-#: ri-spi.xml:260
+#: ri-spi.xml:274
+#, fuzzy, no-c-format
+msgid ""
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
+msgstr ""
+"La risoluzione di di riferimenti web service (per l'iniezione come risorse "
+"Java EE) è delegata al container. Occorre fornire un'implementazione di "
+"<literal>WebServices</literal> che rende disponibili queste operazioni. Per "
+"risolvere la risorsa Java EE verrà fornito <literal>jndiName</literal> o "
+"<literal>mappedName</literal>"
+
+#. Tag: title
+#: ri-spi.xml:283
+#, fuzzy, no-c-format
+msgid "Injection Services"
+msgstr "Servizi di transazione"
+
+#. Tag: para
+#: ri-spi.xml:285
 #, no-c-format
-msgid "Web Beans uses a generic-typed service registry to allow services to be registered. All services implement the <literal>Service</literal> interface. The service registry allows services to be added and retrieved."
-msgstr "Web Beans usa un registro di servizio con tipo generico per consentire ai servizi di essere registrati. Tutti i servizi implementano l'interfaccia <literal>Service</literal>. Il registro di servizio consente ai servizio di essere aggiunti e recuperati."
+msgid ""
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:291
 #, no-c-format
-msgid "To initialize the bootstrap you call <literal>Bootstrap.initialize()</literal>. Before calling <literal>initialize()</literal>, you must register any services required by your environment. You can do this by calling <literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())</literal>. You must also provide the application context bean store."
-msgstr "Per inizializzare il bootstrap si chiama <literal>Bootstrap.initialize()</literal>. Prima della chiamata di <literal>initialize()</literal> occorre registrare i servizi richiesti dal proprio ambiente. Si può fare questo chiamando <literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())</literal>. Occorre anche fornire l'application context bean store."
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:298
 #, no-c-format
-msgid "Having called <literal>initialize()</literal>, the <literal>Manager</literal> can be obtained by calling <literal>Bootstrap.getManager()</literal>."
-msgstr "Dopo aver chiamato <literal>initialize()</literal>, il <literal>Manager</literal> può essere ottenuto chiamando <literal>Bootstrap.getManager()</literal>."
+msgid ""
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "Servizi di risorse"
+
 #. Tag: para
-#: ri-spi.xml:282
+#: ri-spi.xml:309
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
-msgstr "Per avviare il container chiamare <literal>Bootstrap.boot()</literal>."
+msgid ""
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:317
+#, fuzzy, no-c-format
+msgid "Bean Validation Services"
+msgstr "Servizi di transazione"
+
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:319
 #, no-c-format
-msgid "To shutdown the container you call <literal>Bootstrap.shutdown()</literal> or <literal>webBeansManager.shutdown()</literal>. This allows the container to perform any cleanup operations needed."
-msgstr "Per spegnere il container si chiama <literal>Bootstrap.shutdown()</literal> o <literal>webBeansManager.shutdown()</literal>. Questo consente al container di eseguire ogni pulizia necessaria delle operazioni."
+msgid ""
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:327
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Identifying the BDA being addressed"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:329
 #, no-c-format
-msgid "Web Beans delegates all JNDI operations to the container through the SPI."
-msgstr "Web Beans delega tutte le operazioni JNDI al container attraverso SPI."
+msgid ""
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:337
 #, no-c-format
-msgid "A number of the SPI interface require JNDI lookup, and the class <literal>AbstractResourceServices</literal> provides JNDI/Java EE spec compliant lookup methods."
-msgstr "Un numero di interfacce SPI richiede il lookup JNDI e la classe <literal>AbstractResourceServices</literal> fornisce metodi di lookup secondo la specifica JNDI/Java EE."
+msgid ""
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:343
 #, no-c-format
-msgid "Resource loading"
-msgstr "Caricamento risorse"
+msgid ""
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
+msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:317
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid "Web Beans needs to load classes and resources from the classpath at various times. By default, they are loaded from the Thread Context ClassLoader if available, if not the same classloader that was used to load Web Beans, however this may not be correct for some environments. If this is case, you can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
-msgstr "Web Beans deve caricare le classi e le risorse dal classpath in vari momenti. Di default vengono caricati dal Thread Context ClassLoader se disponibile, se non lo stesso classloader che è stato usato per caricare Web Beans, comunque questo potrebbe non essere corretto in alcuni ambienti. Se è questo il caso si può implementare  <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
 #. Tag: title
-#: ri-spi.xml:331
+#: ri-spi.xml:362
 #, no-c-format
-msgid "Servlet injection"
-msgstr "Iniezione dei servlet"
+msgid "The bean store"
+msgstr "Il bean store"
 
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:364
+#, fuzzy, no-c-format
+msgid ""
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
+msgstr ""
+"Web Beans utilizza una mappa come struttura per memorizzare le istanze bean "
+"- <literal>org.jboss.webbeans.context.api.BeanStore</literal>. Si potrebbe "
+"trovare molto utile <literal>org.jboss.webbeans.context.api.helpers."
+"ConcurrentHashMapBeanStore</literal>."
+
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "Java EE / Servlet does not provide any hooks which can be used to provide injection into Servlets, so Web Beans provides an API to allow the container to request JSR-299 injection for a Servlet."
-msgstr "Java EE / Servlet non fornisce alcun hook da usare per fornire l'iniezione nei Servlet, quindi Web Beans fornisce un'API per consentire al container di richiedere l'iniezione JSR-299 per un Servlet."
+msgid "The application context"
+msgstr "Il contesto applicazione"
 
 #. Tag: para
-#: ri-spi.xml:339
-#, no-c-format
-msgid "To be compliant with JSR-299, the container should request servlet injection for each newly instantiated servlet after the constructor returns and before the servlet is placed into service."
-msgstr "Per soddisfare la JSR-299 il container deve richiedere l'iniezione servlet per ogni nuovo servlet istanziato dopo che il costruttore ritorni e prima che il servlet sia messo in servizio."
+#: ri-spi.xml:374
+#, fuzzy, no-c-format
+msgid ""
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
+msgstr ""
+"Web Beans si aspetta che l'Application Server od un altro container fornisca "
+"la memorizzazione per ogni contesto applicazione. <literal>org.jboss."
+"webbeans.context.api.BeanStore</literal> dovrebbe essere implementato per "
+"fornire uno storage con scope applicazione."
 
+#. Tag: title
+#: ri-spi.xml:383
+#, fuzzy, no-c-format
+msgid "Initialization and shutdown"
+msgstr "Bootstrap e spegnimento"
+
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:384
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
+msgstr ""
+"L'interfaccia <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> "
+"definisce il bootstrap per Web Beans. Per avviare Web Beans occorre ottenere "
+"un'istanza di <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
+"literal> (che implementa <literal>Boostrap</literal>), e comunicare le SPI "
+"in uso, e poi chiedere che il container venga avviato."
+
+#. Tag: para
+#: ri-spi.xml:391
+#, fuzzy, no-c-format
+msgid ""
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
+msgstr ""
+"Il bootstrap è suddiviso in più fasi, inizializzazione del bootstrap, "
+"bootstrap e shutdown. L'inizializzazione creerà un manager, e aggiungerà i "
+"contesti standard (definiti dalla specifica). Bootstrap scoprirà EJB, classi "
+"e XML; aggiungerà i bean definiti con le annotazioni; aggiungerà i bean "
+"definiti con XML; e validerà tutti i bean."
+
+#. Tag: para
+#: ri-spi.xml:398
+#, fuzzy, no-c-format
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
+msgstr ""
+"Per inizializzare il bootstrap si chiama <literal>Bootstrap.initialize()</"
+"literal>. Prima della chiamata di <literal>initialize()</literal> occorre "
+"registrare i servizi richiesti dal proprio ambiente. Si può fare questo "
+"chiamando <literal>bootstrap.getServices().add(JpaServices.class, new "
+"MyJpaServices())</literal>. Occorre anche fornire l'application context bean "
+"store."
+
+#. Tag: para
+#: ri-spi.xml:405
+#, fuzzy, no-c-format
+msgid ""
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
+msgstr ""
+"Dopo aver chiamato <literal>initialize()</literal>, il <literal>Manager</"
+"literal> può essere ottenuto chiamando <literal>Bootstrap.getManager()</"
+"literal>."
+
+#. Tag: para
+#: ri-spi.xml:410
+#, fuzzy, no-c-format
+msgid ""
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
+msgstr "Per avviare il container chiamare <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
+msgstr "Per avviare il container chiamare <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:418
+#, fuzzy, no-c-format
+msgid ""
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
+msgstr "Per avviare il container chiamare <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
+msgstr ""
+"Per spegnere il container si chiama <literal>Bootstrap.shutdown()</literal> "
+"o <literal>webBeansManager.shutdown()</literal>. Questo consente al "
+"container di eseguire ogni pulizia necessaria delle operazioni."
+
+#. Tag: title
+#: ri-spi.xml:431
 #, no-c-format
-msgid "To perform injection on a servlet call <literal>WebBeansManager.injectServlet()</literal>. The manager can be obtained from <literal>Bootstrap.getManager()</literal>."
-msgstr "Per eseguire l'iniezione su un servlet si chiami <literal>WebBeansManager.injectServlet()</literal>. Il manager può essere ottenuto da <literal>Bootstrap.getManager()</literal>."
+msgid "Resource loading"
+msgstr "Caricamento risorse"
 
+#. Tag: para
+#: ri-spi.xml:433
+#, fuzzy, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+"Web Beans deve caricare le classi e le risorse dal classpath in vari "
+"momenti. Di default vengono caricati dal Thread Context ClassLoader se "
+"disponibile, se non lo stesso classloader che è stato usato per caricare Web "
+"Beans, comunque questo potrebbe non essere corretto in alcuni ambienti. Se è "
+"questo il caso si può implementare  <literal>org.jboss.webbeans.spi."
+"ResourceLoader</literal>:"
+
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:445
 #, no-c-format
 msgid "The contract with the container"
 msgstr "Il contratto con il container"
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
-msgid "There are a number of requirements that the Web Beans RI places on the container for correct functioning that fall outside implementation of APIs"
-msgstr "Per il corretto funzionamento al di fuori dell'implementazione delle API, ci sono un numero di requisiti che Web Beans RI pone nel container."
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
+msgid ""
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
+msgstr ""
+"Per il corretto funzionamento al di fuori dell'implementazione delle API, ci "
+"sono un numero di requisiti che Web Beans RI pone nel container."
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Isolamento del classloader"
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
-msgid "If you are integrating the Web Beans RI into an environment that supports deployment of multiple applications, you must enable, automatically, or through user configuation, classloader isolation for each Web Beans application."
-msgstr "Se si integra Web Beans in un ambiente che supporta il deploy di applicazioni, occorre abilitare, automaticamente o attraverso la configurazione utente, l'isolamento del classloader per ogni applicazione Web Beans."
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
+msgstr ""
+"Se si integra Web Beans in un ambiente che supporta il deploy di "
+"applicazioni, occorre abilitare, automaticamente o attraverso la "
+"configurazione utente, l'isolamento del classloader per ogni applicazione "
+"Web Beans."
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr "Servlet"
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
+msgstr ""
+"Se si integra Web Beans in un ambiente Servlet occorre registrare "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> come Servlet "
+"listener, o automaticamente, o attraverso una configurazione utente, per "
+"ciascuna applicazione Web Beans che usa Servlet."
+
+#. Tag: para
+#: ri-spi.xml:475
 #, no-c-format
-msgid "If you are integrating the Web Beans into a Servlet environment you must register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses Servlet."
-msgstr "Se si integra Web Beans in un ambiente Servlet occorre registrare <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> come Servlet listener, o automaticamente, o attraverso una configurazione utente, per ciascuna applicazione Web Beans che usa Servlet."
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr "<term>JSF</term>"
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
+msgstr ""
+"Se si integra Web Beans in un ambiente Servlet occorre registrare "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> come Servlet "
+"listener, o automaticamente, o attraverso una configurazione utente, per "
+"ciascuna applicazione Web Beans che usa Servlet."
+
+#. Tag: para
+#: ri-spi.xml:492
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Se si integra Web Beans in un ambiente Servlet occorre registrare "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> come Servlet "
+"listener, o automaticamente, o attraverso una configurazione utente, per "
+"ciascuna applicazione Web Beans che usa Servlet."
+
+#. Tag: para
+#: ri-spi.xml:497
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</literal> as an EL resolver, either automatically, or through user configuration, for each Web Beans application which uses JSF."
-msgstr "Se si integra Web Beans in un ambiente JSF occorre registrare <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> come phase listener, e <literal>org.jboss.webbeans.el.WebBeansELREsolver</literal> come EL resolver, sia automaticamente, o attraverso la configurazione utente, per ogni applicazione Web Beans che usa JSF."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:504
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses JSF. This filter can be registered for all Servlet deployment safely."
-msgstr "Se si integra Web Beans in un ambiente Servlet occorre registrare <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal> come Servlet listener, o automaticamente, o attraverso una configurazione utente, per ciascuna applicazione Web Beans che usa JSF. Questo filtro può venir registrato in modo sicuro per tutti i deploy dei servlet."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:511 ri-spi.xml:557
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"Se si integra Web Beans in un ambiente Servlet occorre registrare "
+"<literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal> "
+"come Servlet listener, o automaticamente, o attraverso una configurazione "
+"utente, per ciascuna applicazione Web Beans che usa JSF. Questo filtro può "
+"venir registrato in modo sicuro per tutti i deploy dei servlet."
+
+#. Tag: para
+#: ri-spi.xml:526
+#, fuzzy, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
 msgstr "Web Beans supporta solo JSF 1.2 e superiori."
 
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
+#, fuzzy, no-c-format
+msgid "<term>JSP</term>"
+msgstr "<term>JSF</term>"
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Se si integra Web Beans in un ambiente Servlet occorre registrare "
+"<literal>org.jboss.webbeans.servlet.WebBeansListener</literal> come Servlet "
+"listener, o automaticamente, o attraverso una configurazione utente, per "
+"ciascuna applicazione Web Beans che usa Servlet."
+
+#. Tag: para
+#: ri-spi.xml:543
 #, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Session Bean Interceptor"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
-msgid "If you are integrating the Web Beans into an EJB environment you must register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as a EJB interceptor for all EJBs in the application, either automatically, or through user configuration, for each Web Beans application which uses enterprise beans."
-msgstr "Se si integra Web Beans in un ambiente EJB occorre registrare <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> come interceptor EJB per ogni EJB dell'applicazione, o automaticamente o attraverso una configurazione utente, per ciascuna applicazione Web Beans che utilizza bean enterprise."
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
+msgstr ""
+"Se si integra Web Beans in un ambiente EJB occorre registrare <literal>org."
+"jboss.webbeans.ejb.SessionBeanInterceptor</literal> come interceptor EJB per "
+"ogni EJB dell'applicazione, o automaticamente o attraverso una "
+"configurazione utente, per ciascuna applicazione Web Beans che utilizza bean "
+"enterprise."
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
-msgid "You must register the <literal>SessionBeanInterceptor</literal> as the inner most interceptor in the stack for all EJBs."
-msgstr "Occorre registrare il <literal>SessionBeanInterceptor</literal> come interceptor più interno allo stack per tutti gli EJB."
+msgid ""
+"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
+"most interceptor in the stack for all EJBs."
+msgstr ""
+"Occorre registrare il <literal>SessionBeanInterceptor</literal> come "
+"interceptor più interno allo stack per tutti gli EJB."
 
 #. Tag: term
-#: ri-spi.xml:450
-#, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+#: ri-spi.xml:586
+#, fuzzy, no-c-format
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "<literal>webbeans-core.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
+#: ri-spi.xml:590
 #, no-c-format
-msgid "If you are integrating the Web Beans into an environment that supports deployment of applications, you must insert the <literal>webbeans-core.jar</literal> into the applications isolated classloader. It cannot be loaded from a shared classloader."
-msgstr "Se si integra Web Beans in un ambiente che supporta il deploy di applicazioni, occorre inserire <literal>webbeans-core.jar</literal> nel classloader isolato delle applicazioni. Non può essere caricato da un classloader condiviso."
+msgid ""
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr "Associare il manager a JNDI"
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
+#, fuzzy, no-c-format
+msgid ""
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
+msgstr ""
+"Occorre associare <literal>Reference</literal> al Manager "
+"<literal>ObjectFactory</literal> in JNDI all'indirizzo <literal>java:app/"
+"Manager</literal>. Il tipo dovrebbe essere <literal>javax.inject.manager."
+"Manager</literal> e la classe di factory è <literal>org.jboss.webbeans."
+"resources.ManagerObjectFactory</literal>"
+
+#. Tag: term
+#: ri-spi.xml:622
 #, no-c-format
-msgid "You should bind a <literal>Reference</literal> to the Manager <literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</literal>. The type should be <literal>javax.inject.manager.Manager</literal> and the factory class is <literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>"
-msgstr "Occorre associare <literal>Reference</literal> al Manager <literal>ObjectFactory</literal> in JNDI all'indirizzo <literal>java:app/Manager</literal>. Il tipo dovrebbe essere <literal>javax.inject.manager.Manager</literal> e la classe di factory è <literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>"
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "Attualmente Web Beans funziona solo in JBoss AS 5; l'integrazione di RI "
+#~ "in altri ambienti EE (per esempio in un application server come "
+#~ "Glassfish), in un servlet container (come Tomcat), o con "
+#~ "un'implementazione EJB3.1 Embedded è abbastanza facile. In questo "
+#~ "appendice si discuterà brevemente dei passi necessari."
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean Discovery"
+
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "L'analisi dei file delle classi Web Bean e di <literal>beans.xml</"
+#~ "literal> è molto istruttiva (l'algoritmo è descritto nella sezione 11.1 "
+#~ "della specifica JSR-299 e non viene qua ripetuto)."
+
+#~ msgid ""
+#~ "Web Beans will run without an EJB container; in this case you don't need "
+#~ "to implement the EJB SPI."
+#~ msgstr ""
+#~ "Web Beans girerà senza EJB container; in questo caso non serve "
+#~ "implementare EJB SPI."
+
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Web Beans delega al container la rilevazione dei bean EJB3 e quindi "
+#~ "risulta non essere necessario eseguire lo scan delle annotazioni EJB3 o "
+#~ "fare il parsing di <literal>ejb-jar.xml</literal>. Per ciascun EJB "
+#~ "nell'applicazione dovrebbe essere rilevato un EJBDescriptor:"
+
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+
+#~ msgid ""
+#~ "The resolution of <literal>@EJB</literal> (for injection into simple "
+#~ "beans), the resolution of local EJBs (for backing session beans) and "
+#~ "remote EJBs (for injection as a Java EE resource) is delegated to the "
+#~ "container. You must provide an implementation of <literal>org.jboss."
+#~ "webbeans.ejb.spi.EjbServices</literal> which provides these operations. "
+#~ "For resolving the <literal>@EJB</literal> injection point, Web Beans will "
+#~ "provide the <literal>InjectionPoint</literal>; for resolving local EJBs, "
+#~ "the <literal>EjbDescriptor</literal> will be provided, and for remote "
+#~ "EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or "
+#~ "<literal>ejbLink</literal> will be provided."
+#~ msgstr ""
+#~ "La risoluzione di <literal>@EJB</literal> (per l'injection in bean "
+#~ "semplici), la risoluzione di EJB locali (per backing bean di sessione) ed "
+#~ "EJB remoti (per l'injection come risorsa Java EE) è delegata al "
+#~ "container. Occorre fornire un'implementazione di <literal>org.jboss."
+#~ "webbeans.ejb.spi.EjbServices</literal> che rende disponibili queste "
+#~ "operazioni. Web Beans fornisce <literal>InjectionPoint</literal>; per "
+#~ "risolvere gli EJB locali, viene fornito <literal>EjbDescriptor</literal>, "
+#~ "e per gli EJB remoti vengono forniti <literal>jndiName</literal>, "
+#~ "<literal>mappedName</literal>, o <literal>ejbLink</literal>."
+
+#~ msgid ""
+#~ "To allow JPA integration, the <literal>JpaServices</literal> interface "
+#~ "should be implemented."
+#~ msgstr ""
+#~ "Per consentire l'integrazione con JPA, deve essere implementata "
+#~ "l'interfaccia <literal>JpaServices</literal>."
+
+#~ msgid ""
+#~ "Web Beans also needs to know what entities are in a deployment (so that "
+#~ "they aren't managed by Web Beans). An implementation that detects "
+#~ "entities through <literal>@Entity</literal> and <literal>orm.xml</"
+#~ "literal> is provided by default. If you want to provide support for a "
+#~ "entities defined by a JPA provider (such as Hibernate's <literal>.hbm."
+#~ "xml</literal> you can wrap or replace the default implementation."
+#~ msgstr ""
+#~ "Web Beans necessitaanche di sapere quali entità sono in deploy (quindi "
+#~ "non sono gestite da Web Beans). Un'implementazione che rileva le entità "
+#~ "attraverso <literal>@Entity</literal> e <literal>orm.xml</literal> viene "
+#~ "fornita di default. Se si vuole fornire support alle entity definite da "
+#~ "un provider JPA (quali gli <literal>.hbm.xml</literal> di Hibernate) si "
+#~ "può fare il wrap o sostituire l'implementazione di default."
+
+#~ msgid ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "The enumeration <literal>Status</literal> is a convenience for "
+#~ "implementors to be able to keep track of whether a synchronization is "
+#~ "supposed to notify an observer only when the transaction is successful, "
+#~ "or after a failure, or regardless of the status of the transaction."
+#~ msgstr ""
+#~ "La enumeration <literal>Status</literal> serve agli implementatori per "
+#~ "poter essere in grado di tracciare se una sincronizzazione deve "
+#~ "notificare un osservatore solo quando la transazione ha avuto successo, o "
+#~ "dopo un errore, o indipendentemente dallo stato della transazione."
+
+#~ msgid "JMS services"
+#~ msgstr "Servizi JMS"
+
+#~ msgid ""
+#~ "A number of JMS operations are not container specific, and so should be "
+#~ "provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
+#~ "how to obtain a <literal>ConnectionFactory</literal> so the SPI provides "
+#~ "a method which should be used to look up a factory. Web Beans also "
+#~ "delegates <literal>Destination</literal> lookup to the container via the "
+#~ "SPI."
+#~ msgstr ""
+#~ "Un numero di operazioni JMS non sono specifiche del container e "
+#~ "dovrebbero essere fornite via <literal>JmsServices</literal> SPI. JMS non "
+#~ "specifica come ottenere una <literal>ConnectionFactory</literal> quindi "
+#~ "SPI fornisce un metodo che dovrebbe essere usato per cercare una factory. "
+#~ "Web Beans delega anche la ricerca di <literal>Destination</literal> al "
+#~ "container tramite SPI."
+
+#~ msgid ""
+#~ "The resolution of <literal>@Resource</literal> (for injection into simple "
+#~ "beans) and the resolution of resources (for injection as a Java EE "
+#~ "resource) is delegated to the container. You must provide an "
+#~ "implementation of <literal>ResourceServices</literal> which provides "
+#~ "these operations. For resolving the <literal>@Resource</literal> "
+#~ "injection, Web Beans will provide the <literal>InjectionPoint</literal>; "
+#~ "and for Java EE resources, the <literal>jndiName</literal> or "
+#~ "<literal>mappedName</literal> will be provided."
+#~ msgstr ""
+#~ "La risoluzione di <literal>@Resource</literal> (per l'injection in bean "
+#~ "semplici) e la risoluzione delle risorse (per l'injection come risorsa "
+#~ "Java EE) è delegata al container. Occorre fornire un'implementazione di "
+#~ "<literal>ResourceServices</literal> che rende disponibili queste "
+#~ "operazioni. Per la risoluzione dell'injection <literal>@Resource</"
+#~ "literal>, Web Beans fornirà l'<literal>InjectionPoint</literal>; e per le "
+#~ "risorse Java EE, verrà fornito <literal>jndiName</literal> o "
+#~ "<literal>mappedName</literal>"
+
+#~ msgid "Web Services"
+#~ msgstr "Web Service"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "Web Beans delegates all JNDI operations to the container through the SPI."
+#~ msgstr ""
+#~ "Web Beans delega tutte le operazioni JNDI al container attraverso SPI."
+
+#~ msgid ""
+#~ "A number of the SPI interface require JNDI lookup, and the class "
+#~ "<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
+#~ "compliant lookup methods."
+#~ msgstr ""
+#~ "Un numero di interfacce SPI richiede il lookup JNDI e la classe "
+#~ "<literal>AbstractResourceServices</literal> fornisce metodi di lookup "
+#~ "secondo la specifica JNDI/Java EE."
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#~ msgid "Servlet injection"
+#~ msgstr "Iniezione dei servlet"
+
+#~ msgid ""
+#~ "Java EE / Servlet does not provide any hooks which can be used to provide "
+#~ "injection into Servlets, so Web Beans provides an API to allow the "
+#~ "container to request JSR-299 injection for a Servlet."
+#~ msgstr ""
+#~ "Java EE / Servlet non fornisce alcun hook da usare per fornire "
+#~ "l'iniezione nei Servlet, quindi Web Beans fornisce un'API per consentire "
+#~ "al container di richiedere l'iniezione JSR-299 per un Servlet."
+
+#~ msgid ""
+#~ "To be compliant with JSR-299, the container should request servlet "
+#~ "injection for each newly instantiated servlet after the constructor "
+#~ "returns and before the servlet is placed into service."
+#~ msgstr ""
+#~ "Per soddisfare la JSR-299 il container deve richiedere l'iniezione "
+#~ "servlet per ogni nuovo servlet istanziato dopo che il costruttore ritorni "
+#~ "e prima che il servlet sia messo in servizio."
+
+#~ msgid ""
+#~ "To perform injection on a servlet call <literal>WebBeansManager."
+#~ "injectServlet()</literal>. The manager can be obtained from "
+#~ "<literal>Bootstrap.getManager()</literal>."
+#~ msgstr ""
+#~ "Per eseguire l'iniezione su un servlet si chiami <literal>WebBeansManager."
+#~ "injectServlet()</literal>. Il manager può essere ottenuto da "
+#~ "<literal>Bootstrap.getManager()</literal>."
+
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "Se si integra Web Beans in un ambiente JSF occorre registrare "
+#~ "<literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> come "
+#~ "phase listener, e <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
+#~ "literal> come EL resolver, sia automaticamente, o attraverso la "
+#~ "configurazione utente, per ogni applicazione Web Beans che usa JSF."
+
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "Se si integra Web Beans in un ambiente che supporta il deploy di "
+#~ "applicazioni, occorre inserire <literal>webbeans-core.jar</literal> nel "
+#~ "classloader isolato delle applicazioni. Non può essere caricato da un "
+#~ "classloader condiviso."
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "
@@ -727,12 +1712,14 @@
 #~ "occorre molto lavoro per aggiungere i propri contesti ed il ciclo di "
 #~ "vita. Web Beans RI attualmente non espone punti di estensione del ciclo "
 #~ "di vita, così occorre codificare direttamente nelle classi Web Beans RI."
+
 #~ msgid ""
 #~ "All interfaces in the SPI support the decorator pattern and provide a "
 #~ "<literal>Forwarding</literal> class."
 #~ msgstr ""
 #~ "Tutte le interfacce in SPI supportano il pattern decorator e forniscono "
 #~ "una classe <literal>Forwarding</literal>."
+
 #~ msgid ""
 #~ "<![CDATA[public interface EjbServices\n"
 #~ "{\n"
@@ -753,4 +1740,3 @@
 #~ "    * @return The bean class to descriptor map \n"
 #~ "    */\n"
 #~ "   public Iterable<EjbDescriptor<?>> discoverEjbs();]]>"
-

Modified: doc/trunk/reference/it-IT/scopescontexts.po
===================================================================
--- doc/trunk/reference/it-IT/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-26 13:03+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,20 +14,19 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "Scope e contesti"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "Finora si sono visti pochi esempi di <emphasis>annotazioni di tipi di scope</"
 "emphasis>. Gli scope di un Web Bean determinano il ciclo di vita del Web "
@@ -35,32 +34,32 @@
 "istanze di Web Bean. Secondo la specifica Web Bean, uno scope determina:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "Quando una nuova istanza di un Web Bean con tale scope viene creata"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr ""
 "Quando un'istanza esistente di un Web Bean con tale scope viene distrutta"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 "Quali riferimenti iniettati puntano a istanze di un Web Bean con tale scope"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -74,30 +73,38 @@
 "<literal>CurrentUser</literal>, e verrà distrutta automaticamente quando la "
 "sessione termina. "
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "Tipi di scope"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Bean fornisce un <emphasis>modello di contesto estensibile</emphasis>. "
 "E' possibile definire nuovi scope creando una nuova annotazione di un tipo "
 "di scope."
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -106,13 +113,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "Sicuramente questa è la parte facile del lavoro. Affinché questo tipo di "
 "scope sia utile, avremo bisogno di definire un oggetto <literal>Contesto</"
@@ -120,17 +129,17 @@
 "literal> è compito molto tecnico, inteso solo per lo sviluppo di framework."
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Si può applicare un'annotazione con un tipo scope ad una classe di "
 "implementazione Web Bean per specificare lo scope del Web Bean:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -140,55 +149,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "Solitamente si userà uno degli scopi predefiniti di Web Beans."
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "Scope predefiniti"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beans definisce quattro scope predefiniti:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Per un'applicazione web che impiega Web Beans:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -198,55 +207,63 @@
 "e applicazione e, in aggiunta"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "qualsiasi richiesta JSF ha accesso allo scope attivo di conversazione"
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "Gli scope di richiesta ed applicazione sono pure attivi:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "durante le invocazioni a metodi remoti EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "durante i timeout EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "durante la consegna dei messaggi a bean message-drive, e"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "durante invocazioni web service."
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "Se l'applicazione prova ad invocare un Web Bean con scope che non ha un "
 "contesto attivo, una <literal>ContextNotActiveException</literal> viene "
 "lanciata a runtime dal manager Web Bean."
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -258,19 +275,19 @@
 "Uno degli scope è comunque nuovo."
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "Lo scope conversazione"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Lo scope di conversazione di Web Beans è un pò come il tradizionale scope di "
 "sessione in cui viene mantenuto lo stato associato all'utente del sistema, e "
@@ -278,29 +295,28 @@
 "scope di sessione, lo scope di conversazione:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "è demarcato esplicitamente dall'applicazione, e"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"mantiene lo stato associato ad un particolare tab del browser in "
-"un'applicazione JSF"
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "Una conversazione rappresenta un task, un'unità di lavoro dal punto di vista "
 "dell'utente. Il contesto di conversazione mantiene uno stato associato "
@@ -308,10 +324,10 @@
 "contemporaneamente ci saranno più conversazioni."
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -323,31 +339,30 @@
 "running</emphasis>."
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "Demarcazione della conversazione"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans fornisce un Web Bean predefinito per controllare il ciclo di vita "
 "delle conversazioni in un'applicazione JSF. QUesto Web Bean può essere "
 "ottenuto per iniezione:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -362,49 +377,47 @@
 "conversazione long-running, si chiami <literal>end()</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "Nel seguente esempio un Web Bean con scope di conversazione controlla la "
 "conversazione alla quale è associato:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -438,45 +451,45 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Questo Web Bean è capace di controlla il proprio ciclo di vita attraverso "
 "l'uso della API <literal>Conversation</literal>. Ma altri Web BEan hanno un "
 "ciclo di vita che dipende completamente da un altro oggetto."
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "Propagazione della conversazione"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "Il contesto di conversazione viene automaticamente propagato con ogni "
 "richiesta JSF faces (invio di form JSF). Non si propaga in modo automatico "
 "con richiesta non-faces, per esempio, navigazione tramite un link."
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "E' possibile forzare la conversazione da propagare tramite richiesta non-"
 "faces attraverso l'inclusione di un identificatore univoco della "
@@ -487,13 +500,13 @@
 "<literal>conversation</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "Quindi il seguente link propaga la conversazione:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -503,15 +516,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "Il manager Web Bean deve propagare le conversazioni attraverso i redirect, "
 "anche se la conversazione non è marcata long-running. Questo rende facile "
 "implementare il comune pattern POST-then-redirect, senza impiegare fragili "
@@ -519,20 +546,21 @@
 "aggiunge automaticamente un parametro di richiesta all'URL di redirect."
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "Timeout della conversazione"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Al manager Web Bean è permesso di distruggere una conversazione e tutto lo "
 "stato mantenuto nel contesto in qualsiasi momento al fine di preservare le "
@@ -542,11 +570,11 @@
 "venga distrutta."
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "L'oggetto <literal>Conversation</literal> fornisce un metodo per impostare "
@@ -554,133 +582,106 @@
 "di ignorare quest'impostazione."
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "Pseudo-scope dipendente"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "In aggiunta ai quattro scope predefiniti, Web Bean fornisce il cosiddetto "
 "<emphasis>pseudo-scope dipendente</emphasis>. Questo è lo scope di default "
 "per un Web Bean che non dichiara esplicitamente un tipo di scope."
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "Per esempio questo Web Bean ha uno scope di tipo <literal>@Dependent</"
 "literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Quando un punto di iniezione di un Web Bean risolve verso un Web Bean "
-"dipendente, viene creata una nuova istanza di Web Bean dipendente ogni volta "
-"che il primo Web Bean viene istanziato. Le istanze dei Web Beans dipendenti "
-"non vengono mai condivise tra Web Bean differenti o punti di iniezione "
-"differenti. Sono <emphasis>oggetti dipendenti</emphasis> di altre istanze "
-"Web Bean."
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"Istanze Web Bean dipendenti vengono distrutte quando viene distrutta "
-"l'istanza da cui dipendono."
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Beans facilità l'ottenimento di un'istanza dipendente di una classe Java "
 "o bean EJB, anche se la classe o bean EJB sono già dichiarati come Web Bean "
 "con qualche altro tipo di scope."
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "Annotazione <literal>@New</literal>"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"L'annotazione predefinita di binding <literal>@New</literal> consente la "
-"definizione<emphasis>implicita</emphasis> di un Web Bean dipendente in un "
-"punti di iniezione. Si supponga di dichiarare il seguentecampo iniettato:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"Allora viene implicitamente definito il Web Bean con scope "
-"<literal>@Dependent</literal>, tipo di binding  <literal>@New</literal>, "
-"tipo di API <literal>Calculator</literal>, classe di implementazione "
-"<literal>Calculator</literal> e tipo di deploy <literal>@Standard</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "Questo è vero se <literal>Calculator</literal> è <emphasis>già</emphasis> "
 "dichiarato con un tipo di scope differente, per esempio:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -690,7 +691,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -700,14 +701,12 @@
 "<literal>Calculator</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -718,7 +717,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -733,7 +732,7 @@
 "<literal>PaymentCalc</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
@@ -741,3 +740,53 @@
 msgstr ""
 "Questa caratteristica è particolarmente utile con i metodi produttori, come "
 "si vedrà nel prossimo capitolo."
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "mantiene lo stato associato ad un particolare tab del browser in "
+#~ "un'applicazione JSF"
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Quando un punto di iniezione di un Web Bean risolve verso un Web Bean "
+#~ "dipendente, viene creata una nuova istanza di Web Bean dipendente ogni "
+#~ "volta che il primo Web Bean viene istanziato. Le istanze dei Web Beans "
+#~ "dipendenti non vengono mai condivise tra Web Bean differenti o punti di "
+#~ "iniezione differenti. Sono <emphasis>oggetti dipendenti</emphasis> di "
+#~ "altre istanze Web Bean."
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "Istanze Web Bean dipendenti vengono distrutte quando viene distrutta "
+#~ "l'istanza da cui dipendono."
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "L'annotazione predefinita di binding <literal>@New</literal> consente la "
+#~ "definizione<emphasis>implicita</emphasis> di un Web Bean dipendente in un "
+#~ "punti di iniezione. Si supponga di dichiarare il seguentecampo iniettato:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "Allora viene implicitamente definito il Web Bean con scope "
+#~ "<literal>@Dependent</literal>, tipo di binding  <literal>@New</literal>, "
+#~ "tipo di API <literal>Calculator</literal>, classe di implementazione "
+#~ "<literal>Calculator</literal> e tipo di deploy <literal>@Standard</"
+#~ "literal>."

Modified: doc/trunk/reference/it-IT/specialization.po
===================================================================
--- doc/trunk/reference/it-IT/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-05 00:30+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,27 +14,131 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "Specializzazione"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
-msgid "We've already seen how the Web Beans dependency injection model lets us <emphasis>override</emphasis> the implementation of an API at deployment time. For example, the following enterprise Web Bean provides an implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "Si è già visto come il modello di dependency injection di Web Beans consenta l'<emphasis>override</emphasis> dell'implementazione di un API a deployment time. Per esempio, il seguente Web Bean enterprise fornisce un'implementazione di un API <literal>PaymentProcessor</literal> in produzione:"
+msgid ""
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"Si è già visto come il modello di dependency injection di Web Beans consenta "
+"l'<emphasis>override</emphasis> dell'implementazione di un API a deployment "
+"time. Per esempio, il seguente Web Bean enterprise fornisce "
+"un'implementazione di un API <literal>PaymentProcessor</literal> in "
+"produzione:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"Ma in quest'ambiente di prova si procede con l'override dell'implementazione "
+"di <literal>PaymentProcessor</literal> con un Web Bean differente:"
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -42,126 +146,210 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid "But in our staging environment, we override that implementation of <literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "Ma in quest'ambiente di prova si procede con l'override dell'implementazione di <literal>PaymentProcessor</literal> con un Web Bean differente:"
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
-msgid "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</literal> is to completely replace <literal>AsyncPaymentProcessor</literal> in a particular deployment of the system. In that deployment, the deployment type <literal>@Staging</literal> would have a higher priority than the default deployment type <literal>@Production</literal>, and therefore clients with the following injection point:"
-msgstr "Quello che si è cercato di fare con  <literal>StagingCreditCardPaymentProcessor</literal> è sostituire completamente <literal>AsyncPaymentProcessor</literal> in un particolare deployment del sistema. In tale deployment, il tipo di deploy <literal>@Staging</literal> avrebbe più alta priorità del tipo di deploy di default <literal>@Production</literal>, e quindi client con il seguente punto di iniezione:"
+msgid ""
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
-msgid "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "riceverebbero un'istanza di <literal>StagingCreditCardPaymentProcessor</literal>."
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "Sfortunatamente ci sono parecchie trappole in cui è facile cadere:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
-msgid "the higher-priority Web Bean may not implement all the API types of the Web Bean that it attempts to override,"
-msgstr "il Web Bean con più alta priorità potrebbe non implementare tutti i tipi di API del Web Bean di cui tenta di fare override,"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
-msgid "the higher-priority Web Bean may not declare all the binding types of the Web Bean that it attempts to override,"
-msgstr "il Web Bean con più alta priorità potrebbe non dichiare tutti i tipi di binding del Web Bean di cui tenta di fare override,"
+msgid ""
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:40
+#. Tag: title
+#: specialization.xml:105
 #, no-c-format
-msgid "the higher-priority Web Bean might not have the same name as the Web Bean that it attempts to override, or"
-msgstr "il Web Bean con più alta priorità potrebbe non avere lo stesso nome del Web Bean di cui tenta di fare override, oppure"
+msgid "A minor problem with alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:44
+#: specialization.xml:107
 #, no-c-format
-msgid "the Web Bean that it attempts to override might declare a producer method, disposal method or observer method."
-msgstr "il Web Bean di cui tenta di fare override potrebbe dichiarare un metodo produttore, metodo distruttore o metodo osservatore."
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:49
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
-msgid "In each of these cases, the Web Bean that we tried to override could still be called at runtime. Therefore, overriding is somewhat prone to developer error."
-msgstr "In ciascuno di questi casi, il Web Bean di cui si tenta l'override potrebbe ancora venire chiamato a runtime. Quindi, l'override è qualcosa di incline all'errore per lo sviluppatore."
+msgid ""
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:115
 #, no-c-format
-msgid "Web Beans provides a special feature, called <emphasis>specialization</emphasis>, that helps the developer avoid these traps. Specialization looks a little esoteric at first, but it's easy to use in practice, and you'll really appreciate the extra security it provides."
-msgstr "Web Beans fornisce una funzionalità speciale chiamata <emphasis>specializzazione</emphasis>, che aiuta lo sviluppatore ad evitare queste trappole. La specializzazione sembra inizialmente un pò esoterica, ma in pratica è facile da usare, e si apprezzerà veramente la sicurezza extra che fornisce. "
+msgid ""
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
+msgstr ""
+"Web Beans fornisce una funzionalità speciale chiamata "
+"<emphasis>specializzazione</emphasis>, che aiuta lo sviluppatore ad evitare "
+"queste trappole. La specializzazione sembra inizialmente un pò esoterica, ma "
+"in pratica è facile da usare, e si apprezzerà veramente la sicurezza extra "
+"che fornisce. "
+
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "Usare la specializzazione"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
-msgid "Specialization is a feature that is specific to simple and enterprise Web Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "La specializzazione è una funzionalità specifica dei Web Bean semplici ed enterprise. Per fare uso della specializzazione il Web Bean a più alta priorità deve:"
+msgid ""
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "essere un diretta sottoclasse del Web Bean di cui fa l'override, e"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
-msgid "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, and"
-msgstr "essere un semplice Web Bean se il Web Bean di cui fare override è un semplice Web Bean o un Web Bean Enterprise se il Web Bean di cui fa override è un Web Bean Enterprise, e"
+msgid ""
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "essere annotato con <literal>@Specializes</literal>."
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"Si dice che il Web Bean a più alta priorità <emphasis>specializza</emphasis> "
+"la sua superclasse."
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -170,80 +358,211 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
-msgid "We say that the higher-priority Web Bean <emphasis>specializes</emphasis> its superclass."
-msgstr "Si dice che il Web Bean a più alta priorità <emphasis>specializza</emphasis> la sua superclasse."
+msgid ""
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "Vantaggi della specializzazione"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "Quando viene usata la specializzazione:"
+msgid ""
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:91
+#: specialization.xml:165
 #, no-c-format
-msgid "the binding types of the superclass are automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "i tipi di binding della superclasse vengono automaticamente ereditati dal Web Bean annotato con <literal>@Specializes</literal>, e"
+msgid ""
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:172
 #, no-c-format
-msgid "the Web Bean name of the superclass is automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "il nome del Web Bean della superclasse è automaticamente ereditato dal Web Bean annotato con <literal>@Specializes</literal>, e"
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:99
-#, no-c-format
-msgid "producer methods, disposal methods and observer methods declared by the superclass are called upon an instance of the Web Bean annotated <literal>@Specializes</literal>."
-msgstr "i metodi produttori, metodi distruttori e metodi osservatori dichiarati dalla superclasse vengono chiamati da un'istanza del Web Bean annotato con <literal>@Specializes</literal>."
+#~ msgid "Specialization"
+#~ msgstr "Specializzazione"
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid "In our example, the binding type <literal>@CreditCard</literal> of <literal>CreditCardPaymentProcessor</literal> is inherited by <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "Nel nostro esempio, il tipo di binding <literal>@CreditCard</literal> di <literal>CreditCardPaymentProcessor</literal> viene ereditato da <literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "Quello che si è cercato di fare con  "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> è sostituire "
+#~ "completamente <literal>AsyncPaymentProcessor</literal> in un particolare "
+#~ "deployment del sistema. In tale deployment, il tipo di deploy "
+#~ "<literal>@Staging</literal> avrebbe più alta priorità del tipo di deploy "
+#~ "di default <literal>@Production</literal>, e quindi client con il "
+#~ "seguente punto di iniezione:"
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "Inoltre il manager Web Bean validerà che:"
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid "all API types of the superclass are API types of the Web Bean annotated <literal>@Specializes</literal> (all local interfaces of the superclass enterprise bean are also local interfaces of the subclass),"
-msgstr "tutti i tipi di API della superclasse sono tipi di API del Web Bean annotato con <literal>@Specializes</literal> (tutte le interfacce locali del bean enterprise della superclasse sono anch'essi interfacce della sottoclasse),"
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "riceverebbero un'istanza di <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid "the deployment type of the Web Bean annotated <literal>@Specializes</literal> has a higher precedence than the deployment type of the superclass, and"
-msgstr "il tipo di deploy di un Web Bean annotato con <literal>@Specializes</literal> ha una precedenza più alta di un tipo di deploy della superclasse, e"
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "Sfortunatamente ci sono parecchie trappole in cui è facile cadere:"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "non esiste nessun altro Web Bean che specializza la superclasse."
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "il Web Bean con più alta priorità potrebbe non implementare tutti i tipi "
+#~ "di API del Web Bean di cui tenta di fare override,"
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid "If any of these conditions are violated, the Web Bean manager throws an exception at initialization time."
-msgstr "Se una di queste condizioni viene violata, il manager Web Bean lancia un'eccezione in fase di inizializzazione."
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "il Web Bean con più alta priorità potrebbe non dichiare tutti i tipi di "
+#~ "binding del Web Bean di cui tenta di fare override,"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid "Therefore, we can be certain that the superclass will <emphasis>never</emphasis> be called in any deployment of the system where the Web Bean annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr "Quindi, si può essere certi che la superclasse non verrà <emphasis>mai</emphasis> chiamata in alcun deploy del sistema in cui viene deployato ed abilitato il Web Bean annotato con <literal>@Specializes</literal>."
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "il Web Bean con più alta priorità potrebbe non avere lo stesso nome del "
+#~ "Web Bean di cui tenta di fare override, oppure"
 
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "il Web Bean di cui tenta di fare override potrebbe dichiarare un metodo "
+#~ "produttore, metodo distruttore o metodo osservatore."
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "In ciascuno di questi casi, il Web Bean di cui si tenta l'override "
+#~ "potrebbe ancora venire chiamato a runtime. Quindi, l'override è qualcosa "
+#~ "di incline all'errore per lo sviluppatore."
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "La specializzazione è una funzionalità specifica dei Web Bean semplici ed "
+#~ "enterprise. Per fare uso della specializzazione il Web Bean a più alta "
+#~ "priorità deve:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "essere un diretta sottoclasse del Web Bean di cui fa l'override, e"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "essere un semplice Web Bean se il Web Bean di cui fare override è un "
+#~ "semplice Web Bean o un Web Bean Enterprise se il Web Bean di cui fa "
+#~ "override è un Web Bean Enterprise, e"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "essere annotato con <literal>@Specializes</literal>."
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "Vantaggi della specializzazione"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "Quando viene usata la specializzazione:"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "i tipi di binding della superclasse vengono automaticamente ereditati dal "
+#~ "Web Bean annotato con <literal>@Specializes</literal>, e"
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "il nome del Web Bean della superclasse è automaticamente ereditato dal "
+#~ "Web Bean annotato con <literal>@Specializes</literal>, e"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "i metodi produttori, metodi distruttori e metodi osservatori dichiarati "
+#~ "dalla superclasse vengono chiamati da un'istanza del Web Bean annotato "
+#~ "con <literal>@Specializes</literal>."
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "Nel nostro esempio, il tipo di binding <literal>@CreditCard</literal> di "
+#~ "<literal>CreditCardPaymentProcessor</literal> viene ereditato da "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "Inoltre il manager Web Bean validerà che:"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "tutti i tipi di API della superclasse sono tipi di API del Web Bean "
+#~ "annotato con <literal>@Specializes</literal> (tutte le interfacce locali "
+#~ "del bean enterprise della superclasse sono anch'essi interfacce della "
+#~ "sottoclasse),"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "il tipo di deploy di un Web Bean annotato con <literal>@Specializes</"
+#~ "literal> ha una precedenza più alta di un tipo di deploy della "
+#~ "superclasse, e"
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr "non esiste nessun altro Web Bean che specializza la superclasse."
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "Se una di queste condizioni viene violata, il manager Web Bean lancia "
+#~ "un'eccezione in fase di inizializzazione."
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "Quindi, si può essere certi che la superclasse non verrà <emphasis>mai</"
+#~ "emphasis> chiamata in alcun deploy del sistema in cui viene deployato ed "
+#~ "abilitato il Web Bean annotato con <literal>@Specializes</literal>."

Modified: doc/trunk/reference/it-IT/stereotypes.po
===================================================================
--- doc/trunk/reference/it-IT/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-25 22:17+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,84 +14,96 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "Stereotipi"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "Secondo la specifica Web Beans:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
-msgid "In many systems, use of architectural patterns produces a set of recurring Web Bean roles. A stereotype allows a framework developer to identify such a role and declare some common metadata for Web Beans with that role in a central place."
-msgstr "In molti sistemi l'uso di pattern architetturali produce un set di ruoli Web Bean ricorrenti. Uno stereotipo consente allo sviluppatore di framework di identificare tale ruolo e di dichiarare alcuni metadati comuni per i Web Bean con tale ruolo come parte principale."
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
+msgid ""
+"In many systems, use of architectural patterns produces a set of recurring "
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"In molti sistemi l'uso di pattern architetturali produce un set di ruoli Web "
+"Bean ricorrenti. Uno stereotipo consente allo sviluppatore di framework di "
+"identificare tale ruolo e di dichiarare alcuni metadati comuni per i Web "
+"Bean con tale ruolo come parte principale."
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "Uno stereotipo incapsula qualsiasi combinazione di:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "un tipo di deploy di default,"
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "un tipo di scope di default,"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "una restrizione sullo scope del Web Bean,"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "un set di annotazioni di interceptor binding."
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "un requisito che il Web Bean implementi o estenda un certo tipo, e"
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "un set di annotazioni di interceptor binding."
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid "A stereotype may also specify that all Web Beans with the stereotype have defaulted Web Bean names."
-msgstr "Uno stereotipo può anche specificare che tutti i Web Beans con tale stereotipo abbiano nomi Web Bean di default."
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"Uno stereotipo può anche specificare che tutti i Web Beans con tale "
+"stereotipo abbiano nomi Web Bean di default."
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Un Web Bean può dichiarare zero, uno o più stereotipi."
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
-msgid "A stereotype is a Java annotation type. This stereotype identifies action classes in some MVC framework:"
-msgstr "Uno stereotipo è un tipo di annotazione Java. Questo stereotipo identifica le classi di azione in alcuni framework MVC:"
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"Uno stereotipo è un tipo di annotazione Java. Questo stereotipo identifica "
+"le classi di azione in alcuni framework MVC:"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -100,13 +112,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "Lo stereotipo viene impiegato applicando l'annotazione al Web Bean."
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -115,234 +127,295 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "Scope di default e tipo di deploy per uno stereotipo"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
-msgid "A stereotype may specify a default scope and/or default deployment type for Web Beans with that stereotype. For example, if the deployment type <literal>@WebTier</literal> identifies Web Beans that should only be deployed when the system executes as a web application, we might specify the following defaults for action classes:"
-msgstr "Uno stereotipo può specificare uno scope di default e/o un tipo di deploy di default per Web Bean con tale stereotipo. Per esempio, se il tipo di deploy <literal>@WebTier</literal> identifica Web Bean che dovrebbero essere deployati quando il sistema viene eseguito come applicazione web, si potrebbero specificare i seguenti valori di default per le classi d'azione:"
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"Uno stereotipo può anche specificare che tutti i Web Beans con tale "
+"stereotipo abbiano nomi Web Bean di default."
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid "Of course, a particular action may still override these defaults if necessary:"
-msgstr "Certamente una particolare azione può comunque fare l'override di questi valore se necessario:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
+msgstr ""
+"Certamente una particolare azione può comunque fare l'override di questi "
+"valore se necessario:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "Se si vuole forzare tutte le azioni ad un particolare scope, è possibile."
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "Restringere lo scope ed il tipo con uno stereotipo"
+msgid "Interceptor bindings for stereotypes"
+msgstr "Interceptor binding per gli stereotipi"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
-msgid "Suppose that we wish to prevent actions from declaring certain scopes. Web Beans lets us explicitly specify the set of allowed scopes for Web Beans with a certain stereotype. For example:"
-msgstr "Si supponga di voler prevenire le azioni dal dichiarare certi scope. Web Beans consente esplicitamente di specificare un set di scope consentiti per Web Bean con certi stereotipi. Per esempio:"
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"Uno stereotipo può specificare un set di interceptor binding da ereditare da "
+"tutti i Web Bean con quello stereotipo."
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"Questo aiuta ad ottenere concern tecnici anche lontano dal codice di "
+"business!"
+
+#. Tag: title
+#: stereotypes.xml:103
 #, no-c-format
-msgid "If a particular action class attempts to specify a scope other than the Web Beans request scope, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "Se una particolare classe d'azione tenta di specificare uno scope diverso dallo scope di richiesta Web Bean, verrà lanciata un'eccezione dal manager Web Bean in fase di inizializzazione."
+msgid "Name defaulting with stereotypes"
+msgstr "Assegnare nomi di default con gli stereotipi"
 
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
-msgid "We can also force all Web Bean with a certain stereotype to implement an interface or extend a class:"
-msgstr "Tutti i Web Bean con certi stereotipi possono venire forzati ad implementare un'interfaccia o ad estendere una classe:"
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"Infine è possibile specificare che tutti i Web Bean con certi stereotipi "
+"abbiamo un certo nome Web Bean, messo di default dal manager Web Bean. Le "
+"azioni sono spesso referenziate nelle pagine JSP, e quindi sono un caso "
+"d'uso perfetto per questa funzionalità. Basta aggiungere un'annotazione "
+"vuota <literal>@Named</literal>:"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
-msgid "If a particular action class does not extend the class <literal>AbstractAction</literal>, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "Se una particolare classe d'azione non estende la classe <literal>AbstractAction</literal>, verrà lanciata un'eccezione dal manager Web Bean in fase di inizializzazione."
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"Ora, <literal>LoginAction</literal> avrà nome <literal>loginAction</literal>."
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "Interceptor binding per gli stereotipi"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "Stereotipi standard"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
-msgid "A stereotype may specify a set of interceptor bindings to be inherited by all Web Beans with that stereotype."
-msgstr "Uno stereotipo può specificare un set di interceptor binding da ereditare da tutti i Web Bean con quello stereotipo."
+msgid ""
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
-msgid "This helps us get technical concerns even further away from the business code!"
-msgstr "Questo aiuta ad ottenere concern tecnici anche lontano dal codice di business!"
+msgid ""
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "Stereotipi"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "Assegnare nomi di default con gli stereotipi"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
-msgid "Finally, we can specify that all Web Beans with a certain stereotype have a Web Bean name, defaulted by the Web Bean manager. Actions are often referenced in JSP pages, so they're a perfect use case for this feature. All we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "Infine è possibile specificare che tutti i Web Bean con certi stereotipi abbiamo un certo nome Web Bean, messo di default dal manager Web Bean. Le azioni sono spesso referenziate nelle pagine JSP, e quindi sono un caso d'uso perfetto per questa funzionalità. Basta aggiungere un'annotazione vuota <literal>@Named</literal>:"
+msgid ""
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid "Now, <literal>LoginAction</literal> will have the name <literal>loginAction</literal>."
-msgstr "Ora, <literal>LoginAction</literal> avrà nome <literal>loginAction</literal>."
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "Stereotipi standard"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
-msgid "We've already met two standard stereotypes defined by the Web Beans specification: <literal>@Interceptor</literal> and <literal>@Decorator</literal>."
-msgstr "Si sono già visti due stereotipi standard definiti dalla specifica Web Bean: <literal>@Interceptor</literal> e <literal>@Decorator</literal>."
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
+msgstr ""
+"Si sono già visti due stereotipi standard definiti dalla specifica Web Bean: "
+"<literal>@Interceptor</literal> e <literal>@Decorator</literal>."
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Bean definisce un ulteriore stereotipo standard:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -352,8 +425,132 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
-msgid "This stereotype is intended for use with JSF. Instead of using JSF managed beans, just annotate a Web Bean <literal>@Model</literal>, and use it directly in your JSF page."
-msgstr "Questo stereotipo è inteso per l'uso con JSF. Invece di usare bean gestiti da JSF, basta annotare un Web Bean con <literal>@Model</literal>, e usarlo direttamente nelle pagine JSF."
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
+msgid ""
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"Questo stereotipo è inteso per l'uso con JSF. Invece di usare bean gestiti "
+"da JSF, basta annotare un Web Bean con <literal>@Model</literal>, e usarlo "
+"direttamente nelle pagine JSF."
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "Secondo la specifica Web Beans:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "un tipo di deploy di default,"
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "una restrizione sullo scope del Web Bean,"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr "un requisito che il Web Bean implementi o estenda un certo tipo, e"
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Un Web Bean può dichiarare zero, uno o più stereotipi."
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "Uno stereotipo può specificare uno scope di default e/o un tipo di deploy "
+#~ "di default per Web Bean con tale stereotipo. Per esempio, se il tipo di "
+#~ "deploy <literal>@WebTier</literal> identifica Web Bean che dovrebbero "
+#~ "essere deployati quando il sistema viene eseguito come applicazione web, "
+#~ "si potrebbero specificare i seguenti valori di default per le classi "
+#~ "d'azione:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "Se si vuole forzare tutte le azioni ad un particolare scope, è possibile."
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "Restringere lo scope ed il tipo con uno stereotipo"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "Si supponga di voler prevenire le azioni dal dichiarare certi scope. Web "
+#~ "Beans consente esplicitamente di specificare un set di scope consentiti "
+#~ "per Web Bean con certi stereotipi. Per esempio:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "Se una particolare classe d'azione tenta di specificare uno scope diverso "
+#~ "dallo scope di richiesta Web Bean, verrà lanciata un'eccezione dal "
+#~ "manager Web Bean in fase di inizializzazione."
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "Tutti i Web Bean con certi stereotipi possono venire forzati ad "
+#~ "implementare un'interfaccia o ad estendere una classe:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "Se una particolare classe d'azione non estende la classe "
+#~ "<literal>AbstractAction</literal>, verrà lanciata un'eccezione dal "
+#~ "manager Web Bean in fase di inizializzazione."
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Bean definisce un ulteriore stereotipo standard:"

Modified: doc/trunk/reference/it-IT/viewlayers.po
===================================================================
--- doc/trunk/reference/it-IT/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-10 12:43+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,46 +15,80 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr "Layer di vista alternativi"
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
-msgstr "Usare Web Beans con Wicket"
+msgid "Wicket CDI integration"
+msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr "La classe <literal>WebApplication</literal>"
 
 #. Tag: para
-#: viewlayers.xml:12
-#, no-c-format
-msgid "Each wicket application must have a <literal>WebApplication</literal> subclass; Web Beans provides, for your utility, a subclass of this which sets up the Wicket/JSR-299 integration. You should subclass <literal>org.jboss.webbeans.wicket.WebBeansApplication</literal>."
-msgstr "Ogni applicazione wicket deve avere una sottoclasse <literal>WebApplication</literal>; Web Beans fornisce un sottoclasse che imposta l'integrazione Wicket/JSR-299. Occorre estendere <literal>org.jboss.webbeans.wicket.WebBeansApplication</literal>."
+#: viewlayers.xml:24
+#, fuzzy, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WebApplication</literal> "
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
+msgstr ""
+"Ogni applicazione wicket deve avere una sottoclasse <literal>WebApplication</"
+"literal>; Web Beans fornisce un sottoclasse che imposta l'integrazione "
+"Wicket/JSR-299. Occorre estendere <literal>org.jboss.webbeans.wicket."
+"WebBeansApplication</literal>."
 
 #. Tag: para
-#: viewlayers.xml:21
-#, no-c-format
-msgid "If you would prefer not to subclass <literal>WebBeansApplication</literal>, you can manually add a (small!) number of overrides and listeners to your own <literal>WebApplication</literal> subclass. The javadocs of <literal>WebBeansApplication</literal>detail this."
-msgstr "Se si preferisce non estendere <literal>WebBeansApplication</literal>,  si può aggiungere manualmente un (piccolo!) numero di override e listener alla propria sottoclasse <literal>WebApplication</literal>. Il Javadoc di <literal>WebBeansApplication</literal> illustra questo."
+#: viewlayers.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
+msgstr ""
+"Se si preferisce non estendere <literal>WebBeansApplication</literal>,  si "
+"può aggiungere manualmente un (piccolo!) numero di override e listener alla "
+"propria sottoclasse <literal>WebApplication</literal>. Il Javadoc di "
+"<literal>WebBeansApplication</literal> illustra questo."
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr "Per esempio:"
 
 #. Tag: programlisting
-#: viewlayers.xml:33
-#, no-c-format
+#: viewlayers.xml:41
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -68,62 +103,142 @@
 "}]]>"
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr "Conversazioni con Wicket"
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
-msgid "The conversation scope can be used in Web Beans with the Apache Wicket web framework, through the <literal>webbeans-wicket</literal> module. This module takes care of:"
-msgstr "In Web Beans lo scope conversazione può essere usato assieme al framework web Apache Wicket attraverso il modulo <literal>webbeans-wicket</literal>. Questo modulo si preoccupa di:"
+msgid ""
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
+msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
-msgid "Setting up the conversation context at the beginning of a Wicket request, and tearing it down afterwards"
-msgstr "Impostare il contesto conversazione all'inizio di una richiesta Wicket, e distruggerlo più avanti"
+msgid ""
+"Setting up the conversation context at the beginning of a Wicket request, "
+"and tearing it down afterwards"
+msgstr ""
+"Impostare il contesto conversazione all'inizio di una richiesta Wicket, e "
+"distruggerlo più avanti"
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
-msgid "Storing the id of any long-running conversation in Wicket's metadata when the page response is complete"
-msgstr "Memorizzare l'id di qualsiasi conversazione long-running nei metadati Wicket quando è completa la risposta della pagina"
+msgid ""
+"Storing the id of any long-running conversation in Wicket's metadata when "
+"the page response is complete"
+msgstr ""
+"Memorizzare l'id di qualsiasi conversazione long-running nei metadati Wicket "
+"quando è completa la risposta della pagina"
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
-msgid "Activating the correct long-running conversation based upon which page is being accessed"
-msgstr "Attivare la corretta conversazione long-running in base a quale pagine viene acceduta"
+msgid ""
+"Activating the correct long-running conversation based upon which page is "
+"being accessed"
+msgstr ""
+"Attivare la corretta conversazione long-running in base a quale pagine viene "
+"acceduta"
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
-msgid "Propagating the conversation context for any long-running conversation to new pages"
-msgstr "Propagare il contesto conversazione per ogni conversazione long-running nelle nuove pagine"
+msgid ""
+"Propagating the conversation context for any long-running conversation to "
+"new pages"
+msgstr ""
+"Propagare il contesto conversazione per ogni conversazione long-running "
+"nelle nuove pagine"
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr "Avviare ed interrompere le conversazioni in Wicket"
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
+msgstr ""
+"Come per le applicazioni JSF, esiste <emphasis>sempre</emphasis> una "
+"conversazione per ogni richiesta, ma il suo ciclo di vita è solo quello "
+"della richiesta corrente amenoché sia marcata come <emphasis>long-running</"
+"emphasis>. Per le applicazioni Wicket questo viene attuato come nelle "
+"applicazioni JSF, iniettando <literal>@Current Conversation</literal> e poi "
+"invocando <literal>conversation.begin()</literal>. Similmente le "
+"conversazioni vengono terminate con <literal>conversation.end()</literal>."
+
+#. Tag: programlisting
+#: viewlayers.xml:86
 #, no-c-format
-msgid "As JSF applications, a conversation <emphasis>always</emphasis> exists for any request, but its lifetime is only that of the current request unless it is marked as <emphasis>long-running</emphasis>. For Wicket applications this is accomplished as in JSF applications, by injecting the <literal>@Current Conversation</literal> and then invoking <literal>conversation.begin()</literal>. Likewise, conversations are ended with <literal>conversation.end()</literal>"
-msgstr "Come per le applicazioni JSF, esiste <emphasis>sempre</emphasis> una conversazione per ogni richiesta, ma il suo ciclo di vita è solo quello della richiesta corrente amenoché sia marcata come <emphasis>long-running</emphasis>. Per le applicazioni Wicket questo viene attuato come nelle applicazioni JSF, iniettando <literal>@Current Conversation</literal> e poi invocando <literal>conversation.begin()</literal>. Similmente le conversazioni vengono terminate con <literal>conversation.end()</literal>."
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr "Propagazione di conversazioni long running in Wicket"
 
 #. Tag: para
-#: viewlayers.xml:86
-#, no-c-format
-msgid "When a conversation is marked as long-running, the id of that conversation will be stored in Wicket's metadata for the current page. If a new page is created and set as the response target through <literal>setResponsePage</literal>, this new page will also participate in this conversation. This occurs for both directly instantiated pages (<literal>setResponsePage(new OtherPage())</literal>), as well as for bookmarkable pages created with <literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage.class</literal> is mounted as bookmarkable from your <literal>WebApplication</literal> subclass (or through annotations). In the latter case, because the new page instance is not created until after a redirect, the conversation id will be propagated through a request parameter, and then stored in page metadata after the redirect."
-msgstr "Quando una conversazione è marcata come long-running, l'id di tale conversazione verrà memorizzato nei metadati di Wicket per la pagina corrente. Se viene creatauna nuova pagina ed impostato il target della risposta attraverso <literal>setResponsePage</literal>, anche questa nuova pagina parteciperà alla conversazione. Questo avviene per entrambe le pagine istanziate direttamente (<literal>setResponsePage(new OtherPage())</literal>), come pure per le pagine segnalibro create con <literal>setResponsePage(OtherPage.class)</literal> dove <literal>OtherPage.class</literal> è messa come bookmarkable dalla sottoclasse (o tramite annotazioni) <literal>WebApplication</literal>. Nell'ultimo caso, l'id della conversazione verrà propagato attraverso un parametro di richiesta, e poi memorizzato nei metadati della pagina dopo il redirect."
+#: viewlayers.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"When a conversation is marked as long-running, the id of that conversation "
+"will be stored in Wicket's metadata for the current page. If a new page is "
+"created and set as the response target through <literal>setResponsePage()</"
+"literal>, this new page will also participate in this conversation. This "
+"occurs for both directly instantiated pages (<literal>setResponsePage(new "
+"OtherPage())</literal>), as well as for bookmarkable pages created with "
+"<literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage."
+"class</literal> is mounted as bookmarkable from your "
+"<literal>WebApplication</literal> subclass (or through annotations). In the "
+"latter case, because the new page instance is not created until after a "
+"redirect, the conversation id will be propagated through a request "
+"parameter, and then stored in page metadata after the redirect."
+msgstr ""
+"Quando una conversazione è marcata come long-running, l'id di tale "
+"conversazione verrà memorizzato nei metadati di Wicket per la pagina "
+"corrente. Se viene creatauna nuova pagina ed impostato il target della "
+"risposta attraverso <literal>setResponsePage</literal>, anche questa nuova "
+"pagina parteciperà alla conversazione. Questo avviene per entrambe le pagine "
+"istanziate direttamente (<literal>setResponsePage(new OtherPage())</"
+"literal>), come pure per le pagine segnalibro create con "
+"<literal>setResponsePage(OtherPage.class)</literal> dove <literal>OtherPage."
+"class</literal> è messa come bookmarkable dalla sottoclasse (o tramite "
+"annotazioni) <literal>WebApplication</literal>. Nell'ultimo caso, l'id della "
+"conversazione verrà propagato attraverso un parametro di richiesta, e poi "
+"memorizzato nei metadati della pagina dopo il redirect."
 
+#~ msgid "Using Web Beans with Wicket"
+#~ msgstr "Usare Web Beans con Wicket"
+
+#~ msgid ""
+#~ "The conversation scope can be used in Web Beans with the Apache Wicket "
+#~ "web framework, through the <literal>webbeans-wicket</literal> module. "
+#~ "This module takes care of:"
+#~ msgstr ""
+#~ "In Web Beans lo scope conversazione può essere usato assieme al framework "
+#~ "web Apache Wicket attraverso il modulo <literal>webbeans-wicket</"
+#~ "literal>. Questo modulo si preoccupa di:"

Added: doc/trunk/reference/it-IT/weldexamples.po
===================================================================
--- doc/trunk/reference/it-IT/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/it-IT/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language it-IT translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/it-IT/xml.po
===================================================================
--- doc/trunk/reference/it-IT/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/it-IT/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-25 15:29+0100\n"
 "Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,93 +14,138 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "Definire i Web Beans tramite XML"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
-msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
-msgstr "Finora si sono visti molti esempi di Web Bean dichiarati usando annotazioni. Comunque ci sono varie occasioni in cui non è possibile usare le annotazioni per definire un Web Bean:"
+#: xml.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"Finora si sono visti molti esempi di Web Bean dichiarati usando annotazioni. "
+"Comunque ci sono varie occasioni in cui non è possibile usare le annotazioni "
+"per definire un Web Bean:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
-msgstr "quando la classe d'implementazione proviene da qualche libreria preesistente, o"
+msgstr ""
+"quando la classe d'implementazione proviene da qualche libreria "
+"preesistente, o"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "quando devrebbero esserci Web Beans multipli con la stessa classe d'implementazione."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"quando devrebbero esserci Web Beans multipli con la stessa classe "
+"d'implementazione."
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "In entrambi i casi Web Beans fornisce due opzioni:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "scrivere un metodo produttore, o"
+#: xml.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"Many frameworks use XML to provide metadata relating to Java classes. "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
+"class and member names as the string values of XML elements and attributes, "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"Molti framework utilizzano XML per scrivere metadati relazionati alle "
+"classi. Web Beans usa un approccio molto diverso rispetto agli altri "
+"framework per specificare i nomi delle classi Java, dei campi o dei metodi. "
+"Invece di scrivere i nomi delle classi o dei membri come valori stringa di "
+"elementi e atttributi XML, Web Beans consente di utilizzare il nome della "
+"classe o del membro come nome dell'elemento XML."
 
 #. Tag: para
-#: xml.xml:24
+#: xml.xml:38
 #, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "dichiarare il Web Bean usando XML."
+msgid ""
+"The advantage of this approach is that you can write an XML schema that "
+"prevents spelling errors in your XML document. It's even possible for a tool "
+"to generate the XML schema automatically from the compiled Java code. Or, an "
+"integrated development environment could perform the same validation without "
+"the need for the explicit intermediate generation step."
+msgstr ""
+"Il vantaggio di quest'approccio è che risulta possibile scrivere uno "
+"schemaXML che previene gli errori di scrittura nei documenti XML. E' "
+"comunque possibile per un tool generare lo schema XML in modo automatico dal "
+"codice Java compilato. Oppure un ambiente di sviluppo integrato può eseguire "
+"la stessa validazionesenza il bisogno di un passo di generazione intermedio "
+"ed esplicito."
 
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
-msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
-msgstr "Molti framework utilizzano XML per scrivere metadati relazionati alle classi. Web Beans usa un approccio molto diverso rispetto agli altri framework per specificare i nomi delle classi Java, dei campi o dei metodi. Invece di scrivere i nomi delle classi o dei membri come valori stringa di elementi e atttributi XML, Web Beans consente di utilizzare il nome della classe o del membro come nome dell'elemento XML."
-
-#. Tag: para
-#: xml.xml:33
-#, no-c-format
-msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
-msgstr "Il vantaggio di quest'approccio è che risulta possibile scrivere uno schemaXML che previene gli errori di scrittura nei documenti XML. E' comunque possibile per un tool generare lo schema XML in modo automatico dal codice Java compilato. Oppure un ambiente di sviluppo integrato può eseguire la stessa validazionesenza il bisogno di un passo di generazione intermedio ed esplicito."
-
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Dichiarare classi Web Bean"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
-msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Per ogni pacchetto Java, Web Beans definisce un corrispondente namespace XML. Ilnamespace è formato aggiungendo il prefisso <literal>urn:java:</literal> al nomedel pacchetto Java. Per il pacchetto <literal>com.mydomain.myapp</literal>, il namespace XML è <literal>urn:java:com.mydomain.myapp</literal>."
+#: xml.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"For each Java package, Weld defines a corresponding XML namespace. The "
+"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
+"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
+"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"Per ogni pacchetto Java, Web Beans definisce un corrispondente namespace "
+"XML. Ilnamespace è formato aggiungendo il prefisso <literal>urn:java:</"
+"literal> al nomedel pacchetto Java. Per il pacchetto <literal>com.mydomain."
+"myapp</literal>, il namespace XML è <literal>urn:java:com.mydomain.myapp</"
+"literal>."
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
-msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
-msgstr "I tipi Java appartenenti al pacchetto vengono riferiti usando un elemento XML nel namespace corrispondente al pacchetto. Il nome dell'elemento è un nome di tipo Java. I campi e metodi del tipo vengono specificati dagli elementi figlio nello stesso namespace. Se il tipo è un'annotazione, i membri sonospecificati dagli attributi dell'elemento."
+msgid ""
+"Java types belonging to a package are referred to using an XML element in "
+"the namespace corresponding to the package. The name of the element is the "
+"name of the Java type. Fields and methods of the type are specified by child "
+"elements in the same namespace. If the type is an annotation, members are "
+"specified by attributes of the element."
+msgstr ""
+"I tipi Java appartenenti al pacchetto vengono riferiti usando un elemento "
+"XML nel namespace corrispondente al pacchetto. Il nome dell'elemento è un "
+"nome di tipo Java. I campi e metodi del tipo vengono specificati dagli "
+"elementi figlio nello stesso namespace. Se il tipo è un'annotazione, i "
+"membri sonospecificati dagli attributi dell'elemento."
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
-msgid "For example, the element <literal>&lt;util:Date/&gt;</literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Per esempio l'elemento <literal>&lt;util:Date/&gt;</literal> nel seguente frammento XML si riferisce alla classe <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Per esempio l'elemento <literal>&lt;util:Date/&gt;</literal> nel seguente "
+"frammento XML si riferisce alla classe <literal>java.util.Date</literal>:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -110,37 +155,47 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
-msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
-msgstr "E questo è tutto il codice per dichiarare che <literal>Date</literal> è un Web Bean semplice! Un'istanza di <literal>Date</literal> ora può essere iniettata da qualsiasi altro Web Bean:"
+#: xml.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"And this is all the code we need to declare that <literal>Date</literal> is "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"E questo è tutto il codice per dichiarare che <literal>Date</literal> è un "
+"Web Bean semplice! Un'istanza di <literal>Date</literal> ora può essere "
+"iniettata da qualsiasi altro Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Dichiarare metadati Web Bean"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
-msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
-msgstr "E' possibile dichiarare lo scope, il tipo di deploy ed i tipi di binding degli interceptor usando elementi figli diretti della dichiarazione Web Bean:"
+#: xml.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"We can declare the scope, deployment type and interceptor binding types "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"E' possibile dichiarare lo scope, il tipo di deploy ed i tipi di binding "
+"degli interceptor usando elementi figli diretti della dichiarazione Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -150,29 +205,31 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "Si utilizza esattamente lo stesso approccio per specificare i nomi ed il tipo di binding:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"Si utilizza esattamente lo stesso approccio per specificare i nomi ed il "
+"tipo di binding:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -192,36 +249,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
-msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
-msgstr "Dove <literal>@Login</literal> e <literal>@SystemStart</literal> sono tipi di annotazioni di binding."
+#: xml.xml:91
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
+"qualifier annotations types."
+msgstr ""
+"Dove <literal>@Login</literal> e <literal>@SystemStart</literal> sono tipi "
+"di annotazioni di binding."
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "Di nuovo un Web Bean può supportare tipi di binding multipli:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -230,18 +291,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
-msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
-msgstr "Interceptor e decoratori sono solo eb Bean semplici, e quindi possono essere dichiarati come qualsiasi altro Web Bean semplice:"
+#: xml.xml:101
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"Interceptor e decoratori sono solo eb Bean semplici, e quindi possono essere "
+"dichiarati come qualsiasi altro Web Bean semplice:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -250,42 +315,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Dichiarare membri Web Bean"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "DA FARE!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "Dichiarazione inline dei Web Beans"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "I Web Beans consentono di definire un Web Bean ad un certo punto di iniezione. Per esempio:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"I Web Beans consentono di definire un Web Bean ad un certo punto di "
+"iniezione. Per esempio:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -300,51 +367,77 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
-msgid "The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
-msgstr "L'elemento <literal>&lt;Name&gt;</literal> dichiara un Web Bean semplice con scope <literal>@Dependent</literal> e classe <literal>Name</literal>, con un set di valori di campo iniziali. Questo Web Bean ha uno speciale binding generatore dal container e quindi è iniettabile solo allo specifico punto di iniezione al quale è stato dichiarato."
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"L'elemento <literal>&lt;Name&gt;</literal> dichiara un Web Bean semplice con "
+"scope <literal>@Dependent</literal> e classe <literal>Name</literal>, con un "
+"set di valori di campo iniziali. Questo Web Bean ha uno speciale binding "
+"generatore dal container e quindi è iniettabile solo allo specifico punto di "
+"iniezione al quale è stato dichiarato."
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
-msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
-msgstr "Questa caratteristica semplice e potente consente formato XML di Web Bean di essere usato per specificare l'intero grafo di oggetti Java. Non è ancora una completa soluzione di databinding, ma ci si avvicina!"
+#: xml.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
+"solution, but it's close!"
+msgstr ""
+"Questa caratteristica semplice e potente consente formato XML di Web Bean di "
+"essere usato per specificare l'intero grafo di oggetti Java. Non è ancora "
+"una completa soluzione di databinding, ma ci si avvicina!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "Uso di uno schema"
 
 # tradurre frase
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
-msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
-msgstr "Se si vuole che il formato di documento XML sia scritto da persone che non sono sviluppatori Java o che non hanno accesso al codice, occorre fornire uno schema. There's nothing specific to Web Beans about writing or using the schema."
+#: xml.xml:141
+#, fuzzy, no-c-format
+msgid ""
+"If we want our XML document format to be authored by people who aren't Java "
+"developers, or who don't have access to our code, we need to provide a "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Se si vuole che il formato di documento XML sia scritto da persone che non "
+"sono sviluppatori Java o che non hanno accesso al codice, occorre fornire "
+"uno schema. There's nothing specific to Web Beans about writing or using the "
+"schema."
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
 "          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
 "\n"
 "    <myapp:System>\n"
 "        ...\n"
@@ -353,8 +446,22 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
-msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
-msgstr "Scrivere unoschema XML è abbastanza noiso. Quindi il progetto Web Beans RI fornirà uno strumento per generare automaticamente lo schema XML dal codice Java compilato."
+#: xml.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"Scrivere unoschema XML è abbastanza noiso. Quindi il progetto Web Beans RI "
+"fornirà uno strumento per generare automaticamente lo schema XML dal codice "
+"Java compilato."
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "In entrambi i casi Web Beans fornisce due opzioni:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "scrivere un metodo produttore, o"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "dichiarare il Web Bean usando XML."

Modified: doc/trunk/reference/ja-JP/Author_Group.po
===================================================================
--- doc/trunk/reference/ja-JP/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-07-06 12:25+1000\n"
 "Last-Translator: Noriko Mizumoto <noriko at fedoraproject.org>\n"
 "Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
@@ -17,136 +17,123 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
-msgstr ""
-"<firstname>Gavin</firstname> <surname>King<"
-"/surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>JSR-299 スペックリード</jobtitle> <orgname>Red "
-"Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
-msgstr ""
-"<firstname>Pete</firstname> <surname>Muir<"
-"/surname>"
+msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299 参照実装) リード </jobtitle> <"
-"orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
+#, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>David</firstname> <surname>Allen</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
 #, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
-msgstr ""
-"<firstname>David</firstname> <surname>Allen<"
-"/surname>"
+msgstr "<firstname>David</firstname> <surname>Allen</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
-msgstr ""
-"<firstname>Nicola</firstname> <surname>Benaglia<"
-"/surname>"
+msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "イタリア語翻訳"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
-msgstr ""
-"<firstname>Gladys</firstname> <surname>Guerrero<"
-"/surname>"
+msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "スペイン語翻訳"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "Red Hat Middleware LLC"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
-msgstr ""
-"<firstname>Eun-Ju</firstname> <surname>Ki,<"
-"/surname>"
+msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "韓国語翻訳"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
-msgstr ""
-"<firstname>Terry</firstname> <surname>Chuang<"
-"/surname>"
+msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "繁體中文翻訳"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
-msgstr ""
-"<firstname>Francesco</firstname> <surname>"
-"Milesi</surname>"
+msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
-msgstr ""
-"<firstname>Sean</firstname> <surname>Wu<"
-"/surname>"
+msgstr "<firstname>Sean</firstname> <surname>Wu</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "簡体中文翻訳"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr "Kava Community"
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299 スペックリード</jobtitle> <orgname>Red Hat Middleware "
+#~ "LLC</orgname>"
 
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299 参照実装) リード </jobtitle> <orgname>Red "
+#~ "Hat Middleware LLC</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "Red Hat Middleware LLC"
+
+#~ msgid "Kava Community"
+#~ msgstr "Kava Community"

Modified: doc/trunk/reference/ja-JP/Book_Info.po
===================================================================
--- doc/trunk/reference/ja-JP/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-09 03:51+0900\n"
 "Last-Translator: Shinobu NOGAMI <s-nogami at sourceforge.jp>\n"
 "Language-Team: none\n"
@@ -16,31 +16,41 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Java コンテキストと依存性注入"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
-msgstr "依存性注入 (DI: dependency injection) とコンテキスト依存状態管理 (contextual state management) の新しい Java 標準"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
+msgstr ""
+"依存性注入 (DI: dependency injection) とコンテキスト依存状態管理 (contextual "
+"state management) の新しい Java 標準"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Java コンテキストと依存性注入"
+
 #~ msgid "Introduction to Web Beans"
 #~ msgstr "Web Beans の紹介"
+
 #~ msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 #~ msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
 #~ "Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
 #~ "Hat Middleware LLC</orgname>"
+
 #~ msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 #~ msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead</jobtitle> "
 #~ "<orgname>Red Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead</jobtitle> "
 #~ "<orgname>Red Hat Middleware LLC</orgname>"
-

Added: doc/trunk/reference/ja-JP/beans.po
===================================================================
--- doc/trunk/reference/ja-JP/beans.po	                        (rev 0)
+++ doc/trunk/reference/ja-JP/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language ja-JP translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/ja-JP/decorators.po
===================================================================
--- doc/trunk/reference/ja-JP/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-30 23:45+0900\n"
 "Last-Translator: Fusayuki Minamoto <miki.htmnet at nifty.com>\n"
 "Language-Team: none\n"
@@ -14,38 +14,69 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "デコレータ"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
-msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
-msgstr "インタセプタは、型システムとは <emphasis>直交した</emphasis> (複数の)関心事をとらえて、それらを分離する強力な方法です。インタセプタは任意のJavaの型の呼び出しに割り込むことができます。しかし、これは当然のこととして、トランザクション管理やセキュリティ管理のような技術的関心事を完全に解決します。しかし、インタセプタは割り込む対象となる事象の実際のセマンティクスまでは気づきません。したがって、インタセプタはビジネス関連の関心事を分離するには適したツールではありません。"
+#: decorators.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors are a powerful way to capture and separate concerns which are "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"インタセプタは、型システムとは <emphasis>直交した</emphasis> (複数の)関心事"
+"をとらえて、それらを分離する強力な方法です。インタセプタは任意のJavaの型の呼"
+"び出しに割り込むことができます。しかし、これは当然のこととして、トランザク"
+"ション管理やセキュリティ管理のような技術的関心事を完全に解決します。しかし、"
+"インタセプタは割り込む対象となる事象の実際のセマンティクスまでは気づきませ"
+"ん。したがって、インタセプタはビジネス関連の関心事を分離するには適したツール"
+"ではありません。"
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
-msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
-msgstr "反対のことは <emphasis>デコレータ</emphasis> についても言えます。デコレータは特定のJavaインタフェースのみの呼び出しに割り込むので、そのインタフェースに付随するすべてのセマンティクスを知っています。このことによってデコレータはある種のビジネス関心事をモデリングするための完全なツールになります。また、それはデコレータがインタセプタが持つ一般性を備えていないことも意味します。デコレータは多くの異なる型に対して横断的な技術的関心事を解決することはできないのです。"
+#: decorators.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
+"intercepts invocations only for a certain Java interface, and is therefore "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
+"that a decorator doesn't have the generality of an interceptor. Decorators "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"反対のことは <emphasis>デコレータ</emphasis> についても言えます。デコレータは"
+"特定のJavaインタフェースのみの呼び出しに割り込むので、そのインタフェースに付"
+"随するすべてのセマンティクスを知っています。このことによってデコレータはある"
+"種のビジネス関心事をモデリングするための完全なツールになります。また、それは"
+"デコレータがインタセプタが持つ一般性を備えていないことも意味します。デコレー"
+"タは多くの異なる型に対して横断的な技術的関心事を解決することはできないので"
+"す。"
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
-msgstr "次のような口座 (account) を表現するインタフェースがあると仮定しましょう。"
+msgstr ""
+"次のような口座 (account) を表現するインタフェースがあると仮定しましょう。"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -56,43 +87,69 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
-msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
-msgstr "私たちのシステムではいくつかの異なるWeb Beansが <literal>Account</literal> を実装します。しかし、どのような口座であろうと大口の取引は特別なログに記録されなければならないという共通の法的要件があります。これはデコレータに最適な仕事です。"
+#: decorators.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
+"any kind of account, large transactions must be recorded by the system in a "
+"special log. This is a perfect job for a decorator."
+msgstr ""
+"私たちのシステムではいくつかの異なるWeb Beansが <literal>Account</literal> を"
+"実装します。しかし、どのような口座であろうと大口の取引は特別なログに記録され"
+"なければならないという共通の法的要件があります。これはデコレータに最適な仕事"
+"です。"
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
-msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
-msgstr "デコレータは <literal>@Decorator</literal> というアノテーションによって修飾された型を実装するシンプル Web Beanです。"
+#: decorators.xml:34
+#, fuzzy, no-c-format
+msgid ""
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"デコレータは <literal>@Decorator</literal> というアノテーションによって修飾さ"
+"れた型を実装するシンプル Web Beanです。"
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -120,116 +177,239 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
-msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
-msgstr "他のシンプル Web Beans とは異なり、デコレータは抽象クラスにすることができます。修飾されたインタフェースの特定のメソッドのためにデコレータとして何も特別なことをする必要がなければ、そのメソッドを実装する必要はありません。"
+#: decorators.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
+"there's nothing special the decorator needs to do for a particular method of "
+"the decorated interface, you don't need to implement that method."
+msgstr ""
+"他のシンプル Web Beans とは異なり、デコレータは抽象クラスにすることができま"
+"す。修飾されたインタフェースの特定のメソッドのためにデコレータとして何も特別"
+"なことをする必要がなければ、そのメソッドを実装する必要はありません。"
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"あるメソッドに対するインタセプタはデコレータがそのメソッドに適用される前に呼"
+"び出されます。"
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "移譲属性"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
-msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
-msgstr "デコレータは <emphasis>移譲属性 (delegate attribute)</emphasis> を持ちます。移譲属性の型やバインディングタイプ"
+msgid ""
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
-msgstr "この移譲属性は、デコレータが <literal>Account</literal> を実装するすべてのWeb Beansに対して結びついていることを指定します。"
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
-msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
-msgstr "移譲属性はバインディングアノテーションを指定するかもしれません。そのときは、デコレータは同じバインディングを持つWeb Beansに結びつくだけです。"
-
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
-
-#. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
 msgstr "デコレータは以下の任意のWeb Beanに結びつきます。"
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
 msgstr "APIタイプとして移譲属性のタイプを持つものと、"
 
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
 msgstr "移譲属性によって宣言されるすべてのバインディングタイプを持つもの"
 
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
-msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
-msgstr "デコレータは移譲属性を呼び出す可能性があります。その移譲属性はインタセプタから <literal>InvocationContext.proceed()</literal> を呼び出すのと同じ効果があります。"
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"この移譲属性は、デコレータが <literal>Account</literal> を実装するすべての"
+"Web Beansに対して結びついていることを指定します。"
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"移譲属性はバインディングアノテーションを指定するかもしれません。そのときは、"
+"デコレータは同じバインディングを持つWeb Beansに結びつくだけです。"
+
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"デコレータは移譲属性を呼び出す可能性があります。その移譲属性はインタセプタか"
+"ら <literal>InvocationContext.proceed()</literal> を呼び出すのと同じ効果があ"
+"ります。"
+
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "デコレータの有効化"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
-msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
-msgstr " デコレータは <literal>web-beans.xml</literal> で <emphasis>有効化</emphasis> する必要があります。"
+msgid ""
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
-msgid "This declaration serves the same purpose for decorators that the <literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "この宣言はデコレータに対して <literal>&lt;Interceptors&gt;</literal> 宣言がインタセプタに対するものと同じ目的を持ちます。"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"この宣言はデコレータに対して <literal>&lt;Interceptors&gt;</literal> 宣言がイ"
+"ンタセプタに対するものと同じ目的を持ちます。"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
-msgstr "私たちのシステムにおけるすべてのデコレータの全体の順番を指定できるようにします。"
+msgid ""
+"it enables us to specify a total ordering for all decorators in our system, "
+"ensuring deterministic behavior, and"
+msgstr ""
+"私たちのシステムにおけるすべてのデコレータの全体の順番を指定できるようにしま"
+"す。"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "デプロイ時にデコレータクラスを有効にしたり無効にしたりできるようにします。"
+msgstr ""
+"デプロイ時にデコレータクラスを有効にしたり無効にしたりできるようにします。"
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid "Interceptors for a method are called before decorators that apply to that method."
-msgstr "あるメソッドに対するインタセプタはデコレータがそのメソッドに適用される前に呼び出されます。"
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "デコレータは <emphasis>移譲属性 (delegate attribute)</emphasis> を持ちま"
+#~ "す。移譲属性の型やバインディングタイプ"
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ " デコレータは <literal>web-beans.xml</literal> で <emphasis>有効化</"
+#~ "emphasis> する必要があります。"

Added: doc/trunk/reference/ja-JP/dependencies.po
===================================================================
--- doc/trunk/reference/ja-JP/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/ja-JP/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language ja-JP translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/ja-JP/ee.po
===================================================================
--- doc/trunk/reference/ja-JP/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 01:59+0900\n"
 "Last-Translator: wadahiro <wadahiro at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,33 +22,93 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
-msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
-msgstr "Web BeansはJava EE 環境と完全に統合されます。Web Beansは、Java EEリソースとJPAの永続コンテキストに自由にアクセスできます。それらはJSFとJSPページ中のUnifed ELで使用されるかもしれません。それらはWeb Beansではない、サーブレットやメッセージ駆動型Beanなどのオブジェクトにインジェクトされるかもしれません。"
+#, fuzzy, no-c-format
+msgid ""
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Web BeansはJava EE 環境と完全に統合されます。Web Beansは、Java EEリソースと"
+"JPAの永続コンテキストに自由にアクセスできます。それらはJSFとJSPページ中の"
+"Unifed ELで使用されるかもしれません。それらはWeb Beansではない、サーブレット"
+"やメッセージ駆動型Beanなどのオブジェクトにインジェクトされるかもしれません。"
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Java EEリソースをWeb Beansにインジェクトする"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
-msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
-msgstr "すべてのシンプル、エンタープライズ Web Beansは、<literal>@Resource</literal>、<literal>@EJB</literal>、および<literal>@PersistenceContext</literal>を使用することでJava EEの依存性注入を利用できます。ここまでは注意を払いませんでしたが、既にいくつかの例を見てきました。"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:19
+#. Tag: para
+#: ee.xml:22
 #, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
 msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Java EEリソースをWeb Beansにインジェクトする"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
+"examples of this, though we didn't pay much attention at the time:"
+msgstr ""
+"すべてのシンプル、エンタープライズ Web Beansは、<literal>@Resource</"
+"literal>、<literal>@EJB</literal>、および<literal>@PersistenceContext</"
+"literal>を使用することでJava EEの依存性注入を利用できます。ここまでは注意を払"
+"いませんでしたが、既にいくつかの例を見てきました。"
+
+#. Tag: programlisting
+#: ee.xml:56
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -56,22 +116,20 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -85,53 +143,68 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
-msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
-msgstr "Java EEの<literal>@PostConstruct</literal>と<literal>@PreDestroy</literal>によるコールバックは、すべのシンプル、エンタープライズ Web Beansでサポートされます。 <emphasis>すべて</emphasis> のインジェクションが実行された後に、<literal>@PostConstruct</literal>のメソッドは呼ばれます。"
+#: ee.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"Java EEの<literal>@PostConstruct</literal>と<literal>@PreDestroy</literal>に"
+"よるコールバックは、すべのシンプル、エンタープライズ Web Beansでサポートされ"
+"ます。 <emphasis>すべて</emphasis> のインジェクションが実行された後に、"
+"<literal>@PostConstruct</literal>のメソッドは呼ばれます。"
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
-msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "ここで注意すべき制限が一つあります。<literal>@PersistenceContext(type=EXTENDED)</literal>はシンプルWeb Beansではサポートされません。"
+msgid ""
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "サーブレットからWeb Beanを呼び出す"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
-msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
-msgstr "Java EE 6でサーブレットからWeb Beanを使用することは簡単です。フィールドか初期化メソッドによるインジェクションを使用して、Web Beansをインジェクトしてください。"
+#: ee.xml:76
+#, fuzzy, no-c-format
+msgid ""
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"Java EE 6でサーブレットからWeb Beanを使用することは簡単です。フィールドか初期"
+"化メソッドによるインジェクションを使用して、Web Beansをインジェクトしてくださ"
+"い。"
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -139,7 +212,8 @@
 "    @Current Login login;\n"
 "\n"
 "    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
 "        throws ServletException, IOException {\n"
 "        credentials.setUsername( request.getAttribute(\"username\") ):\n"
 "        credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -155,44 +229,53 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
-msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
-msgstr "Web Beansのクライアントプロキシは、現在のリクエストとHTTPセッションの間、サーブレットから正しい<literal>Credentials</literal>と<literal>Login</literal>インスタンスへの呼び出しを引き受けます。"
+#: ee.xml:83
+#, fuzzy, no-c-format
+msgid ""
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Web Beansのクライアントプロキシは、現在のリクエストとHTTPセッションの間、サー"
+"ブレットから正しい<literal>Credentials</literal>と<literal>Login</literal>イ"
+"ンスタンスへの呼び出しを引き受けます。"
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Web Beanからメッセージ駆動型Beanを呼び出す"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
-msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
-msgstr "Web BeansのインジェクションはすべてのEJBに適用されます。EJBがWeb Beanマネージャの管理下にない場合でさえもです(たとえば、直接のJNDIルックアップ、または<literal>@EJB</literal>を使用したインジェクションで得た場合)。特に、メッセージ駆動型Bean(インジェクトできないため、Web Beansであることは考えられていないもの)でWeb Beansのインジェクションを使用できます。"
+msgid ""
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "メッセージ駆動型BeanにWeb Beansのインタセプタを使用することさえできます。"
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"メッセージ駆動型BeanにWeb Beansのインタセプタを使用することさえできます。"
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -207,85 +290,135 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
-msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "このように、メッセージを受け取ることはWeb Beans環境ではとても簡単です。しかし、メッセージがメッセージ駆動型Beanに配信されるときに、利用可能なセッションコンテキストも対話コンテキストも存在しないことに注意してください。<literal>@RequestScoped</literal>と<literal>@ApplicationScoped</literal>のWeb Beansだけが利用可能です。"
+#: ee.xml:103
+#, fuzzy, no-c-format
+msgid ""
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"このように、メッセージを受け取ることはWeb Beans環境ではとても簡単です。しか"
+"し、メッセージがメッセージ駆動型Beanに配信されるときに、利用可能なセッション"
+"コンテキストも対話コンテキストも存在しないことに注意してください。"
+"<literal>@RequestScoped</literal>と<literal>@ApplicationScoped</literal>の"
+"Web Beansだけが利用可能です。"
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "また、Web Beansを使用してメッセージを送ることも簡単です。"
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "JMSエンドポイント"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
-msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
-msgstr "扱う必要のある異なるオブジェクトの数により、JMSを使用してメッセージを送ることはかなり複雑な場合があります。キューのために、<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>、<literal>QueueConnection</literal>および<literal>QueueSession</literal>と<literal>QueueSender</literal>があります。トピックのために、<literal>Topic</literal>、<literal>TopicConnectionFactory</literal>、<literal>TopicConnection</literal>、<literal>TopicSession</literal>および<literal>TopicPublisher</literal>があります。これらのオブジェクトには、自身のライフサイクルとスレッドモデルがあり、私たちは気遣う必要があります。"
+msgid ""
+"Sending messages using JMS can be quite complex, because of the number of "
+"different objects you need to deal with. For queues we have <literal>Queue</"
+"literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
+"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
+"literal>. Each of these objects has its own lifecycle and threading model "
+"that we need to worry about."
+msgstr ""
+"扱う必要のある異なるオブジェクトの数により、JMSを使用してメッセージを送ること"
+"はかなり複雑な場合があります。キューのために、<literal>Queue</literal>, "
+"<literal>QueueConnectionFactory</literal>、<literal>QueueConnection</literal>"
+"および<literal>QueueSession</literal>と<literal>QueueSender</literal>がありま"
+"す。トピックのために、<literal>Topic</literal>、"
+"<literal>TopicConnectionFactory</literal>、<literal>TopicConnection</"
+"literal>、<literal>TopicSession</literal>および<literal>TopicPublisher</"
+"literal>があります。これらのオブジェクトには、自身のライフサイクルとスレッド"
+"モデルがあり、私たちは気遣う必要があります。"
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
-msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
-msgstr "Web Beansはこのすべてを引き受けてくれます。関連したバインディングタイプとコネクションファクトリを指定し、<literal>web-beans.xml</literal>にキューかトピックを宣言するだけで良いのです。"
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
-msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
-msgstr "これで、キューのために<literal>Queue</literal>、<literal>QueueConnection</literal>、<literal>QueueSession</literal>または<literal>QueueSender</literal>をインジェクトできます。または、トピックのために<literal>Topic</literal>、<literal>TopicConnection</literal>、<literal>TopicSession</literal>または<literal>TopicPublisher</literal>をインジェクトできます。"
+msgid ""
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -296,45 +429,143 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
+#. Tag: para
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
 msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"インジェクトされたJMSオブジェクトのライフサイクルは、Web Beanマネージャによっ"
+"て完全に制御されます。"
 
-#. Tag: para
-#: ee.xml:100
-#, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
-msgstr "インジェクトされたJMSオブジェクトのライフサイクルは、Web Beanマネージャによって完全に制御されます。"
-
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "パッケージとデプロイ"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
-msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
-msgstr "Web Beansはどのような特別なデプロイのアーカイブも定義しません。アプリケーションのクラスパスにおいてデプロイの場所である、JAR、EJB-JARまたはWARの中にWeb Beansをパッケージできます。しかしながら、Web Beansを含む各アーカイブは、<literal>META-INF</literal>か<literal>WEB-INF</literal>ディレクトリに<literal>web-beans.xml</literal>というファイルを含む必要があります。そのファイルは空でもよいです。<literal>web-beans.xml</literal>ファイルを持たないアーカイブでデプロイされたWeb Beansは、アプリケーションで利用できないでしょう。"
+#: ee.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"Web Beansはどのような特別なデプロイのアーカイブも定義しません。アプリケーショ"
+"ンのクラスパスにおいてデプロイの場所である、JAR、EJB-JARまたはWARの中にWeb "
+"Beansをパッケージできます。しかしながら、Web Beansを含む各アーカイブは、"
+"<literal>META-INF</literal>か<literal>WEB-INF</literal>ディレクトリに"
+"<literal>web-beans.xml</literal>というファイルを含む必要があります。そのファ"
+"イルは空でもよいです。<literal>web-beans.xml</literal>ファイルを持たないアー"
+"カイブでデプロイされたWeb Beansは、アプリケーションで利用できないでしょう。"
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
-msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Java SEでの実行においては、Web Beansはどのような場所でもデプロイされるでしょう。また、EJBは実行のために組み込み軽量EJBコンテナによってデプロイされるかもしれません。繰り返しますが、デプロイ場所では<literal>web-beans.xml</literal>ファイルを含む必要があります。"
+#: ee.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Java SEでの実行においては、Web Beansはどのような場所でもデプロイされるでしょ"
+"う。また、EJBは実行のために組み込み軽量EJBコンテナによってデプロイされるかも"
+"しれません。繰り返しますが、デプロイ場所では<literal>web-beans.xml</literal>"
+"ファイルを含む必要があります。"
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "ここで注意すべき制限が一つあります。<literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>はシンプルWeb Beansではサポートされません。"
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Web BeansのインジェクションはすべてのEJBに適用されます。EJBがWeb Beanマ"
+#~ "ネージャの管理下にない場合でさえもです(たとえば、直接のJNDIルックアップ、"
+#~ "または<literal>@EJB</literal>を使用したインジェクションで得た場合)。特に、"
+#~ "メッセージ駆動型Bean(インジェクトできないため、Web Beansであることは考えら"
+#~ "れていないもの)でWeb Beansのインジェクションを使用できます。"
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "また、Web Beansを使用してメッセージを送ることも簡単です。"
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Web Beansはこのすべてを引き受けてくれます。関連したバインディングタイプと"
+#~ "コネクションファクトリを指定し、<literal>web-beans.xml</literal>にキューか"
+#~ "トピックを宣言するだけで良いのです。"
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "これで、キューのために<literal>Queue</literal>、<literal>QueueConnection</"
+#~ "literal>、<literal>QueueSession</literal>または<literal>QueueSender</"
+#~ "literal>をインジェクトできます。または、トピックのために<literal>Topic</"
+#~ "literal>、<literal>TopicConnection</literal>、<literal>TopicSession</"
+#~ "literal>または<literal>TopicPublisher</literal>をインジェクトできます。"
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/ja-JP/environments.po
===================================================================
--- doc/trunk/reference/ja-JP/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-22 21:50+0900\n"
 "Last-Translator: TANABE Junnichi <jun at lmns.biz>\n"
 "Language-Team: none\n"
@@ -16,118 +16,129 @@
 
 #. Tag: title
 #: environments.xml:4
-#, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+#, fuzzy, no-c-format
+msgid "Application servers and environments supported by Weld"
 msgstr "Web Beansによりサポートされるアプリケーションサーバーと環境"
 
 #. Tag: title
 #: environments.xml:7
-#, no-c-format
-msgid "Using Web Beans with JBoss AS"
+#, fuzzy, no-c-format
+msgid "Using Weld with JBoss AS"
 msgstr "Web BeansをJBoss ASと使用する"
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
-"あなたのアプリケーションに必要な設定は、<literal>META-INF/beans.xml</literal>"
-"か<literal>WEB-INF/beans.xml</literal>を追加することだけです。"
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
-"あなたがJBoss AS 5.0.1.GAを使用しているのなら、追加でWeb Beansをインストール"
-"する必要があるでしょう。最初に私たちはWeb BeansにJBossの設置場所を知らせてや"
-"る必要があります。<literal>jboss-as/build.properties</literal>を編集して"
-"<literal>jboss.home</literal>プロパティをセットします。例えば、"
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+#: environments.xml:27
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
-msgstr "いよいよ私たちはWeb Beansをインストールすることができます。"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
+msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
-#, no-c-format
+#: environments.xml:33
+#, fuzzy, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 "$ cd webbeans-$VERSION/jboss-as\n"
 "$ ant update"
 
 #. Tag: para
-#: environments.xml:31
-#, no-c-format
+#: environments.xml:36
+#, fuzzy, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 "新たなデプロイヤ <literal>webbeans.deployer</literal> がJBoss ASに追加されま"
 "す。これはJBoss ASにJSR-299デプロイメントのためのサポートを追加するもので、こ"
 "れのおかげでWeb BeansはEJB3コンテナに問合せして、EJBがあなたのアプリケーショ"
 "ンのどこにインストールされてるかを探せるようになります。"
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr "Web Beansは5.1以降のJBoss ASの全リリースに組み込まれます。"
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, fuzzy, no-c-format
 msgid "GlassFish"
 msgstr "Glassfish"
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
-msgstr "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
+msgstr ""
 
 #. Tag: title
-#: environments.xml:53
-#, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+#: environments.xml:56
+#, fuzzy, no-c-format
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr "(TomcatやJettyのような)サーブレットコンテナ"
 
 #. Tag: para
-#: environments.xml:55
-#, no-c-format
+#: environments.xml:58
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 "Web BeansはTomcat 6.0やJetty 6.1のようなサーブレットコンテナでも利用すること"
 "ができます。"
 
 #. Tag: para
-#: environments.xml:58
-#, no-c-format
+#: environments.xml:64
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 "Web BeansはサーブレットコンテナではセッションBean、 <literal>@EJB</literal> "
 "アノテーションや <literal>@PersistenceContext</literal> アノテーションを使用"
@@ -135,14 +146,15 @@
 "トしません。"
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 "Web Beansはサーブレットコンテナの中でWebアプリケーションライブラリとして使わ"
 "れるべきです。あなたがすべきことは、<literal>WEB-INF/lib</literal> 中に "
@@ -152,71 +164,77 @@
 "す。"
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr "jsr299-api.jar"
 
 #. Tag: literal
-#: environments.xml:82
-#, no-c-format
-msgid "webbeans-api.jar"
+#: environments.xml:89
+#, fuzzy, no-c-format
+msgid "weld-api.jar"
 msgstr "webbeans-api.jar"
 
 #. Tag: literal
-#: environments.xml:87
-#, no-c-format
-msgid "webbeans-spi.jar"
+#: environments.xml:94
+#, fuzzy, no-c-format
+msgid "weld-spi.jar"
 msgstr "webbeans-spi.jar"
 
 #. Tag: literal
-#: environments.xml:92
-#, no-c-format
-msgid "webbeans-core.jar"
+#: environments.xml:99
+#, fuzzy, no-c-format
+msgid "weld-core.jar"
 msgstr "webbeans-core.jar"
 
 #. Tag: literal
-#: environments.xml:97
-#, no-c-format
-msgid "webbeans-logging.jar"
+#: environments.xml:104
+#, fuzzy, no-c-format
+msgid "weld-logging.jar"
 msgstr "webbeans-logging.jar"
 
 #. Tag: literal
-#: environments.xml:102
-#, no-c-format
-msgid "webbeans-servlet-int.jar"
+#: environments.xml:109
+#, fuzzy, no-c-format
+msgid "weld-servlet-int.jar"
 msgstr "webbeans-servlet-int.jar"
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr "javassist.jar"
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr "dom4j.jar"
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
-#, no-c-format
+#: environments.xml:129
+#, fuzzy, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 "あなたは <literal>web.xml</literal> に(Web Beansをブートしてリクエストとの相"
 "互作用の制御をするために使われる)サーブレットリスナを明示的に指定する必要もあ"
 "ります。"
 
 #. Tag: programlisting
-#: environments.xml:123
-#, no-c-format
+#: environments.xml:134
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
@@ -226,32 +244,33 @@
 "</listener>]]>"
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr "Tomcat"
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, fuzzy, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 "Tomcatは読み取り専用のJNDIを持っていて、従ってWeb Beansは自動的にはマネージャ"
 "をバインドすることができません。マネージャをJNDIにバインドするために、あなた"
 "は <literal>META-INF/context.xml</literal> に以下を追加すべきです。"
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 "<![CDATA[<Resource name=\"app/Manager\" \n"
@@ -261,7 +280,7 @@
 "]]>"
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, fuzzy, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -271,15 +290,13 @@
 "ロイメントは利用可能にします。"
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
@@ -293,11 +310,11 @@
 "</resource-env-ref>]]>"
 
 #. Tag: para
-#: environments.xml:144
-#, no-c-format
+#: environments.xml:153
+#, fuzzy, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 "Tomcatは <literal>java:comp/env</literal> にエンティティをバインドすることだ"
@@ -305,13 +322,12 @@
 "literal> で利用できるでしょう。"
 
 #. Tag: para
-#: environments.xml:150
-#, no-c-format
+#: environments.xml:158
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 "Web Beansは、Tomcatへのサーブレットインジェクションもサポートします。これを有"
 "効化するために、 <literal>$TOMCAT_HOME/lib</literal> に <literal>webbeans-"
@@ -319,35 +335,35 @@
 "literal> に下記を追加します。"
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 "<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
 "WebBeansLifecycleListener\" />]]>"
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, fuzzy, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 "Tomcatは読み取り専用のJNDIを持っていて、従ってWeb Beansは自動的にはマネージャ"
 "をバインドすることができません。マネージャをJNDIにバインドするために、あなた"
 "は <literal>META-INF/context.xml</literal> に以下を追加すべきです。"
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -355,13 +371,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -370,7 +387,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -380,11 +397,11 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, fuzzy, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 "Tomcatは <literal>java:comp/env</literal> にエンティティをバインドすることだ"
@@ -392,27 +409,28 @@
 "literal> で利用できるでしょう。"
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr "Java SE"
 
 #. Tag: para
-#: environments.xml:197
-#, no-c-format
+#: environments.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 "エンタープライズJavaスタックの向上した統合から離れて、Web Beansは最先端のタイ"
 "プセーフ、ステートフルな依存性注入フレームワークも提供します。これは広い範囲"
@@ -421,72 +439,65 @@
 "Standard Edition環境でも独立して実行するためのシンプルな手段を提供します。"
 
 #. Tag: para
-#: environments.xml:205
-#, no-c-format
+#: environments.xml:208
+#, fuzzy, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr "SE環境で実行する場合、Web Beansの下記の機能が利用できます。"
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
-msgstr "シンプルなWeb Beans (POJOs)"
+msgid "POJOs (no EJBs)"
+msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr "タイプセーフな依存性注入"
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr "アプリケーションコンテキストと依存コンテキスト"
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
-msgstr "バインディングタイプ"
-
-#. Tag: literal
-#: environments.xml:231
-#, no-c-format
-msgid "Deployment Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:236
+#: environments.xml:235
 #, no-c-format
 msgid "Stereotypes"
 msgstr "ステレオタイプ"
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr "タイプセーフイベントモデル"
 
 #. Tag: title
-#: environments.xml:247
-#, no-c-format
-msgid "Web Beans SE Module"
+#: environments.xml:246
+#, fuzzy, no-c-format
+msgid "CDI SE Module"
 msgstr "Web BeansのSEモジュール"
 
 #. Tag: para
-#: environments.xml:249
-#, no-c-format
+#: environments.xml:248
+#, fuzzy, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 "開発者の負担軽減のために、Web BeansはWeb Beansマネージャを起動するメインメ"
 "ソッドを持ち、自動的にクラスパスに見つかった全てのシンプルWeb Beansを登録する"
@@ -497,36 +508,35 @@
 "使用することでインジェクトすることができます。"
 
 #. Tag: programlisting
-#: environments.xml:258
-#, no-c-format
+#: environments.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 "<![CDATA[@Parameters List<String> params;\n"
 "@Parameters String[] paramsArray; // useful for compatability with existing "
 "classes]]>"
 
 #. Tag: para
-#: environments.xml:259
-#, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+#: environments.xml:257
+#, fuzzy, no-c-format
+msgid "Here's an example of a simple CDI SE application:"
 msgstr "ここに簡単なWeb Beans SEアプリケーションのサンプルがあります。"
 
 #. Tag: programlisting
-#: environments.xml:263
-#, no-c-format
+#: environments.xml:261
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped\n"
@@ -541,28 +551,30 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:265
-#, no-c-format
+#: environments.xml:263
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 "Web Beans SEアプリケーションは以下のメインメソッドを走らせることで開始されま"
 "す。"
 
 #. Tag: programlisting
 #: environments.xml:267
-#, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+#, fuzzy, no-c-format
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
 
 #. Tag: para
 #: environments.xml:269
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 "もしあなたが例えばカスタムコンテキストの登録やBeanのリソースの初期化のような"
 "Web Beansマネージャの何かカスタムの初期化を行う必要があるのであれば、あなた"
@@ -570,16 +582,13 @@
 "ことができます。以下のサンプルはカスタムコンテキストを登録しています。"
 
 #. Tag: programlisting
-#: environments.xml:274
-#, no-c-format
+#: environments.xml:276
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PerformSetup\n"
@@ -592,17 +601,51 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:277
-#, no-c-format
+#: environments.xml:279
+#, fuzzy, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""
 "コマンドラインパラメータは <literal>@Deployed Manager</literal> イベントが発"
 "生するまでインジェクションで利用できません。もしあなたが初期化の間にそのパラ"
 "メータにアクセスする必要があるのであれば、あなたは <literal>StartMain</"
 "literal> の <literal>public static String getParameters()</literal> メソッド"
 "を通してそれをすることができます。"
+
+#~ msgid ""
+#~ "No special configuration of your application, beyond adding either "
+#~ "<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
+#~ "literal> is needed."
+#~ msgstr ""
+#~ "あなたのアプリケーションに必要な設定は、<literal>META-INF/beans.xml</"
+#~ "literal>か<literal>WEB-INF/beans.xml</literal>を追加することだけです。"
+
+#~ msgid ""
+#~ "If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans "
+#~ "as an extra. First we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "あなたがJBoss AS 5.0.1.GAを使用しているのなら、追加でWeb Beansをインストー"
+#~ "ルする必要があるでしょう。最初に私たちはWeb BeansにJBossの設置場所を知らせ"
+#~ "てやる必要があります。<literal>jboss-as/build.properties</literal>を編集し"
+#~ "て<literal>jboss.home</literal>プロパティをセットします。例えば、"
+
+#~ msgid "Now we can install Web Beans:"
+#~ msgstr "いよいよ私たちはWeb Beansをインストールすることができます。"
+
+#~ msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
+#~ msgstr "Web Beansは5.1以降のJBoss ASの全リリースに組み込まれます。"
+
+#~ msgid "TODO"
+#~ msgstr "TODO"
+
+#~ msgid "Simple Web Beans (POJOs)"
+#~ msgstr "シンプルなWeb Beans (POJOs)"
+
+#~ msgid "Binding Types"
+#~ msgstr "バインディングタイプ"

Modified: doc/trunk/reference/ja-JP/events.po
===================================================================
--- doc/trunk/reference/ja-JP/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-30 23:50+0900\n"
 "Last-Translator: Fusayuki Minamoto <miki.htmnet at nifty.com>\n"
 "Language-Team: none\n"
@@ -22,267 +22,415 @@
 #. Tag: para
 #: events.xml:6
 #, no-c-format
-msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
-msgstr "Web Beansのイベント通知機能はWeb Beans同士が完全に疎結合ままで相互作用を可能にします。イベント <emphasis>プロデューサ</emphasis> は、Web Beanマネージャによってイベント <emphasis>オブザーバ</emphasis> へ配送されるイベントを発生します。この基本スキーマはおなじみの observer/observable パターンのように聞こえるかもしれませんが、次のように違いもあります。"
+msgid ""
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
-msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
-msgstr "イベントプロデューサはオブザーバから分離されているだけではなく、オブザーバはプロデューサから完全に分離されています。"
+msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
 
 #. Tag: para
 #: events.xml:18
 #, no-c-format
-msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
-msgstr "オブザーバは \"セレクタ\"の組み合わせを指定することで、受信するイベント通知の集まりを狭めることが可能です"
+msgid ""
+"not only are event producers decoupled from observers; observers are "
+"completely decoupled from producers,"
+msgstr ""
+"イベントプロデューサはオブザーバから分離されているだけではなく、オブザーバは"
+"プロデューサから完全に分離されています。"
 
 #. Tag: para
 #: events.xml:22
 #, no-c-format
-msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
-msgstr "オブザーバは直ちにに通知を受信するか、あるいは現在のトランザクションの終了を待ってイベント配送を遅延させるように指定することが可能です"
+msgid ""
+"observers can specify a combination of \"selectors\" to narrow the set of "
+"event notifications they will receive, and"
+msgstr ""
+"オブザーバは \"セレクタ\"の組み合わせを指定することで、受信するイベント通知の"
+"集まりを狭めることが可能です"
 
-#. Tag: title
+#. Tag: para
 #: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "イベントオブザーバ"
+#, fuzzy, no-c-format
+msgid ""
+"observers can be notified immediately, or can specify that delivery of the "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"オブザーバは直ちにに通知を受信するか、あるいは現在のトランザクションの終了を"
+"待ってイベント配送を遅延させるように指定することが可能です"
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
-msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
-msgstr "<emphasis>オブザーバメソッド</emphasis> は、 <literal>@Observes</literal> というアノテーションの付いたパラメータを持つWeb Beanのメソッドです。"
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "イベントプロデューサ"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgid ""
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
+msgstr ""
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
-msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "このアノテーション付きのパラメータは <emphasis>イベントパラメータ</emphasis> と呼ばれます。イベントパラメータの種類は<emphasis>イベントタイプ</emphasis> で指定されます。オブザーバメソッドは \"セレクタ\"を指定することもできます。それはWeb Beansバインディングタイプのインスタンスに過ぎません。バインディングタイプがイベントセレクタとして使用されると、それは <emphasis>イベントバインディングタイプ</emphasis> と呼ばれます。"
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
-#. Tag: para
-#: events.xml:43
+#. Tag: title
+#: events.xml:57
 #, no-c-format
-msgid "We specify the event bindings of the observer method by annotating the event parameter:"
-msgstr "イベントパラメータにアノテーションを付加することによってオブザーバメソッドのイベントバインディングを指定します。"
+msgid "Event observers"
+msgstr "イベントオブザーバ"
 
+#. Tag: para
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"<emphasis>オブザーバメソッド</emphasis> は、 <literal>@Observes</literal> と"
+"いうアノテーションの付いたパラメータを持つWeb Beanのメソッドです。"
+
 #. Tag: programlisting
-#: events.xml:46
-#: events.xml:190
+#: events.xml:64
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"このアノテーション付きのパラメータは <emphasis>イベントパラメータ</emphasis> "
+"と呼ばれます。イベントパラメータの種類は<emphasis>イベントタイプ</emphasis> "
+"で指定されます。オブザーバメソッドは \"セレクタ\"を指定することもできます。そ"
+"れはWeb Beansバインディングタイプのインスタンスに過ぎません。バインディングタ"
+"イプがイベントセレクタとして使用されると、それは <emphasis>イベントバインディ"
+"ングタイプ</emphasis> と呼ばれます。"
+
+#. Tag: programlisting
+#: events.xml:72 events.xml:240
 #, no-c-format
-msgid "An observer method need not specify any event bindings &#151; in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
-msgstr "オブザーバメソッドはイベントバインディングを指定する必要はありません&#151; このケースでは特定のタイプの <emphasis>すべて</emphasis> のイベントに関心があります。もしイベントバインディングを指定するのであれば、イベントバインディングを持つイベントだけに関心があります。"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
-msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
-msgstr "オブザーバメソッドは追加のパラメータを持つこともできます。それは通常のWeb Beansメソッドパラメータインジェクションのセマンティクスに従って依存性の注入が行われます。"
+#: events.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"オブザーバメソッドはイベントバインディングを指定する必要はありません&#151; こ"
+"のケースでは特定のタイプの <emphasis>すべて</emphasis> のイベントに関心があり"
+"ます。もしイベントバインディングを指定するのであれば、イベントバインディング"
+"を持つイベントだけに関心があります。"
 
+#. Tag: para
+#: events.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"オブザーバメソッドは追加のパラメータを持つこともできます。それは通常のWeb "
+"Beansメソッドパラメータインジェクションのセマンティクスに従って依存性の注入が"
+"行われます。"
+
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "イベントプロデューサ"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
-msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
-msgstr "イベントプロデューサは次のようにインジェクションによって <emphasis>イベント通知</emphasis> オブジェクトを取得できます。"
+msgid ""
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
-msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
-msgstr "<literal>@Observable</literal> アノテーションはスコープ <literal>@Dependent</literal> とデプロイメントタイプ <literal>@Standard</literal> とWeb Beanマネージャによって提供される実装を持つWeb Beanを暗黙的に定義します。"
+#: events.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"プロデューサは <literal>Event</literal> インタフェースの <literal>fire()</"
+"literal> メソッドを呼び出し、<emphasis>イベントオブジェクト</emphasis> を渡す"
+"ことでイベントを発生させます。"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
-msgstr "プロデューサは <literal>Event</literal> インタフェースの <literal>fire()</literal> メソッドを呼び出し、<emphasis>イベントオブジェクト</emphasis> を渡すことでイベントを発生させます。"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
-msgstr "イベントオブジェクトは、型変数またはワイルドカードの型パラメータを持たないJavaクラスのインスタンスになる可能性があります。そのイベントは次のような特徴を持つ各オブザーバメソッドに配送されます。"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "イベントは次のような特徴を持つ各オブザーバメソッドへ配送されます。"
 
 #. Tag: para
-#: events.xml:83
-#: events.xml:107
-#: events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "イベントオブジェクトが代入可能なイベントパラメータ、かつ"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "イベントバインディングを指定しない"
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
-msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Web Beanマネージャは単にすべてのオブザーバメソッドを呼び出し、そのイベントパラメータの値としてイベントオブジェクトを渡します。もしオブザーバメソッドが例外をスローしたら、Web Beanマネージャはオブザーバメソッドの呼び出しを停止し、その例外は <literal>fire()</literal> メソッドによって再スローされます。"
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Web Beanマネージャは単にすべてのオブザーバメソッドを呼び出し、そのイベントパ"
+"ラメータの値としてイベントオブジェクトを渡します。もしオブザーバメソッドが例"
+"外をスローしたら、Web Beanマネージャはオブザーバメソッドの呼び出しを停止し、"
+"その例外は <literal>fire()</literal> メソッドによって再スローされます。"
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
-msgstr " \"セレクタ\" を指定するために、イベントプロデューサは次のように <literal>fire()</literal> メソッドへのイベントバインディングタイプのインスタンスを渡すことができます。"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
-msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
-msgstr "ヘルパークラス <literal>AnnotationLiteral</literal> はバインディングタイプをインラインで生成することが可能です。一方、これはJavaでは困難なことです。"
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "イベントは次のような特徴を持つ各オブザーバメソッドへ配送されます。"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
-msgstr "<literal>fire()</literal> へ渡されるイベントバインディングを <emphasis>除いて</emphasis> イベントバインディングを指定しない "
+#: events.xml:144
+#, fuzzy, no-c-format
+msgid ""
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"次に <literal>Event</literal> のインスタンスを介して発火したイベントは、イベ"
+"ントバインディングのアノテーションを付加します。そのイベントは次のような特徴"
+"持つ各オブザーバメソッドに配送されます。"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
-msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
-msgstr "別の方法として、次のようにイベント通知インジェクションポイントのアノテーションを付加することでイベントバインディングを指定可能です。"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "イベントオブジェクトが代入可能なイベントパラメータ、かつ"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
+msgid ""
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"<literal>fire()</literal> へ渡されるイベントバインディングを <emphasis>除いて"
+"</emphasis> イベントバインディングを指定しない "
 
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
-msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
-msgstr "次に <literal>Event</literal> のインスタンスを介して発火したイベントは、イベントバインディングのアノテーションを付加します。そのイベントは次のような特徴持つ各オブザーバメソッドに配送されます。"
+msgid ""
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
-msgstr " <literal>fire()</literal> へ渡されるイベントバインディング、またはイベント通知インジェクションポイントのアノテートの付いたイベントバインディングを <emphasis>除いて</emphasis> イベントバインディングを指定しない。"
+msgid ""
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "トランザクション型オブザーバ"
+
+#. Tag: para
+#: events.xml:180
 #, no-c-format
-msgid "Registering observers dynamically"
-msgstr "動的なオブザーバの登録"
+msgid ""
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:186
 #, no-c-format
-msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
-msgstr "イベントオブザーバを動的に登録すると役立つことが多いです。アプリケーションは <literal>Observer</literal> インタフェースを実装し、 <literal>observe()</literal> メソッドを呼び出すことによってイベント通知を持つインスタンスを登録することができます。"
+msgid ""
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:144
-#, no-c-format
-msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
-msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+#: events.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:146
+#: events.xml:193
 #, no-c-format
-msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
-msgstr "イベントバインディングタイプは、イベント通知インジェクションポイントまたは <literal>observe()</literal> メソッドへイベントバインディングタイプのインスタンスを渡すことによって指定できます。"
-
-#. Tag: programlisting
-#: events.xml:149
-#, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "メンバを持ったイベントバインディング"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
-msgstr "イベントバインディングは次のようにアノテーションメンバーを持つことができます。"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
+msgstr ""
+"イベントバインディングは次のようにアノテーションメンバーを持つことができま"
+"す。"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -293,186 +441,280 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "メンバー値は次のようにオブザーバへ配送されるメッセージを狭めるのに使用されます。"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"メンバー値は次のようにオブザーバへ配送されるメッセージを狭めるのに使用されま"
+"す。"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
-msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
-msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgid ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
-msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
-msgstr "イベントバインディングタイプはイベントプロデューサによって静的に指定できます。次の例は、イベント通知インジェクションポイントでのアノテーションを通じて指定しています。"
+#: events.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Event qualifier type members may be specified statically by the event "
+"producer, via annotations at the event notifier injection point:"
+msgstr ""
+"イベントバインディングタイプはイベントプロデューサによって静的に指定できま"
+"す。次の例は、イベント通知インジェクションポイントでのアノテーションを通じて"
+"指定しています。"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
-msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
-msgstr "別の方法では、イベントバインディングタイプのメンバー値はイベントプロデューサによって動的に決定することもできます。まず、次のように <literal>AnnotationLiteral</literal> の抽象サブクラスを書くことで始めます。"
+#: events.xml:217
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"別の方法では、イベントバインディングタイプのメンバー値はイベントプロデューサ"
+"によって動的に決定することもできます。まず、次のように "
+"<literal>AnnotationLiteral</literal> の抽象サブクラスを書くことで始めます。"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
-msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
-msgstr "イベントプロデューサはこのクラスのインスタンスを <literal>fire()</literal> へ渡します。"
+#: events.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"The event producer passes an instance of this class to <literal>select()</"
+"literal>:"
+msgstr ""
+"イベントプロデューサはこのクラスのインスタンスを <literal>fire()</literal> へ"
+"渡します。"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+#: events.xml:226
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "複数のイベントバインディング"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
-msgstr "イベントバインディングタイプは、たとえば次のように組み合わせることが可能です。"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
+msgstr ""
+"イベントバインディングタイプは、たとえば次のように組み合わせることが可能で"
+"す。"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
-msgid "When this event occurs, all of the following observer methods will be notified:"
-msgstr "このイベントが発生すると、次のすべてのオブザーバメソッドは通知されます。"
+msgid ""
+"When this event occurs, all of the following observer methods will be "
+"notified:"
+msgstr ""
+"このイベントが発生すると、次のすべてのオブザーバメソッドは通知されます。"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
-msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
-msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "トランザクション型オブザーバ"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
-msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
-msgstr "トランザクション型オブザーバは、イベントが発生したときのトランザクションが完了前または完了後のフェーズ中にイベント通知を受け取ります。たとえば、次のオブザーバメソッドはアプリケーションコンテキストにキャッシュされたクエリーの結果をリフレッシュする必要がありますが、 <literal>Category</literal> ツリーの更新をしたトランザクションが成功したときだけ必要です。"
+msgid ""
+"Transactional observers receive their event notifications during the before "
+"or after completion phase of the transaction in which the event was raised. "
+"For example, the following observer method needs to refresh a query result "
+"set that is cached in the application context, but only when transactions "
+"that update the <literal>Category</literal> tree succeed:"
+msgstr ""
+"トランザクション型オブザーバは、イベントが発生したときのトランザクションが完"
+"了前または完了後のフェーズ中にイベント通知を受け取ります。たとえば、次のオブ"
+"ザーバメソッドはアプリケーションコンテキストにキャッシュされたクエリーの結果"
+"をリフレッシュする必要がありますが、 <literal>Category</literal> ツリーの更新"
+"をしたトランザクションが成功したときだけ必要です。"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
-msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
-msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+#: events.xml:256
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
+"CategoryUpdateEvent event) { ... }]]>"
+msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "次の3種類のトランザクション型オブザーバが存在します。"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
-msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
-msgstr "<literal>@AfterTransactionSuccess</literal> オブザーバは、トランザクション完了後のフェーズ中にそのトランザクションの完了に成功したときだけ呼び出される"
+msgid ""
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
-msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
-msgstr "<literal>@AfterTransactionFailure</literal> オブザーバは、トランザクション完了後のフェーズ中にそのトランザクションの完了に失敗したときだけ呼び出される"
+#: events.xml:265
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"<literal>@AfterTransactionSuccess</literal> オブザーバは、トランザクション完"
+"了後のフェーズ中にそのトランザクションの完了に成功したときだけ呼び出される"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
-msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
-msgstr "<literal>@AfterTransactionCompletion</literal> オブザーバは、トランザクション完了後のフェーズ中に呼び出される"
+#: events.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"<literal>@AfterTransactionFailure</literal> オブザーバは、トランザクション完"
+"了後のフェーズ中にそのトランザクションの完了に失敗したときだけ呼び出される"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
-msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
-msgstr "<literal>@BeforeTransactionCompletion</literal> オブザーバは、トランザクション完了前のフェーズ中に呼び出される"
+#: events.xml:277
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@AfterTransactionCompletion</literal> オブザーバは、トランザクション"
+"完了後のフェーズ中に呼び出される"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
-msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
-msgstr "トランザクション型オブザーバはWeb Beansのようなステートフルオブジェクトモデルにおいてはとても重要です。なぜなら、ステートは単一のアトミックトランザクションよりも長く保持されることが多いからです。"
+#: events.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@BeforeTransactionCompletion</literal> オブザーバは、トランザクショ"
+"ン完了前のフェーズ中に呼び出される"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"トランザクション型オブザーバはWeb Beansのようなステートフルオブジェクトモデル"
+"においてはとても重要です。なぜなら、ステートは単一のアトミックトランザクショ"
+"ンよりも長く保持されることが多いからです。"
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "アプリケーションスコープにおいてJPAクエリーの結果をキャッシュしたと想像してみてください。"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"アプリケーションスコープにおいてJPAクエリーの結果をキャッシュしたと想像してみ"
+"てください。"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -486,7 +728,8 @@
 "    @Produces @Catalog \n"
 "    List<Product> getCatalog() {\n"
 "        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
 "                .getResultList();\n"
 "        }\n"
 "        return products;\n"
@@ -495,39 +738,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
-msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
-msgstr "時が経つにつれ、 <literal>Product</literal> は生成され、削除されます。これが発生するとき、 <literal>Product</literal> カタログをリフレッシュする必要があります。しかし、このリフレッシュを実行する前にそのトランザクションの完了が成功する <emphasis>後</emphasis> まで待つべきなのです。"
+msgid ""
+"From time to time, a <literal>Product</literal> is created or deleted. When "
+"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
+"we should wait until <emphasis>after</emphasis> the transaction completes "
+"successfully before performing this refresh!"
+msgstr ""
+"時が経つにつれ、 <literal>Product</literal> は生成され、削除されます。これが"
+"発生するとき、 <literal>Product</literal> カタログをリフレッシュする必要があ"
+"ります。しかし、このリフレッシュを実行する前にそのトランザクションの完了が成"
+"功する <emphasis>後</emphasis> まで待つべきなのです。"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
-msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
-msgstr " <literal>Product</literal> を生成、削除するWeb Beansは次のようにイベントを発生させます。"
+#: events.xml:305
+#, fuzzy, no-c-format
+msgid ""
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+" <literal>Product</literal> を生成、削除するWeb Beansは次のようにイベントを発"
+"生させます。"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -551,28 +805,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
-msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
-msgstr "そして、 <literal>Catalog</literal> は次のようにトランザクションの完了が成功した後にイベントを観察できるようになります。"
+msgid ""
+"And now <literal>Catalog</literal> can observe the events after successful "
+"completion of the transaction:"
+msgstr ""
+"そして、 <literal>Catalog</literal> は次のようにトランザクションの完了が成功"
+"した後にイベントを観察できるようになります。"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
+"product) {\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
-"        products.add(product);\n"
-"    }\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
+"product) {\n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -580,13 +837,134 @@
 "\n"
 "    ...\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
 "        products.add(product);\n"
 "    }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
 "        products.remove(product);\n"
 "    }\n"
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Web Beansのイベント通知機能はWeb Beans同士が完全に疎結合ままで相互作用を可"
+#~ "能にします。イベント <emphasis>プロデューサ</emphasis> は、Web Beanマネー"
+#~ "ジャによってイベント <emphasis>オブザーバ</emphasis> へ配送されるイベント"
+#~ "を発生します。この基本スキーマはおなじみの observer/observable パターンの"
+#~ "ように聞こえるかもしれませんが、次のように違いもあります。"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "イベントパラメータにアノテーションを付加することによってオブザーバメソッド"
+#~ "のイベントバインディングを指定します。"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "イベントプロデューサは次のようにインジェクションによって <emphasis>イベン"
+#~ "ト通知</emphasis> オブジェクトを取得できます。"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "<literal>@Observable</literal> アノテーションはスコープ "
+#~ "<literal>@Dependent</literal> とデプロイメントタイプ <literal>@Standard</"
+#~ "literal> とWeb Beanマネージャによって提供される実装を持つWeb Beanを暗黙的"
+#~ "に定義します。"
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "イベントオブジェクトは、型変数またはワイルドカードの型パラメータを持たない"
+#~ "Javaクラスのインスタンスになる可能性があります。そのイベントは次のような特"
+#~ "徴を持つ各オブザーバメソッドに配送されます。"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ " \"セレクタ\" を指定するために、イベントプロデューサは次のように "
+#~ "<literal>fire()</literal> メソッドへのイベントバインディングタイプのインス"
+#~ "タンスを渡すことができます。"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "ヘルパークラス <literal>AnnotationLiteral</literal> はバインディングタイプ"
+#~ "をインラインで生成することが可能です。一方、これはJavaでは困難なことです。"
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "別の方法として、次のようにイベント通知インジェクションポイントのアノテー"
+#~ "ションを付加することでイベントバインディングを指定可能です。"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ " <literal>fire()</literal> へ渡されるイベントバインディング、またはイベン"
+#~ "ト通知インジェクションポイントのアノテートの付いたイベントバインディング"
+#~ "を <emphasis>除いて</emphasis> イベントバインディングを指定しない。"
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "動的なオブザーバの登録"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "イベントオブザーバを動的に登録すると役立つことが多いです。アプリケーション"
+#~ "は <literal>Observer</literal> インタフェースを実装し、 <literal>observe()"
+#~ "</literal> メソッドを呼び出すことによってイベント通知を持つインスタンスを"
+#~ "登録することができます。"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "イベントバインディングタイプは、イベント通知インジェクションポイントまた"
+#~ "は <literal>observe()</literal> メソッドへイベントバインディングタイプのイ"
+#~ "ンスタンスを渡すことによって指定できます。"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/ja-JP/example.po
===================================================================
--- doc/trunk/reference/ja-JP/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-09 03:51+0900\n"
 "Last-Translator: Shinobu NOGAMI <s-nogami at sourceforge.jp>\n"
 "Language-Team: none\n"
@@ -21,17 +21,22 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
-msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
-msgstr "完全な例でこの考えを説明しましょう。JSF を 使用するアプリケーションとしてユーザのログイン / ログアウトを実装します。まず最初に、ログインしている間にユーザ名とパスワードを保持しておくための Web Bean を定義するでしょう:"
+#, fuzzy, no-c-format
+msgid ""
+"Let's illustrate these ideas with a full example. We're going to implement "
+"user login/logout for an application that uses JSF. First, we'll define a "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"完全な例でこの考えを説明しましょう。JSF を 使用するアプリケーションとしてユー"
+"ザのログイン / ログアウトを実装します。まず最初に、ログインしている間にユーザ"
+"名とパスワードを保持しておくための Web Bean を定義するでしょう:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -40,7 +45,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named\n"
@@ -59,23 +63,26 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "この Web Bean は、以下の JSF フォームのログインプロンプトにバインドされます:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"この Web Bean は、以下の JSF フォームのログインプロンプトにバインドされます:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
 "<![CDATA[<f:form>\n"
@@ -85,53 +92,63 @@
 "        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
 "        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
 "    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</f:form]]>"
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
-msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
-msgstr "実際の仕事は、現在ログイン中のユーザの情報を保持するセッションスコープの Web Bean によって行われ、他の Web Bean に対して <literal>User</literal> エンティティを公開します:"
+#, fuzzy, no-c-format
+msgid ""
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"実際の仕事は、現在ログイン中のユーザの情報を保持するセッションスコープの Web "
+"Bean によって行われ、他の Web Bean に対して <literal>User</literal> エンティ"
+"ティを公開します:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -146,7 +163,8 @@
 "    public void login() {\n"
 "            \n"
 "        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
 "           .setParameter(\"username\", credentials.getUsername())\n"
 "           .setParameter(\"password\", credentials.getPassword())\n"
 "           .getResultList();\n"
@@ -172,19 +190,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "もちろん <literal>@LoggedIn</literal> は、バインディングアノテーションです:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -192,26 +226,44 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "これで他の Web Bean に、現在のユーザを簡単にインジェクトすることができます:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"これで他の Web Bean に、現在のユーザを簡単にインジェクトすることができます:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -228,8 +280,32 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
-msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
-msgstr "うまくいけば、このサンプルから Web Bean プログラミングモデルの感触をつかむことができます。次の章では、 Web Beans の依存性注入 (dependency injection) をより深く説明します。"
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
 
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
+msgid ""
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"うまくいけば、このサンプルから Web Bean プログラミングモデルの感触をつかむこ"
+"とができます。次の章では、 Web Beans の依存性注入 (dependency injection) をよ"
+"り深く説明します。"
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr ""
+#~ "もちろん <literal>@LoggedIn</literal> は、バインディングアノテーションで"
+#~ "す:"

Modified: doc/trunk/reference/ja-JP/extend.po
===================================================================
--- doc/trunk/reference/ja-JP/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-27 12:26+0900\n"
 "Last-Translator: wadahiro <wadahiro at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,280 +14,285 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Web Beansを拡張する"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
-msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
-msgstr "Web Beansはフレームワーク、拡張、他の技術との統合のためのプラットフォームとなることを目的としています。従って、Web Beansに移植可能な拡張を行う開発者向けに、SPIのセットを公開しています。たとえば、以下の種類の拡張はWeb Beansの設計者によって構想されました。"
+#: extend.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beansはフレームワーク、拡張、他の技術との統合のためのプラットフォームとな"
+"ることを目的としています。従って、Web Beansに移植可能な拡張を行う開発者向け"
+"に、SPIのセットを公開しています。たとえば、以下の種類の拡張はWeb Beansの設計"
+"者によって構想されました。"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "ビジネスプロセス管理エンジンとの統合、"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
-msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
-msgstr "Spring、Seam、GWTまたはWicketなどのサードパーティのフレームワークとの統合、そして"
+msgid ""
+"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
+"and"
+msgstr ""
+"Spring、Seam、GWTまたはWicketなどのサードパーティのフレームワークとの統合、そ"
+"して"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "Web Beansのプログラミングモデルに基づく新技術です。"
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
-msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
-msgstr "Web Beansを拡張するための中枢部は<literal>Manager</literal>オブジェクトです。"
+msgid "More formally, according to the spec:"
+msgstr ""
 
-#. Tag: title
-#: extend.xml:29
+#. Tag: para
+#: extend.xml:32
 #, no-c-format
-msgid "The <literal>Manager</literal> object"
-msgstr "<literal>Manager</literal>オブジェクト"
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:31
+#: extend.xml:35
 #, no-c-format
-msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "<literal>Manager</literal>インタフェースで、プログラミングによりWeb Beans、インタセプタ、デコレータ、オブザーバ、およびコンテキストを登録、取得できます。"
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
 
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object."
+msgstr ""
+"Web Beansを拡張するための中枢部は<literal>Manager</literal>オブジェクトです。"
+
+#. Tag: title
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
+msgstr "<literal>Manager</literal>オブジェクト"
+
+#. Tag: para
+#: extend.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"<literal>Manager</literal>インタフェースで、プログラミングによりWeb Beans、イ"
+"ンタセプタ、デコレータ、オブザーバ、およびコンテキストを登録、取得できます。"
+
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "<literal>Manager</literal>インスタンスをインジェクションで取得することができます。"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"<literal>Manager</literal>インスタンスをインジェクションで取得することができ"
+"ます。"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "<literal>Bean</literal>クラス"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
-msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
-msgstr "抽象クラスである<literal>Bean</literal>のインスタンスはWeb Beansを表します。アプリケーションにはあらゆるWeb Beanのために、<literal>Manager</literal>オブジェクトに登録された<literal>Bean</literal>のインスタンスがあります。"
+#: extend.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+"Web Beansを拡張するための中枢部は<literal>Manager</literal>オブジェクトです。"
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "<literal>Context</literal>インタフェース"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"抽象クラスである<literal>Bean</literal>のインスタンスはWeb Beansを表します。"
+"アプリケーションにはあらゆるWeb Beanのために、<literal>Manager</literal>オブ"
+"ジェクトに登録された<literal>Bean</literal>のインスタンスがあります。"
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
-msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
-msgstr "新しい種類のWeb Beansのサポートを提供するために、<literal>Bean</literal>クラスを拡張し、<literal>Manager.addBean()</literal>を呼びインスタンスを登録することが可能です。Web Beansの仕様(シンプル、エンタープライズWeb Beans、プロデューサメソッド、およびJMSエンドポイント)で定義されたものを超えてです。たとえば、別のフレームワークによって管理されたオブジェクトをWeb Beansにインジェクト可能にするために、<literal>Bean</literal>クラスを使用できます。"
+#: extend.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"新しい種類のWeb Beansのサポートを提供するために、<literal>Bean</literal>クラ"
+"スを拡張し、<literal>Manager.addBean()</literal>を呼びインスタンスを登録する"
+"ことが可能です。Web Beansの仕様(シンプル、エンタープライズWeb Beans、プロ"
+"デューサメソッド、およびJMSエンドポイント)で定義されたものを超えてです。たと"
+"えば、別のフレームワークによって管理されたオブジェクトをWeb Beansにインジェク"
+"ト可能にするために、<literal>Bean</literal>クラスを使用できます。"
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
-msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
-msgstr "Web Beansの仕様で定義された二つの<literal>Bean</literal>のサブクラスがあります。<literal>Interceptor</literal>と<literal>Decorator</literal>です。"
+#: extend.xml:104
+#, fuzzy, no-c-format
+msgid ""
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
+"specification: <literal>Interceptor</literal> and <literal>Decorator</"
+"literal>."
+msgstr ""
+"Web Beansの仕様で定義された二つの<literal>Bean</literal>のサブクラスがありま"
+"す。<literal>Interceptor</literal>と<literal>Decorator</literal>です。"
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "<literal>Context</literal>インタフェース"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
-msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
-msgstr "<literal>Context</literal>インタフェースはWeb Beansへの新しいスコープの追加、または新しい環境での組み込みスコープの拡張をサポートします。"
+#: extend.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Context</literal> interface supports addition of new scopes to "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"<literal>Context</literal>インタフェースはWeb Beansへの新しいスコープの追加、"
+"または新しい環境での組み込みスコープの拡張をサポートします。"
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -300,8 +305,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
-msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
-msgstr "たとえば、私たちは、Web Beansにビジネスプロセススコープを追加、またはWicketを使用するアプリケーションに対話スコープのサポートを追加するために、<literal>Context</literal>を実装するかもしれません。"
+#: extend.xml:121
+#, fuzzy, no-c-format
+msgid ""
+"For example, we might implement <literal>Context</literal> to add a business "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"たとえば、私たちは、Web Beansにビジネスプロセススコープを追加、またはWicketを"
+"使用するアプリケーションに対話スコープのサポートを追加するために、"
+"<literal>Context</literal>を実装するかもしれません。"
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Web Beansを拡張する"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "<literal>Bean</literal>クラス"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/ja-JP/extensions.po
===================================================================
--- doc/trunk/reference/ja-JP/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-22 22:46+0900\n"
 "Last-Translator: TANABE Junnichi <jun at lmns.biz>\n"
 "Language-Team: none\n"
@@ -14,46 +15,56 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
-#, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+#: extensions.xml:8
+#, fuzzy, no-c-format
+msgid "CDI extensions available as part of Weld"
 msgstr "Web Beansの一部として利用可能なJSR-299拡張機能"
 
 #. Tag: para
-#: extensions.xml:7
-#, no-c-format
-msgid "These modules are usable on any JSR-299 implementation, not just Web Beans!"
-msgstr "これらのモジュールはWeb Beansだけではなく、あらゆるJSR-299実装においても利用できます!"
+#: extensions.xml:11
+#, fuzzy, no-c-format
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
+msgstr ""
+"これらのモジュールはWeb Beansだけではなく、あらゆるJSR-299実装においても利用"
+"できます!"
 
 #. Tag: title
-#: extensions.xml:15
-#, no-c-format
-msgid "Web Beans Logger"
+#: extensions.xml:17
+#, fuzzy, no-c-format
+msgid "Weld Logger"
 msgstr "Web Beansロガー"
 
 #. Tag: para
-#: extensions.xml:17
-#, no-c-format
-msgid "Adding logging to your application is now even easier with simple injection of a logger object into any JSR-299 bean. Simply annotate a org.jboss.webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an appropriate logger object will be injected into any instance of the bean."
-msgstr "あなたのアプリケーションへのロギングの追加はJSR-299 beanへのロガーオブジェクトを単純なインジェクションよりも今やずっと簡単です。単に <emphasis>@Logger</emphasis> アノテーションでorg.jboss.webbeans.log.Log型のメンバにアノテーションを付けることで適切なロガーオブジェクトがそのbeanのインスタンスにインジェクトされるでしょう。"
+#: extensions.xml:19
+#, fuzzy, no-c-format
+msgid ""
+"Adding logging to your application is now even easier with simple injection "
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
+msgstr ""
+"あなたのアプリケーションへのロギングの追加はJSR-299 beanへのロガーオブジェク"
+"トを単純なインジェクションよりも今やずっと簡単です。単に <emphasis>@Logger</"
+"emphasis> アノテーションでorg.jboss.webbeans.log.Log型のメンバにアノテーショ"
+"ンを付けることで適切なロガーオブジェクトがそのbeanのインスタンスにインジェク"
+"トされるでしょう。"
 
 #. Tag: programlisting
-#: extensions.xml:25
-#, no-c-format
+#: extensions.xml:26
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class Checkout {\n"
@@ -72,20 +83,57 @@
 "}]]>"
 
 #. Tag: para
-#: extensions.xml:27
-#, no-c-format
-msgid "The example shows how objects can be interpolated into a message. This interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so see the JavaDoc for that class for more details. In this case, the ShoppingCart should have implemented the <emphasis>toString()</emphasis> method to produce a human readable value that is meaningful in messages. Normally, this call would have involved evaluating cart.toString() with String concatenation to produce a single String argument. Thus it was necessary to surround the call with an if-statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String concatenation if the message was not actually going to be used. However, when using @Logger injected logging, the conditional test can be left out since the object arguments are not evaluated unless the message is going to be logged."
-msgstr "サンプルはどのようにオブジェクトがメッセージに保管され得るかを示しています。保管は <emphasis>java.text.MessageFormat</emphasis> を使用することでなされます。より詳細についてはJavaDocを参照して下さい。この場合では、ShoppingCart はメッセージに人間が読み取れて意味のある値を生成するために <emphasis>toString()</emphasis> メソッドが実装されているべきです。通常、この呼び出しにより単一のString引数を生成する為にcart.toString()をString連結することが必要となるでしょう。それゆえに、そのメッセージを実際に使用される意図が無い場合に高コストなString連結を避けるために <emphasis>log.isDebugEnabled()</emphasis> 条件を使ったif文で囲って呼び出してやる必要がありました。しかしながら、@Logger アノテーションを使ってロギングをインジ!
 ェクトするとき、そのメッセージが実際にログ出力されない限りはそのオブジェクト引数は評価されないので条件テストは除外することができます。"
+#: extensions.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"The example shows how objects can be interpolated into a message. This "
+"interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
+"see the JavaDoc for that class for more details. In this case, the "
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
+msgstr ""
+"サンプルはどのようにオブジェクトがメッセージに保管され得るかを示しています。"
+"保管は <emphasis>java.text.MessageFormat</emphasis> を使用することでなされま"
+"す。より詳細についてはJavaDocを参照して下さい。この場合では、ShoppingCart は"
+"メッセージに人間が読み取れて意味のある値を生成するために <emphasis>toString()"
+"</emphasis> メソッドが実装されているべきです。通常、この呼び出しにより単一の"
+"String引数を生成する為にcart.toString()をString連結することが必要となるでしょ"
+"う。それゆえに、そのメッセージを実際に使用される意図が無い場合に高コストな"
+"String連結を避けるために <emphasis>log.isDebugEnabled()</emphasis> 条件を使っ"
+"たif文で囲って呼び出してやる必要がありました。しかしながら、@Logger アノテー"
+"ションを使ってロギングをインジェクトするとき、そのメッセージが実際にログ出力"
+"されない限りはそのオブジェクト引数は評価されないので条件テストは除外すること"
+"ができます。"
 
 #. Tag: para
-#: extensions.xml:44
-#, no-c-format
-msgid "You can add the Web Beans Logger to your project by including webbeans-logger.jar and webbeans-logging.jar to your project. Alternatively, express a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> Maven artifact."
-msgstr "あなたは webbeans-logger.jar と webbeans-logging.jar を含めることであなたのプロジェクトにWeb Beansロガーを追加することが出来ます。もしくは、 <literal>org.jboss.webbeans:webbeans-logger</literal> Mavenアーティファクトに依存性を表現しても良いです。"
+#: extensions.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
+msgstr ""
+"あなたは webbeans-logger.jar と webbeans-logging.jar を含めることであなたのプ"
+"ロジェクトにWeb Beansロガーを追加することが出来ます。もしくは、 <literal>org."
+"jboss.webbeans:webbeans-logger</literal> Mavenアーティファクトに依存性を表現"
+"しても良いです。"
 
 #. Tag: para
-#: extensions.xml:51
-#, no-c-format
-msgid "If you are using Web Beans as your JSR-299 implementation, there is no need to include <literal>webbeans-logging.jar</literal> as it's already included."
-msgstr "もしあなたがJSR-299実装としてWeb Beansを利用しているのであれば、すでにインクルード済みなので、 <literal>webbeans-logging.jar</literal> をインクルードする必要はありません。"
-
+#: extensions.xml:46
+#, fuzzy, no-c-format
+msgid ""
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
+msgstr ""
+"もしあなたがJSR-299実装としてWeb Beansを利用しているのであれば、すでにインク"
+"ルード済みなので、 <literal>webbeans-logging.jar</literal> をインクルードする"
+"必要はありません。"

Modified: doc/trunk/reference/ja-JP/gettingstarted.po
===================================================================
--- doc/trunk/reference/ja-JP/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,2618 +14,3038 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
+#: gettingstarted.xml:5
 #, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "JSR-299 参照実装 Web Beans を始めよう"
+msgid "Getting started with Weld"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
+#: gettingstarted.xml:7
 #, no-c-format
 msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
-"Web Beans は <ulink url=\"http://seamframework.org/WebBeans\"> Seam プロジェ"
-"クト</ulink> で開発されています。Web Beans の開発者向け最新リリースは <ulink "
-"url=\"http://seamframework.org/Download\">ダウンロードページ</ulink> からダウ"
-"ンロードすることができます。"
 
 #. Tag: para
-#: gettingstarted.xml:13
-#, no-c-format
+#: gettingstarted.xml:16
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
-"Web Beans は、2つのデプロイ可能なサンプルアプリケーションが一緒に提供されま"
-"す:簡単な bean のみを含む war サンプルの <literal>webbeans-numberguess</"
-"literal> とエンタープライズ beanを含む ear サンプルの <literal>webbeans-"
-"translator</literal> です。また numberguess サンプルには2種類のサンプルがあり"
-"ます。Tomcat サンプル(Tomcatへのデプロイに適している)と、JSF2 を実行させる場"
-"合に使用できる JSF2 サンプルです。サンプルを実行するためには、以下のものが必"
-"要です:"
+"このサンプルは、Web Beans のディストリビューションの <literal>examples/se/"
+"numberguess</literal> フォルダ に見つけることができます。"
 
-#. Tag: para
-#: gettingstarted.xml:25
+#. Tag: title
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "Web Beans の最新リリース"
+msgid "Prerequisites"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:24
 #, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.1.GA あるいは"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:31
-#, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
-msgstr "Apache Tomcat 6.0.x"
+#: gettingstarted.xml:30
+#, fuzzy, no-c-format
+msgid "the latest release of Weld, which contains the examples"
+msgstr "Web Beans の最新リリース"
 
 #. Tag: para
-#: gettingstarted.xml:34
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0"
+msgid "Ant 1.7.0, to build and deploy the examples"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:39
-#, no-c-format
-msgid "Using JBoss AS 5"
-msgstr "JBoss AS 5 の使用"
-
 #. Tag: para
-#: gettingstarted.xml:41
+#: gettingstarted.xml:36
 #, no-c-format
-msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
-"JBoss AS 5.0.1.GA は <ulink url=\"http://www.jboss.org/jbossas/downloads/"
-"\">jboss.org</ulink> からダウンロードして展開する必要があります。例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
-#, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
-msgstr ""
-"次に、Web Beans を <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink> からダウンロードして展開してください。例:"
+#: gettingstarted.xml:42
+#, fuzzy, no-c-format
+msgid "GlassFish 3.0,"
+msgstr "GlassFish の使用"
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
-#, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
-msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+#. Tag: para
+#: gettingstarted.xml:45
+#, fuzzy, no-c-format
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
+msgstr "Apache Tomcat 6.0.x"
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"次に、Web Beans にどこに JBoss が置かれているのかを指定する必要があります。"
-"<literal>jboss-as/build.properties</literal> を編集して <literal>jboss.home</"
-"literal> プロパティを設定してください。例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
+#: gettingstarted.xml:53
 #, no-c-format
 msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"Web Beans をインストールするためには、Ant 1.7.0 をインストールし、"
-"<literal>ANT_HOME</literal> 環境変数を設定する必要があります。例:"
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:58
 #, no-c-format
 msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:64
 #, no-c-format
 msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
-"これで最新版をインストールすることができます。更新スクリプトは、Web Beans を"
-"自動的にダウンロードするために Maven を使用します。"
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
+#. Tag: para
+#: gettingstarted.xml:76
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
 
-#. Tag: para
-#: gettingstarted.xml:87
-#, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "これで、最初のサンプルをデプロイする用意ができました。"
+#. Tag: title
+#: gettingstarted.xml:81
+#, fuzzy, no-c-format
+msgid "Deploying to JBoss AS"
+msgstr "JBoss AS 5 の使用"
 
 #. Tag: para
-#: gettingstarted.xml:92
+#: gettingstarted.xml:83
 #, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
 msgstr ""
-"サンプルのためのビルドスクリプトには、JBoss AS への多くのターゲットが定義され"
-"ています:"
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
 msgstr ""
-"<literal>ant restart</literal> - サンプルを展開形式フォーマットでデプロイしま"
-"す"
 
-#. Tag: para
-#: gettingstarted.xml:104
+#. Tag: programlisting
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"<literal>ant explode</literal> - デプロイを最初から行うのでなく、展開形式でデ"
-"プロイされたサンプルを必要な部分のみを更新します"
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:101
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
-"<literal>ant deploy</literal> - サンプルを圧縮 jar フォーマットでデプロイしま"
-"す"
 
-#. Tag: para
-#: gettingstarted.xml:115
-#, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - サーバからサンプルを削除します"
+#. Tag: programlisting
+#: gettingstarted.xml:108
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: gettingstarted.xml:120
-#, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - サンプルをクリーンします"
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "これで、最初のサンプルをデプロイする用意ができました。"
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:114
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "numberguess サンプルのデプロイ: "
+msgid ""
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:131
-#, no-c-format
+#: gettingstarted.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/numberguess\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:121
 #, no-c-format
-msgid "Start JBoss AS:"
-msgstr "JBoss AS を起動してください:"
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:125
 #, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-
-#. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr ""
-"もし Windows を使用しているのであれば、<literal>run.bat</literal> バッチコマ"
-"ンドを使用してください。"
-
-#. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
-#, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
-"アプリケーションがデプロイされるのを待って、<ulink url=\"http://"
-"localhost:8080/webbeans-numberguess\"></ulink> にアクセスして楽しんでくださ"
-"い!"
 
 #. Tag: para
-#: gettingstarted.xml:150
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
+msgid "a Windows command window:"
 msgstr ""
-"Web Beans は、テキストをラテン語に翻訳する2つ目の簡単なサンプルを含んでいま"
-"す。numberguess サンプルは、war 形式のサンプルで、簡単な bean のみを使用して"
-"います。translator サンプルは、ear 形式のサンプルで、エンタープライズ beansを"
-"含み、EJB モジュールにパッケージされています。試してみましょう:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:131
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
-"アプリケーションがデプロイされるの待って、<ulink url=\"http://localhost:8080/"
-"webbeans-translator\"></ulink> にアクセスしてください!"
 
-#. Tag: title
-#: gettingstarted.xml:167
-#, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr "Apache Tomcat 6.0 の使用"
-
 #. Tag: para
-#: gettingstarted.xml:169
+#: gettingstarted.xml:138
 #, no-c-format
 msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
-"Tomcat 6.0.18 以降を <ulink url=\"http://tomcat.apache.org/download-60.cgi"
-"\">tomcat.apache.org</ulink> からダウンロードして展開する必要があります。例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
-#, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
-
 #. Tag: para
-#: gettingstarted.xml:185
+#: gettingstarted.xml:145
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
-"次に、Web Beans にどこに Tomcat  が置かれているのかを指定する必要があります。"
-"<literal>jboss-as/build.properties</literal>  を編集して  <literal>tomcat."
-"home</literal> プロパティを設定してください。例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
-#, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
-
 #. Tag: para
-#: gettingstarted.xml:194
+#: gettingstarted.xml:152
 #, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
-"サンプルのためのビルドスクリプトには、Tomcat への多くのターゲットが定義されて"
-"います:"
 
 #. Tag: para
-#: gettingstarted.xml:200
-#, no-c-format
+#: gettingstarted.xml:158
+#, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
-"<literal>ant tomcat.restart</literal> - サンプルを展開形式フォーマットでデプ"
-"ロイします"
+"<literal>ant restart</literal> - サンプルを展開形式フォーマットでデプロイしま"
+"す"
 
 #. Tag: para
-#: gettingstarted.xml:206
+#: gettingstarted.xml:163
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"<literal>ant explode</literal> - update an exploded example, without "
 "restarting the deployment"
 msgstr ""
-"<literal>ant tomcat.explode</literal> - デプロイを最初から行うのでなく、展開"
-"形式でデプロイされたサンプルを必要な部分のみを更新します"
+"<literal>ant explode</literal> - デプロイを最初から行うのでなく、展開形式でデ"
+"プロイされたサンプルを必要な部分のみを更新します"
 
 #. Tag: para
-#: gettingstarted.xml:212
-#, no-c-format
-msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
-msgstr ""
-"<literal>ant tomcat.deploy</literal> - サンプルを圧縮 jar フォーマットでデプ"
-"ロイします"
-
-#. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
-"<literal>ant tomcat.deploy</literal> - サンプルを圧縮 jar フォーマットでデプ"
-"ロイします"
+"<literal>ant deploy</literal> - サンプルを圧縮 jar フォーマットでデプロイしま"
+"す"
 
 #. Tag: para
-#: gettingstarted.xml:222
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
-msgstr ""
-"<literal>ant tomcat.undeploy</literal> - サーバからサンプルを削除します"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
+msgstr "<literal>ant undeploy</literal> - サーバからサンプルを削除します"
 
 #. Tag: para
-#: gettingstarted.xml:227
+#: gettingstarted.xml:178
 #, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
-msgstr "<literal>ant tomcat.clean</literal> - サンプルをクリーンします"
+msgid "<literal>ant clean</literal> - clean the example"
+msgstr "<literal>ant clean</literal> - サンプルをクリーンします"
 
 #. Tag: para
-#: gettingstarted.xml:234
+#: gettingstarted.xml:185
 #, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "Tomcat への numberguess サンプルのデプロイ:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:238
-#, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
 msgstr ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
 
-#. Tag: para
-#: gettingstarted.xml:240
-#, no-c-format
-msgid "Start Tomcat:"
-msgstr "Tomcat を起動してください:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:244
-#, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-
-#. Tag: para
-#: gettingstarted.xml:247
-#, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#: gettingstarted.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
-"もし Windows を使用しているのであれば、<literal>startup.bat</literal> バッチ"
-"コマンドを使用してください。"
+"$ cd examples/translator\n"
+"ant deploy"
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr "GlassFish の使用"
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "TODO"
-msgstr "TODO"
-
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr "numberguess サンプル"
-
-#. Tag: para
-#: gettingstarted.xml:268
-#, no-c-format
 msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
-"numberguess アプリケーションは、1 から100 の間の数字を 10 回以内で推測して当"
-"てるというものです。各回の推測の後で、その値より高いか低いかが告げられます。"
 
 #. Tag: para
-#: gettingstarted.xml:274
-#, no-c-format
+#: gettingstarted.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
 msgstr ""
-"numberguess サンプルには、多くのWeb Beans と構成ファイル、Facelet JSFページか"
-"ら構成され、war 形式でパッケージされます。構成ファイルから説明を始めましょ"
-"う。"
+"ここでは、コンテキストパスを親切なurl (<ulink url=\"http://localhost:8080/"
+"webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>) に設"
+"定します。"
 
 #. Tag: para
-#: gettingstarted.xml:280
+#: gettingstarted.xml:206
 #, no-c-format
 msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
-"このサンプルの構成ファイルはすべて、<literal>WEB-INF/</literal> に配置されま"
-"す。ソースツリー上では <literal>WebContent</literal> に格納されています。まず"
-"最初に、<literal>faces-config.xml</literal> ファイルがあり、ここで JSF に "
-"Facelets を使用するように設定します:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:288
-#, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
-msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+#. Tag: title
+#: gettingstarted.xml:213
+#, fuzzy, no-c-format
+msgid "Deploying to GlassFish"
+msgstr "GlassFish の使用"
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:215
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
-"次に、空の <literal>web-beans.xml</literal> ファイルがあります。これはこのア"
-"プリケーションが Web Beans アプリケーションである印を付けて指定しています。"
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:221
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "最後に <literal>web.xml</literal> があります:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> JSF サーブレットを有効にしてロードします </para> </"
-"callout> <callout arearefs=\"faces.servlet.mapping\"> <para> <literal>.jsf</"
-"literal> ページへのリクエストを JSF で処理するように設定します </para> </"
-"callout> <callout arearefs=\"faces.default.suffix\"> <para> JSF に対してソー"
-"スファイル (Facelets) に <literal>.xhtml</literal> の拡張子を付与することを指"
-"定します  </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
-"セッションタイムアウトを 10 分に設定します </para> </callout> </calloutlist> "
-"</programlistingco> <note> <para> このデモは JSF デモであるので、どんなサーブ"
-"レットベース の Web フレームワークとでも一緒に Web Beans を使用することができ"
-"ます。</para> </note> <para> Facelets ビューを見てみましょう: </para> "
-"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
-"\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> "
-"<area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/> "
-"<area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!"
-"DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www."
-"w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets は、JSF のテンプレート言語です。ここではヘッダを定義するテン"
-"プレートでページを囲んでいます。</para> </callout> <callout arearefs="
-"\"messages2\"> <para> ユーザに送られる「もっと大きい!」や「もっと小さい!」、"
-"「正しい!」 の多くのメッセージがあります。 </para> </callout> <callout "
-"arearefs=\"instructions\"> <para> ユーザが推測するときに、推測できる数字の幅"
-"は徐々に小さくなります - この文が変わることによりどの範囲で推測するのかを確認"
-"することができます。</para> </callout> <callout arearefs=\"guess\"> <para> こ"
-"の入力フィールドは、式表現を使用して Web Bean に括り付けられます。</para> </"
-"callout> <callout arearefs=\"validator\"> <para> 範囲バリデータを使用してユー"
-"ザがそこで推測できる範囲外にある数値を誤って入力していないことを確認します - "
-"もしバリデータがここになかったら、ユーザは範囲外の数値で推測を使い果たしてし"
-"まうかもしれません。</para> </callout> <callout arearefs=\"submit\"> <para> "
-"そして、もちろん、ユーザがサーバに推測した値を送信する方法がなければなりませ"
-"ん。ここで、Web Bean のアクションメソッドに括り付けます。</para> </callout> "
-"</calloutlist> </programlistingco>"
 
-#. Tag: para
-#: gettingstarted.xml:399
+#. Tag: programlisting
+#: gettingstarted.xml:231
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"サンプルには4つのクラスが存在します。その内の最初の2つはバインディングタイ"
-"プです。1つは、ランダムな数字をインジェクトするのに使用される "
-"<literal>@Random</literal> バインディングタイプです:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:405
+#. Tag: para
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:240
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"もう1つは、インジェクトされることができる最大数をインジェクトするのに使用さ"
-"れる使われる <literal>@MaxNumber</literal> バインディングタイプです:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:412
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
 
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:248
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"<literal>Generator</literal>  クラスは、プロデューサメソッドによってランダム"
-"な数字を生成することに責任を持ちます。またプロデューメソッドによって可能な最"
-"大数を公開します:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:420
+#. Tag: para
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
-#. Tag: para
-#: gettingstarted.xml:422
+#. Tag: programlisting
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<literal>Generator</literal>  がアプリケーションスコープであるということに気"
-"づくでしょう。 それゆえに毎回異なるランダムな数字を取得するようなことはしませ"
-"ん。"
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
-"アプリケーションの最後の Web Bean は、セッションスコープの <literal>Game</"
-"literal> です。"
 
 #. Tag: para
-#: gettingstarted.xml:432
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"<literal>@Named</literal> アノテーションを使用することによって、JSF ページで "
-"EL によって bean を扱うことができるようにしています。最後に、ランダムな数を持"
-"つゲームを初期化するためにコンストラクタインジェクションを使用しています。そ"
-"してもちろん、プレーヤにいつ勝ったかを告げる必要があるので、"
-"<literal>FacesMessage</literal> でフィードバックを行います。"
 
-#. Tag: programlisting
-#: gettingstarted.xml:440
-#, no-c-format
-msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
-msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
-
 #. Tag: title
-#: gettingstarted.xml:443
-#, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "Tomcat での numberguess サンプル"
+#: gettingstarted.xml:285
+#, fuzzy, no-c-format
+msgid "Deploying to Apache Tomcat"
+msgstr "Apache Tomcat 6.0 の使用"
 
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:287
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
-"Tomcat での numberguess は、いくつかの点で異なります。第一に、Web Beans は、"
-"<literal>WEB-INF/lib</literal> に Web アプリケーションライブラリとしてデプロ"
-"イされる必要があります。便宜を図るため、どんなサーブレットコンテナでも Web "
-"Beans を実行させるのに適したであるので、単一の jar の <literal>webbeans-"
-"servlet.jar</literal> を提供します。"
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
-"もちろん、JEEサーバにデフォルトで含まれているコモンアノテーション "
-"(<literal>jsr250-api.jar</literal>) と同様に、JSF と EL も含める必要がありま"
-"す。"
 
 #. Tag: para
-#: gettingstarted.xml:461
-#, no-c-format
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
 msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
-"第二に、<literal>web.xml</literal> に明示的にサーブレットリスナーを指定する必"
-"要があります(Web Beans をブートするのに使用され、リクエストとの相互作用を制御"
-"します):"
+"Tomcat 6.0.18 以降を <ulink url=\"http://tomcat.apache.org/download-60.cgi"
+"\">tomcat.apache.org</ulink> からダウンロードして展開する必要があります。例:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
-#, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+#: gettingstarted.xml:302
+#, fuzzy, no-c-format
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
 
-#. Tag: title
-#: gettingstarted.xml:472
-#, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "Apache Wicket 向けの numberguess サンプル"
-
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
-"JSR-299 が Java ServerFaces との統合の仕様を定める一方で、Web Beans は "
-"Wicket コンポーネントへインジェクトすることを可能にし、Wicket で対話コンテキ"
-"ストを使用することも可能にします。このセクションでは、numberguess サンプルの "
-"Wicket バージョンを一つずつ説明します。"
 
-#. Tag: para
-#: gettingstarted.xml:482
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+msgid "Deploying with Ant"
 msgstr ""
-"<ulink url=\"http://wicket.apache.org/\">http://wicket.apache.org/</ulink> "
-"の Wicket ドキュメントを見直すこともできます。"
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
-"これまでのサンプルと同じよう、Wicket WebBeans サンプルは <literal>webbeans-"
-"servlet</literal> モジュールを利用します。<ulink url=\"http://jetty.mortbay."
-"org/\">Jetty サーブレットコンテナ</ulink> の使用は Wicket コミュニティでは一"
-"般的なので、標準 Wicket サンプルとこれらのサンプルとの比較を容易にするため"
-"に、また webbeans-サーブレットの統合がサーブレットコンテナとしての Tomcat に"
-"依存していないことを示すために、ここでは実行コンテナとしてJetty サーブレット"
-"コンテナを選択しています。"
 
+#. Tag: programlisting
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
+
 #. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
-msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
-msgstr ""
-"これらのサンプルは、Eclipse IDE を利用します。またアプリケーションをデプロイ"
-"する命令は、コマンドラインから入力します。"
+#: gettingstarted.xml:323
+#, fuzzy, no-c-format
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "Tomcat への numberguess サンプルのデプロイ:"
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr "Eclipse プロジェクトの作成"
-
 #. Tag: para
-#: gettingstarted.xml:507
+#: gettingstarted.xml:327
 #, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr "サンプルから Eclipse プロジェクトを生成します:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn eclipse:eclipse]]>"
 
-#. Tag: para
-#: gettingstarted.xml:513
+#. Tag: programlisting
+#: gettingstarted.xml:332
 #, fuzzy, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
-"次に eclipse で <emphasis>ファイル -> インポート -> 一般 -> 既存のプロジェク"
-"トをワークスペースへ</emphasis> を選んで、numberguess サンプルのルートディレ"
-"クトリを指定して、完了をクリックします。これにより ワークスペースに "
-"<literal>webbeans-wicket-numberguess</literal> という名前のプロジェクトが作成"
-"されます。"
+"$ cd examples/numberguess\n"
+"ant deploy"
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr "Eclipse からのサンプルの実行"
-
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
-"このプロジェクトは、<literal>Start</literal> クラスで Jetty のインスタンスを"
-"作成する<literal>wicket-quickstart</literal> のアプローチに従っています。よっ"
-"て、サンプルを実行するには <emphasis>パッケージエクスプローラ</emphasis> で "
-"<literal>src/test/java</literal> にあるスタートクラスを右クリックし、"
-"<emphasis>Run as Java Application</emphasis> を選択して、簡単に実行できます。"
-"Jetty が起動するのをコンソール出力で確認してください。起動すれば"
-"<literal>http://localhost:8080</literal> からアプリケーションをアクセスしてく"
-"ださい。デバッグするためには <emphasis>Debug as Java Application</emphasis> "
-"を選択してください。"
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
-msgstr "JBoss AS または Tomcat でコマンドラインからのサンプルの実行"
-
 #. Tag: para
-#: gettingstarted.xml:548
-#, no-c-format
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
-"このサンプルはコマンドラインからもデプロイすることができます(その他のサンプル"
-"と同様に)。<literal>examples</literal> ディレクトリ内の<literal>build."
-"properties</literal>ファイルでJBoss AS あるいは Tomcat の場所を指定したとする"
-"と、以前に述べたように、<literal>examples/wicket/numberguess</literal> ディレ"
-"クトリで <literal>ant deploy</literal> を実行して、<literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal> からアプリケーションにア"
-"クセスすることができます。"
+"<literal>ant tomcat.restart</literal> - サンプルを展開形式フォーマットでデプ"
+"ロイします"
 
-#. Tag: title
-#: gettingstarted.xml:562
-#, no-c-format
-msgid "Understanding the code"
-msgstr "コードの理解"
-
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:346
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
-"JSF はユニファイド EL 式を使用して、JSP あるいは Facelet ビューのビューレイヤ"
-"コンポーネントを Bean にバインドします。Wicket は Java でコンポーネントを定義"
-"します。マークアップ は、html 要素とビューコンポーネントとの1対1のマッピン"
-"グを行うプレーンな html です。モデルへのコンポーネントのバインディングと"
-"ビューアクションの応答のコントロールを含むすべてのビューロジックは Java で処"
-"理されます。Web Beans と Wicket の統合により、WebPage サブクラス(あるいは他の"
-"カスタム Wicket コンポーネントサブクラスに)への注入を提供するビジネスレイヤで"
-"同一バインディングアノテーションを利用できるようになります。"
+"<literal>ant tomcat.explode</literal> - デプロイを最初から行うのでなく、展開"
+"形式でデプロイされたサンプルを必要な部分のみを更新します"
 
 #. Tag: para
-#: gettingstarted.xml:576
-#, no-c-format
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
 msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
-"Wicket numberguess サンプルのコードは、JSFベースの numberguess サンプルにとて"
-"も類似しています。ビジネス層レイヤは同一です。"
+"<literal>ant tomcat.deploy</literal> - サンプルを圧縮 jar フォーマットでデプ"
+"ロイします"
 
 #. Tag: para
-#: gettingstarted.xml:581
-#, no-c-format
-msgid "Differences are:"
-msgstr "違いは以下の通りです:"
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - サーバからサンプルを削除します"
 
 #. Tag: para
-#: gettingstarted.xml:586
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
-"各々の Wicket アプリケーションは、<literal>WebApplication</literal> サブクラ"
-"スを持たなければなりません。サンプルの場合、アプリケーションクラスは "
-"<literal>SampleApplication</literal> です:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
-#, no-c-format
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
 
-#. Tag: para
-#: gettingstarted.xml:593
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
-"このクラスはどのページを Wicket がホームページとして取り扱うべきかを指定して"
-"います。サンプルでは <literal>HomePage.class</literal> です。"
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:599
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
-"<literal>HomePage</literal>では、 ページ要素を設定するために典型的な Wicket "
-"コードを見ることができます。面白い箇所は、<literal>Game</literal> bean の注入"
-"です:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:605
+#. Tag: title
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
-msgstr "<![CDATA[ @Current Game game;]]>"
+msgid "Deploying with Maven"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
-"<literal>Game</literal> bean 例えば、推測を送信するコードによって使用されま"
-"す:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:612
-#, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
-msgstr ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
-
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:396
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
-"すべての注入はシリアライズされます。Bean の実際の保管は、JSR-299 によって管理"
-"されます。Wicket コンポーネントは、HomePage やそのサブクラスと同様に、JSR-"
-"299 beans<emphasis>ではない</emphasis> ことに注意してください。"
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:403
 #, no-c-format
 msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
-"Wicket コンポーネントは注入を許可します。しかし <literal>@PostConstruct</"
-"literal> あるいは <literal>@Initializer</literal> といったインタセプタやデコ"
-"レータ、ライフサイクルコールバックを使用することは<emphasis>できません</"
-"emphasis>。"
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
-"サンプルではボタンイベント処理のために AJAX を使用して、例えばユーザがゲーム"
-"に勝利したときに、もはや適切でなくなったボタンを動的に隠しています。"
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
-"この webapp のための Wicket を有効化するために、Wicket フィルタが web.xml に"
-"加えられ、アプリケーションクラスが指定されます:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:414
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
-"Tomcat サンプルと同様に、Jetty が起動したときに Web Beans をブートストラップ"
-"し、Jetty のサーブレットリクエストとセッションライフサイクルへ Web Beans を"
-"フックするために、サーブレットリスナも追加されていることに注意してください。"
 
-#. Tag: title
-#: gettingstarted.xml:658
+#. Tag: programlisting
+#: gettingstarted.xml:420
 #, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "Java SE 上の Swing 向けの numberguess サンプル"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
-"このサンプルは、Web Beans のディストリビューションの <literal>examples/se/"
-"numberguess</literal> フォルダ に見つけることができます。"
 
 #. Tag: para
-#: gettingstarted.xml:667
+#: gettingstarted.xml:427
 #, no-c-format
-msgid "To run this example:"
-msgstr "このサンプルの実行方法:"
-
-#. Tag: para
-#: gettingstarted.xml:673
-#, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
-"<literal>examples/se/numberguess</literal> ディレクトリでコマンドライン/ター"
-"ミナルウィンドウを開いてください"
 
-#. Tag: para
-#: gettingstarted.xml:679
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
-"Maven 2 がインストールされていてパスに設定されていることを確認してください"
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
-"<literal>JAVA_HOME</literal> 環境変数がJDKのインストール場所を指定しているを"
-"確認してください"
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr "以下のコマンドを実行してください"
-
 #. Tag: programlisting
-#: gettingstarted.xml:693
+#: gettingstarted.xml:441
 #, no-c-format
-msgid "mvn -Drun"
-msgstr "mvn -Drun"
-
-#. Tag: para
-#: gettingstarted.xml:699
-#, no-c-format
-msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
-"ルートパッケージの中には空の <literal>beans.xml</literal> ファイル "
-"(<literal>src/main/resources/beans.xml</literal>) があります。これによりこの"
-"アプリケーションが Web Beans アプリケーションであるという印をつけます。"
 
 #. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
-"ゲームのメインロジックは、 <literal>Game.java</literal> にあります。以下はそ"
-"のクラスのコードで、Web アプリケーションバージョンから変更された箇所を目立た"
-"せています:"
 
-#. Tag: section
-#: gettingstarted.xml:709
+#. Tag: title
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
+msgid "Deploying to Jetty"
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> アプ"
-"リケーションのインスタンスが唯一の「セッション」を表すので、Bean はセッション"
-"スコープではなくアプリケーションスコープです。 </para> </callout> <callout "
-"arearefs=\"name\"> <para> EL 経由でアクセスされる必要がないので、Bean には名"
-"前がつけられていません </para> </callout> <callout arearefs=\"messages1\"> "
-"<para> メッセージを付加するための JSF <literal>FacesContext</literal> はあり"
-"ません。その代わりに <literal>Game</literal>  クラスは以下の現在のゲーム状態"
-"に関する追加情報を提供します: </para> <itemizedlist> <listitem> <para> ゲーム"
-"は勝ったのかあるいは負けたのか </para> </listitem> <listitem> <para> 最も直前"
-"の推測は外れだったのか </para> </listitem> </itemizedlist> <para> ゲームの間"
-"にユーザに表示するべき適切なメッセージを決定するために Swing UI がゲームの状"
-"態を問い合わせることを可能にし、それは <literal>MessageGenerator</literal> と"
-"呼ばれるクラスを経由して間接的に行われます。 </para> </callout> <callout "
-"arearefs=\"validation\"> <para> 専用のバリデーションフェーズがないので、ユー"
-"ザ入力のバリデーションは <literal>check()</literal> メソッドの間に実行されま"
-"す </para> </callout> <callout arearefs=\"reset\"> <para> それぞれのゲームの"
-"開始時にランダム数を取得するために、<literal>reset()</literal> メソッドは、注"
-"入された <literal>rndGenerator</literal> を呼び出します。そこには JSF リクエ"
-"ストの間にようなアクティブコンテキストはないのでは、<literal>manager."
-"getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})</"
-"literal> を使用することはできません。</para> </callout> </calloutlist> </"
-"programlistingco> <para> <literal>MessageGenerator</literal> クラスは "
-"<literal>Game</literal> の現在のインスタンスに依存し、直前の推測への応答と"
-"ユーザの次の推測のためのプロンプトとして提供すべき適切なメッセージを決定する"
-"ために、状態を問い合わせします。<literal>MessageGenerator</literal> のコード"
-"は、以下の通りです: </para> <programlistingco> <areaspec> <area id=\"game\" "
-"coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" "
-"coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public "
-"class MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> アプリ"
-"ケーションのための <literal>Game</literal> のインスタンスは、ここで注入されま"
-"す。</para> </callout> <callout arearefs=\"challenge\"> <para> 適切な挑戦メッ"
-"セージを決めるために、<literal>Game</literal>の状態が問い合わせられます。</"
-"para> </callout> <callout arearefs=\"result\"> <para> ユーザを祝福するか、あ"
-"るいは慰めるか、続けるように励ますかを再び決定します。</para> </callout> </"
-"calloutlist> </programlistingco> <para> 最後に、推測ゲームの Swing フロントエ"
-"ンドを提供する <literal>NumberGuessFrame</literal> クラスを見てみます。</"
-"para> <programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area "
-"id=\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> ゲー"
-"ム(ロジックと状態)の注入されたインスタンス。</para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> UI メッセージのための注入されたジェネレータ。"
-"</para> </callout> <callout arearefs=\"start\"> <para> <literal>@Deployed "
-"Manager</literal> イベントを監視することにより、このアプリケーションは通常の "
-"Web Beans SE の方法で開始されます。</para> </callout> <callout arearefs="
-"\"init\"> <para> このメソッドはすべての Swing コンポーネントを初期化します。"
-"<literal>msgGenerator</literal> の使用 に注意してください。 </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> は、「推測」ボタンがクリックさ"
-"れたときに呼ばれ、以下のことを行います: </para> <itemizedlist> <listitem> "
-"<para> ユーザによって入力された推測を取得して、<literal>Game</literal> に現在"
-"の推測をセットします </para> </listitem> <listitem> <para> バリデートしてゲー"
-"ムの1つの「順番」を実行するために <literal>game.check()</literal> を呼び出し"
-"ます </para> </listitem> <listitem> <para> <literal>refreshUI</literal> を呼"
-"び出します。もし入力にバリデーションエラーがあれば、これは <literal>game."
-"check()</literal> の間に捕捉され、<literal>MessageGenerator</literal> によっ"
-"て返されるメッセージに反映され、続いてユーザに表示されます。もしバリデーショ"
-"ンエラーがなければ、ユーザは再び推測結果(より高いかより低いか)を告げられる"
-"か、あるいはゲームは勝利(正しい推測)または負け(推測を使い尽くし)でゲームを終"
-"えます。</para> </listitem> </itemizedlist> </callout> <callout arearefs="
-"\"replay\"> <para> <literal>replayBtnActionPerformed</literal>  は、新しい"
-"ゲームを始めるために単に <literal>game.reset()</literal> を呼んで、UIのメッ"
-"セージを新しくします。</para> </callout> <callout arearefs=\"refresh\"> "
-"<para> <literal>refreshUI</literal> は、ゲームの現在の状況に基づいてユーザへ"
-"のメッセージを更新するために、<literal>MessageGenerator</literal> を使いま"
-"す。</para> </callout> </calloutlist> </programlistingco>"
 
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "translator サンプル"
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:457
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
-"translator サンプルは、入力するどんな文章も受け取り、それをラテン語に翻訳しま"
-"す。"
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:464
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
-"translator サンプルは ear としてビルドされ、EJB を含みます。その結果として、"
-"numberguess サンプルよりも構造が複雑です。"
 
 #. Tag: para
-#: gettingstarted.xml:930
+#: gettingstarted.xml:470
 #, no-c-format
 msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
-"EJB 3.1 と Jave EE 6 により EJB を war にパッケージングすることが可能になりま"
-"す。これによりこの構造はもっと簡単になります。"
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
-"まず最初に、<literal>webbeans-translator-ear</literal> モジュール にある ear "
-"形式の aggregatorを見てみましょう。Maven が自動的に <literal>application."
-"xml</literal> を生成します:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:942
-#, no-c-format
+#: gettingstarted.xml:485
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+"<![CDATA[cd examples/wicket/numberguess\n"
+"mvn eclipse:eclipse]]>"
 
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
-"ここでは、コンテキストパスを親切なurl (<ulink url=\"http://localhost:8080/"
-"webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>) に設"
-"定します。"
 
 #. Tag: para
-#: gettingstarted.xml:950
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"もしこれらのファイルを生成するのに Maven を使用しなければ、<literal>META-INF/"
-"application.xml</literal> が必要になります:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:501
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
-"<![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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"次に、war を見てみましょう。ちょうど numberguess サンプルと同様に、"
-"WebContent/WEB-INF に <literal>faces-config.xml</literal> (faceletを有効化す"
-"る)と <literal>web.xml</literal> (JSFを有効化する)があります。"
 
 #. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
-"興味深いことに facelet がテキストを翻訳するのに使用されています。ちょうど "
-"numberguess サンプルでテンプレートを使用しているのと同様に、フォームで囲まれ"
-"ています(短くするためにここでは省略しています):"
 
+#. Tag: para
+#: gettingstarted.xml:516
+#, fuzzy, no-c-format
+msgid "First, initialize the Eclipse project:"
+msgstr "Eclipse プロジェクトの作成"
+
 #. Tag: programlisting
-#: gettingstarted.xml:971
+#: gettingstarted.xml:520
 #, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:522
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
-"ユーザが左側のテキストエリアにテキストを入力して、翻訳ボタンを押すことにより"
-"その右側に結果を確認できます。"
 
-#. Tag: para
-#: gettingstarted.xml:978
+#. Tag: programlisting
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"最後に、ejbモジュール <literal>webbeans-translator-ejb</literal> を見てみま"
-"しょう。<literal>src/main/resources/META-INF</literal> には、単に空の "
-"<literal>web-beans.xml</literal> があり、このアーカイブが Web Beans を含んで"
-"いるという印を付けるのに使用されています。"
 
 #. Tag: para
-#: gettingstarted.xml:986
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
-"最も面白い箇所、コードは最後にとっておきました。プロジェクトには2つの単純な "
-"Bean の <literal>SentenceParser</literal> と<literal>TextTranslator</"
-"literal> と、2つのエンタープライズBean の "
-"<literal>TranslatorControllerBean</literal> と <literal>SentenceTranslator</"
-"literal> があります。今までで Web Bean がどうようなものであるか詳しくなってき"
-"たので、ここでは、最も面白い箇所を取り上げましょう。"
 
 #. Tag: para
-#: gettingstarted.xml:996
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"<literal>SentenceParser</literal> と <literal>TextTranslator</literal> の両方"
-"とも依存 beans で、TextTranslator はコンストラクタ初期化を使用します:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "JSR-299 参照実装 Web Beans を始めよう"
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
-msgstr ""
-"<literal>TextTranslator</literal> は、(ローカルビジネスインタフェースをもつ)"
-"ステートレスな bean です。ここで手品が起こります - もちろん、完全な "
-"translator を開発できているわけでないので、翻訳はダミーの結果が返ります。"
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "Web Beans は <ulink url=\"http://seamframework.org/WebBeans\"> Seam プロ"
+#~ "ジェクト</ulink> で開発されています。Web Beans の開発者向け最新リリースは "
+#~ "<ulink url=\"http://seamframework.org/Download\">ダウンロードページ</"
+#~ "ulink> からダウンロードすることができます。"
 
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
-msgstr ""
-"最後に、ユーザからのテキストを受け付けて、translator にそれをディスパッチす"
-"る UI に基づいたコントローラがあります。これは、translator をインジェクトす"
-"る、リクエストスコープの名前をつけられたステートフルセッション Beanです。"
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "Web Beans は、2つのデプロイ可能なサンプルアプリケーションが一緒に提供され"
+#~ "ます:簡単な bean のみを含む war サンプルの <literal>webbeans-numberguess</"
+#~ "literal> とエンタープライズ beanを含む ear サンプルの <literal>webbeans-"
+#~ "translator</literal> です。また numberguess サンプルには2種類のサンプルが"
+#~ "あります。Tomcat サンプル(Tomcatへのデプロイに適している)と、JSF2 を実行さ"
+#~ "せる場合に使用できる JSF2 サンプルです。サンプルを実行するためには、以下の"
+#~ "ものが必要です:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.1.GA あるいは"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr ""
-"Beanは、ページ上のすべてのフィールドに対して getter と setter も持っていま"
-"す。"
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr ""
-"これはステートフルセッション Bean ですので、remove メソッドを持つ必要がありま"
-"す:"
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "JBoss AS 5.0.1.GA は <ulink url=\"http://www.jboss.org/jbossas/downloads/"
+#~ "\">jboss.org</ulink> からダウンロードして展開する必要があります。例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
-msgstr ""
-"Web Beans マネージャは、Bean が破棄されるときにremove メソッドを呼び出しま"
-"す。このサンプルの場合は、リクエストの終わりです。"
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "次に、Web Beans を <ulink url=\"http://seamframework.org/Download"
+#~ "\">seamframework.org</ulink> からダウンロードして展開してください。例:"
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, no-c-format
-msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
-msgstr ""
-"Web Beans サンプルの短いツアーはこれで終わります。Web Beans についての詳細や"
-"手助けをするには、どうぞ <ulink url=\"http://www.seamframework.org/WebBeans/"
-"Development\">http://www.seamframework.org/WebBeans/Development</ulink> にア"
-"クセスしてください。"
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""
-"私たちはすべての領域 - バクフィックス、新機能の記述、サンプルの記述、リファレ"
-"ンスガイドの翻訳で協力を必要としています。"
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "次に、Web Beans にどこに JBoss が置かれているのかを指定する必要がありま"
+#~ "す。<literal>jboss-as/build.properties</literal> を編集して "
+#~ "<literal>jboss.home</literal> プロパティを設定してください。例:"
+
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "Web Beans をインストールするためには、Ant 1.7.0 をインストールし、"
+#~ "<literal>ANT_HOME</literal> 環境変数を設定する必要があります。例:"
+
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+
+#~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "これで最新版をインストールすることができます。更新スクリプトは、Web Beans "
+#~ "を自動的にダウンロードするために Maven を使用します。"
+
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "サンプルのためのビルドスクリプトには、JBoss AS への多くのターゲットが定義"
+#~ "されています:"
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "numberguess サンプルのデプロイ: "
+
+#~ msgid "Start JBoss AS:"
+#~ msgstr "JBoss AS を起動してください:"
+
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+
+#~ msgid "If you use Windows, use the <literal>run.bat</literal>script."
+#~ msgstr ""
+#~ "もし Windows を使用しているのであれば、<literal>run.bat</literal> バッチコ"
+#~ "マンドを使用してください。"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "アプリケーションがデプロイされるのを待って、<ulink url=\"http://"
+#~ "localhost:8080/webbeans-numberguess\"></ulink> にアクセスして楽しんでくだ"
+#~ "さい!"
+
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Web Beans は、テキストをラテン語に翻訳する2つ目の簡単なサンプルを含んでい"
+#~ "ます。numberguess サンプルは、war 形式のサンプルで、簡単な bean のみを使用"
+#~ "しています。translator サンプルは、ear 形式のサンプルで、エンタープライズ "
+#~ "beansを含み、EJB モジュールにパッケージされています。試してみましょう:"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "アプリケーションがデプロイされるの待って、<ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink> にアクセスしてください!"
+
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "次に、Web Beans にどこに Tomcat  が置かれているのかを指定する必要がありま"
+#~ "す。<literal>jboss-as/build.properties</literal>  を編集して  "
+#~ "<literal>tomcat.home</literal> プロパティを設定してください。例:"
+
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "サンプルのためのビルドスクリプトには、Tomcat への多くのターゲットが定義さ"
+#~ "れています:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.deploy</literal> - サンプルを圧縮 jar フォーマットでデ"
+#~ "プロイします"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.undeploy</literal> - サーバからサンプルを削除します"
+
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant tomcat.clean</literal> - サンプルをクリーンします"
+
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+
+#~ msgid "Start Tomcat:"
+#~ msgstr "Tomcat を起動してください:"
+
+#~ msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#~ msgstr ""
+#~ "もし Windows を使用しているのであれば、<literal>startup.bat</literal> バッ"
+#~ "チコマンドを使用してください。"
+
+#~ msgid "TODO"
+#~ msgstr "TODO"
+
+#~ msgid "The numberguess example"
+#~ msgstr "numberguess サンプル"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "numberguess アプリケーションは、1 から100 の間の数字を 10 回以内で推測して"
+#~ "当てるというものです。各回の推測の後で、その値より高いか低いかが告げられま"
+#~ "す。"
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "numberguess サンプルには、多くのWeb Beans と構成ファイル、Facelet JSFペー"
+#~ "ジから構成され、war 形式でパッケージされます。構成ファイルから説明を始めま"
+#~ "しょう。"
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "このサンプルの構成ファイルはすべて、<literal>WEB-INF/</literal> に配置され"
+#~ "ます。ソースツリー上では <literal>WebContent</literal> に格納されていま"
+#~ "す。まず最初に、<literal>faces-config.xml</literal> ファイルがあり、ここ"
+#~ "で JSF に Facelets を使用するように設定します:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "次に、空の <literal>web-beans.xml</literal> ファイルがあります。これはこの"
+#~ "アプリケーションが Web Beans アプリケーションである印を付けて指定していま"
+#~ "す。"
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "最後に <literal>web.xml</literal> があります:"
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> JSF サーブレットを有効にしてロードします </para> </"
+#~ "callout> <callout arearefs=\"faces.servlet.mapping\"> <para> <literal>."
+#~ "jsf</literal> ページへのリクエストを JSF で処理するように設定します </"
+#~ "para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> JSF に"
+#~ "対してソースファイル (Facelets) に <literal>.xhtml</literal> の拡張子を付"
+#~ "与することを指定します  </para> </callout> <callout arearefs=\"session."
+#~ "timeout\"> <para> セッションタイムアウトを 10 分に設定します </para> </"
+#~ "callout> </calloutlist> </programlistingco> <note> <para> このデモは JSF "
+#~ "デモであるので、どんなサーブレットベース の Web フレームワークとでも一緒"
+#~ "に Web Beans を使用することができます。</para> </note> <para> Facelets "
+#~ "ビューを見てみましょう: </para> <programlistingco> <areaspec> <area id="
+#~ "\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
+#~ "id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> "
+#~ "<area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/"
+#~ "> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//"
+#~ "DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-"
+#~ "transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets は、JSF のテンプレート言語です。ここではヘッダを定義するテ"
+#~ "ンプレートでページを囲んでいます。</para> </callout> <callout arearefs="
+#~ "\"messages2\"> <para> ユーザに送られる「もっと大きい!」や「もっと小さ"
+#~ "い!」、「正しい!」 の多くのメッセージがあります。 </para> </callout> "
+#~ "<callout arearefs=\"instructions\"> <para> ユーザが推測するときに、推測で"
+#~ "きる数字の幅は徐々に小さくなります - この文が変わることによりどの範囲で推"
+#~ "測するのかを確認することができます。</para> </callout> <callout arearefs="
+#~ "\"guess\"> <para> この入力フィールドは、式表現を使用して Web Bean に括り付"
+#~ "けられます。</para> </callout> <callout arearefs=\"validator\"> <para> 範"
+#~ "囲バリデータを使用してユーザがそこで推測できる範囲外にある数値を誤って入力"
+#~ "していないことを確認します - もしバリデータがここになかったら、ユーザは範"
+#~ "囲外の数値で推測を使い果たしてしまうかもしれません。</para> </callout> "
+#~ "<callout arearefs=\"submit\"> <para> そして、もちろん、ユーザがサーバに推"
+#~ "測した値を送信する方法がなければなりません。ここで、Web Bean のアクション"
+#~ "メソッドに括り付けます。</para> </callout> </calloutlist> </"
+#~ "programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "サンプルには4つのクラスが存在します。その内の最初の2つはバインディングタ"
+#~ "イプです。1つは、ランダムな数字をインジェクトするのに使用される "
+#~ "<literal>@Random</literal> バインディングタイプです:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "もう1つは、インジェクトされることができる最大数をインジェクトするのに使用"
+#~ "される使われる <literal>@MaxNumber</literal> バインディングタイプです:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "<literal>Generator</literal>  クラスは、プロデューサメソッドによってランダ"
+#~ "ムな数字を生成することに責任を持ちます。またプロデューメソッドによって可能"
+#~ "な最大数を公開します:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "<literal>Generator</literal>  がアプリケーションスコープであるということに"
+#~ "気づくでしょう。 それゆえに毎回異なるランダムな数字を取得するようなことは"
+#~ "しません。"
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "アプリケーションの最後の Web Bean は、セッションスコープの <literal>Game</"
+#~ "literal> です。"
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "<literal>@Named</literal> アノテーションを使用することによって、JSF ページ"
+#~ "で EL によって bean を扱うことができるようにしています。最後に、ランダムな"
+#~ "数を持つゲームを初期化するためにコンストラクタインジェクションを使用してい"
+#~ "ます。そしてもちろん、プレーヤにいつ勝ったかを告げる必要があるので、"
+#~ "<literal>FacesMessage</literal> でフィードバックを行います。"
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "Tomcat での numberguess サンプル"
+
+#~ msgid ""
+#~ "The numberguess for Tomcat differs in a couple of ways. Firstly, Web "
+#~ "Beans should be deployed as a Web Application library in <literal>WEB-INF/"
+#~ "lib</literal>. For your convenience we provide a single jar suitable for "
+#~ "running Web Beans in any servlet container <literal>webbeans-servlet.jar</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Tomcat での numberguess は、いくつかの点で異なります。第一に、Web Beans "
+#~ "は、<literal>WEB-INF/lib</literal> に Web アプリケーションライブラリとして"
+#~ "デプロイされる必要があります。便宜を図るため、どんなサーブレットコンテナで"
+#~ "も Web Beans を実行させるのに適したであるので、単一の jar の "
+#~ "<literal>webbeans-servlet.jar</literal> を提供します。"
+
+#~ msgid ""
+#~ "Of course, you must also include JSF and EL, as well common annotations "
+#~ "(<literal>jsr250-api.jar</literal>) which a JEE server includes by "
+#~ "default."
+#~ msgstr ""
+#~ "もちろん、JEEサーバにデフォルトで含まれているコモンアノテーション "
+#~ "(<literal>jsr250-api.jar</literal>) と同様に、JSF と EL も含める必要があり"
+#~ "ます。"
+
+#~ msgid ""
+#~ "Secondly, we need to explicitly specify the servlet listener (used to "
+#~ "boot Web Beans, and control it's interaction with requests) in "
+#~ "<literal>web.xml</literal>:"
+#~ msgstr ""
+#~ "第二に、<literal>web.xml</literal> に明示的にサーブレットリスナーを指定す"
+#~ "る必要があります(Web Beans をブートするのに使用され、リクエストとの相互作"
+#~ "用を制御します):"
+
+#~ msgid ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "Apache Wicket 向けの numberguess サンプル"
+
+#~ msgid ""
+#~ "Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans "
+#~ "allows you to inject into Wicket components, and also allows you to use a "
+#~ "conversation context with Wicket. In this section, we'll walk you through "
+#~ "the Wicket version of the numberguess example."
+#~ msgstr ""
+#~ "JSR-299 が Java ServerFaces との統合の仕様を定める一方で、Web Beans は "
+#~ "Wicket コンポーネントへインジェクトすることを可能にし、Wicket で対話コンテ"
+#~ "キストを使用することも可能にします。このセクションでは、numberguess サンプ"
+#~ "ルの Wicket バージョンを一つずつ説明します。"
+
+#~ msgid ""
+#~ "You may want to review the Wicket documentation at <ulink url=\"http://"
+#~ "wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+#~ msgstr ""
+#~ "<ulink url=\"http://wicket.apache.org/\">http://wicket.apache.org/</"
+#~ "ulink> の Wicket ドキュメントを見直すこともできます。"
+
+#~ msgid ""
+#~ "Like the previous example, the Wicket WebBeans examples make use of the "
+#~ "<literal>webbeans-servlet</literal> module. The use of the <ulink url="
+#~ "\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common "
+#~ "in the Wicket community, and is chosen here as the runtime container in "
+#~ "order to facilitate comparison between the standard Wicket examples and "
+#~ "these examples, and also to show how the webbeans-servlet integration is "
+#~ "not dependent upon Tomcat as the servlet container."
+#~ msgstr ""
+#~ "これまでのサンプルと同じよう、Wicket WebBeans サンプルは "
+#~ "<literal>webbeans-servlet</literal> モジュールを利用します。<ulink url="
+#~ "\"http://jetty.mortbay.org/\">Jetty サーブレットコンテナ</ulink> の使用は "
+#~ "Wicket コミュニティでは一般的なので、標準 Wicket サンプルとこれらのサンプ"
+#~ "ルとの比較を容易にするために、また webbeans-サーブレットの統合がサーブレッ"
+#~ "トコンテナとしての Tomcat に依存していないことを示すために、ここでは実行コ"
+#~ "ンテナとしてJetty サーブレットコンテナを選択しています。"
+
+#~ msgid ""
+#~ "These examples make use of the Eclipse IDE; instructions are also given "
+#~ "to deploy the application from the command line."
+#~ msgstr ""
+#~ "これらのサンプルは、Eclipse IDE を利用します。またアプリケーションをデプロ"
+#~ "イする命令は、コマンドラインから入力します。"
+
+#~ msgid "To generate an Eclipse project from the example:"
+#~ msgstr "サンプルから Eclipse プロジェクトを生成します:"
+
+#, fuzzy
+#~ msgid ""
+#~ "Then, from eclipse, choose <emphasis>File -> Import -> General -> "
+#~ "Existing Projects into Workspace</emphasis>, select the root directory of "
+#~ "the numberguess example, and click finish. Note that if you do not intend "
+#~ "to run the example with jetty from within eclipse, omit the \"-Pjetty.\" "
+#~ "This will create a project in your workspace called <literal>webbeans-"
+#~ "wicket-numberguess</literal>"
+#~ msgstr ""
+#~ "次に eclipse で <emphasis>ファイル -> インポート -> 一般 -> 既存のプロジェ"
+#~ "クトをワークスペースへ</emphasis> を選んで、numberguess サンプルのルート"
+#~ "ディレクトリを指定して、完了をクリックします。これにより ワークスペースに "
+#~ "<literal>webbeans-wicket-numberguess</literal> という名前のプロジェクトが"
+#~ "作成されます。"
+
+#~ msgid "Running the example from Eclipse"
+#~ msgstr "Eclipse からのサンプルの実行"
+
+#~ msgid ""
+#~ "This project follows the <literal>wicket-quickstart</literal> approach of "
+#~ "creating an instance of Jetty in the <literal>Start</literal> class. So "
+#~ "running the example is as simple as right-clicking on that Start class in "
+#~ "<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+#~ "emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+#~ "should see console output related to Jetty starting up; then visit able "
+#~ "<literal>http://localhost:8080</literal> to view the app. To debug choose "
+#~ "<emphasis>Debug as Java Application</emphasis>."
+#~ msgstr ""
+#~ "このプロジェクトは、<literal>Start</literal> クラスで Jetty のインスタンス"
+#~ "を作成する<literal>wicket-quickstart</literal> のアプローチに従っていま"
+#~ "す。よって、サンプルを実行するには <emphasis>パッケージエクスプローラ</"
+#~ "emphasis> で <literal>src/test/java</literal> にあるスタートクラスを右ク"
+#~ "リックし、<emphasis>Run as Java Application</emphasis> を選択して、簡単に"
+#~ "実行できます。Jetty が起動するのをコンソール出力で確認してください。起動す"
+#~ "れば<literal>http://localhost:8080</literal> からアプリケーションをアクセ"
+#~ "スしてください。デバッグするためには <emphasis>Debug as Java Application</"
+#~ "emphasis> を選択してください。"
+
+#~ msgid "Running the example from the command line in JBoss AS or Tomcat"
+#~ msgstr "JBoss AS または Tomcat でコマンドラインからのサンプルの実行"
+
+#~ msgid ""
+#~ "This example can also be deployed from the command line in a (similar to "
+#~ "the other examples). Assuming you have set up the <literal>build."
+#~ "properties</literal> file in the <literal>examples</literal> directory to "
+#~ "specify the location of JBoss AS or Tomcat, as previously described, you "
+#~ "can run <literal>ant deploy</literal> from the <literal>examples/wicket/"
+#~ "numberguess</literal> directory, and access the application at "
+#~ "<literal>http://localhost:8080/webbeans-numberguess-wicket</literal>."
+#~ msgstr ""
+#~ "このサンプルはコマンドラインからもデプロイすることができます(その他のサン"
+#~ "プルと同様に)。<literal>examples</literal> ディレクトリ内の<literal>build."
+#~ "properties</literal>ファイルでJBoss AS あるいは Tomcat の場所を指定したと"
+#~ "すると、以前に述べたように、<literal>examples/wicket/numberguess</"
+#~ "literal> ディレクトリで <literal>ant deploy</literal> を実行して、"
+#~ "<literal>http://localhost:8080/webbeans-numberguess-wicket</literal> から"
+#~ "アプリケーションにアクセスすることができます。"
+
+#~ msgid "Understanding the code"
+#~ msgstr "コードの理解"
+
+#~ msgid ""
+#~ "JSF uses Unified EL expressions to bind view layer components in JSP or "
+#~ "Facelet views to beans, Wicket defines it's components in Java. The "
+#~ "markup is plain html with a one-to-one mapping between html elements and "
+#~ "the view components. All view logic, including binding of components to "
+#~ "models and controlling the response of view actions, is handled in Java. "
+#~ "The integration of Web Beans with Wicket takes advantage of the same "
+#~ "binding annotations used in your business layer to provide injection into "
+#~ "your WebPage subclass (or into other custom wicket component subclasses)."
+#~ msgstr ""
+#~ "JSF はユニファイド EL 式を使用して、JSP あるいは Facelet ビューのビューレ"
+#~ "イヤコンポーネントを Bean にバインドします。Wicket は Java でコンポーネン"
+#~ "トを定義します。マークアップ は、html 要素とビューコンポーネントとの1対1"
+#~ "のマッピングを行うプレーンな html です。モデルへのコンポーネントのバイン"
+#~ "ディングとビューアクションの応答のコントロールを含むすべてのビューロジック"
+#~ "は Java で処理されます。Web Beans と Wicket の統合により、WebPage サブクラ"
+#~ "ス(あるいは他のカスタム Wicket コンポーネントサブクラスに)への注入を提供す"
+#~ "るビジネスレイヤで同一バインディングアノテーションを利用できるようになりま"
+#~ "す。"
+
+#~ msgid ""
+#~ "The code in the wicket numberguess example is very similar to the JSF-"
+#~ "based numberguess example. The business layer is identical!"
+#~ msgstr ""
+#~ "Wicket numberguess サンプルのコードは、JSFベースの numberguess サンプルに"
+#~ "とても類似しています。ビジネス層レイヤは同一です。"
+
+#~ msgid "Differences are:"
+#~ msgstr "違いは以下の通りです:"
+
+#~ msgid ""
+#~ "Each wicket application must have a <literal>WebApplication</literal> "
+#~ "subclass, In our case, our application class is "
+#~ "<literal>SampleApplication</literal>:"
+#~ msgstr ""
+#~ "各々の Wicket アプリケーションは、<literal>WebApplication</literal> サブク"
+#~ "ラスを持たなければなりません。サンプルの場合、アプリケーションクラスは "
+#~ "<literal>SampleApplication</literal> です:"
+
+#~ msgid ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This class specifies which page wicket should treat as our home page, in "
+#~ "our case, <literal>HomePage.class</literal>"
+#~ msgstr ""
+#~ "このクラスはどのページを Wicket がホームページとして取り扱うべきかを指定し"
+#~ "ています。サンプルでは <literal>HomePage.class</literal> です。"
+
+#~ msgid ""
+#~ "In <literal>HomePage</literal> we see typical wicket code to set up page "
+#~ "elements. The bit that is interesting is the injection of the "
+#~ "<literal>Game</literal> bean:"
+#~ msgstr ""
+#~ "<literal>HomePage</literal>では、 ページ要素を設定するために典型的な "
+#~ "Wicket コードを見ることができます。面白い箇所は、<literal>Game</literal> "
+#~ "bean の注入です:"
+
+#~ msgid "<![CDATA[ @Current Game game;]]>"
+#~ msgstr "<![CDATA[ @Current Game game;]]>"
+
+#~ msgid ""
+#~ "The <literal>Game</literal> bean is can then be used, for example, by the "
+#~ "code for submitting a guess:"
+#~ msgstr ""
+#~ "<literal>Game</literal> bean 例えば、推測を送信するコードによって使用され"
+#~ "ます:"
+
+#~ msgid ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+#~ msgstr ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+
+#~ msgid ""
+#~ "All injections may be serialized; actual storage of the bean is managed "
+#~ "by JSR-299. Note that Wicket components, like the HomePage and it "
+#~ "subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+#~ msgstr ""
+#~ "すべての注入はシリアライズされます。Bean の実際の保管は、JSR-299 によって"
+#~ "管理されます。Wicket コンポーネントは、HomePage やそのサブクラスと同様に、"
+#~ "JSR-299 beans<emphasis>ではない</emphasis> ことに注意してください。"
+
+#~ msgid ""
+#~ "Wicket components allow injection, but they <emphasis>cannot</emphasis> "
+#~ "use interceptors, decorators and lifecycle callbacks such as "
+#~ "<literal>@PostConstruct</literal> or <literal>@Initializer</literal> "
+#~ "methods."
+#~ msgstr ""
+#~ "Wicket コンポーネントは注入を許可します。しかし <literal>@PostConstruct</"
+#~ "literal> あるいは <literal>@Initializer</literal> といったインタセプタやデ"
+#~ "コレータ、ライフサイクルコールバックを使用することは<emphasis>できません</"
+#~ "emphasis>。"
+
+#~ msgid ""
+#~ "The example uses AJAX for processing of button events, and dynamically "
+#~ "hides buttons that are no longer relevant, for example when the user has "
+#~ "won the game."
+#~ msgstr ""
+#~ "サンプルではボタンイベント処理のために AJAX を使用して、例えばユーザがゲー"
+#~ "ムに勝利したときに、もはや適切でなくなったボタンを動的に隠しています。"
+
+#~ msgid ""
+#~ "In order to activate wicket for this webapp, the Wicket filter is added "
+#~ "to web.xml, and our application class is specified:"
+#~ msgstr ""
+#~ "この webapp のための Wicket を有効化するために、Wicket フィルタが web.xml "
+#~ "に加えられ、アプリケーションクラスが指定されます:"
+
+#~ msgid ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid ""
+#~ "Note that the servlet listener is also added, as in the Tomcat example, "
+#~ "in order to boostrap Web Beans when Jetty starts, and to hook Web Beans "
+#~ "into the Jetty servlet request and session lifecycles."
+#~ msgstr ""
+#~ "Tomcat サンプルと同様に、Jetty が起動したときに Web Beans をブートストラッ"
+#~ "プし、Jetty のサーブレットリクエストとセッションライフサイクルへ Web "
+#~ "Beans をフックするために、サーブレットリスナも追加されていることに注意して"
+#~ "ください。"
+
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "Java SE 上の Swing 向けの numberguess サンプル"
+
+#~ msgid "To run this example:"
+#~ msgstr "このサンプルの実行方法:"
+
+#~ msgid ""
+#~ "Open a command line/terminal window in the <literal>examples/se/"
+#~ "numberguess</literal> directory"
+#~ msgstr ""
+#~ "<literal>examples/se/numberguess</literal> ディレクトリでコマンドライン/"
+#~ "ターミナルウィンドウを開いてください"
+
+#~ msgid "Ensure that Maven 2 is installed and in your PATH"
+#~ msgstr ""
+#~ "Maven 2 がインストールされていてパスに設定されていることを確認してください"
+
+#~ msgid ""
+#~ "Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+#~ "pointing to your JDK installation"
+#~ msgstr ""
+#~ "<literal>JAVA_HOME</literal> 環境変数がJDKのインストール場所を指定している"
+#~ "を確認してください"
+
+#~ msgid "execute the following command"
+#~ msgstr "以下のコマンドを実行してください"
+
+#~ msgid "mvn -Drun"
+#~ msgstr "mvn -Drun"
+
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "ルートパッケージの中には空の <literal>beans.xml</literal> ファイル "
+#~ "(<literal>src/main/resources/beans.xml</literal>) があります。これによりこ"
+#~ "のアプリケーションが Web Beans アプリケーションであるという印をつけます。"
+
+#~ msgid ""
+#~ "The game's main logic is located in <literal>Game.java</literal>. Here is "
+#~ "the code for that class, highlighting the changes made from the web "
+#~ "application version:"
+#~ msgstr ""
+#~ "ゲームのメインロジックは、 <literal>Game.java</literal> にあります。以下は"
+#~ "そのクラスのコードで、Web アプリケーションバージョンから変更された箇所を目"
+#~ "立たせています:"
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> "
+#~ "The bean is application scoped instead of session scoped, since an "
+#~ "instance of the application represents a single 'session'. </para> </"
+#~ "callout> <callout arearefs=\"name\"> <para> The bean is not named, since "
+#~ "it doesn't need to be accessed via EL </para> </callout> <callout "
+#~ "arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</"
+#~ "literal> to add messages to. Instead the <literal>Game</literal> class "
+#~ "provides additional information about the state of the current game "
+#~ "including: </para> <itemizedlist> <listitem> <para> If the game has been "
+#~ "won or lost </para> </listitem> <listitem> <para> If the most recent "
+#~ "guess was invalid </para> </listitem> </itemizedlist> <para> This allows "
+#~ "the Swing UI to query the state of the game, which it does indirectly via "
+#~ "a class called <literal>MessageGenerator,</literal> in order to determine "
+#~ "the appropriate messages to display to the user during the game. </para> "
+#~ "</callout> <callout arearefs=\"validation\"> <para> Validation of user "
+#~ "input is performed during the <literal>check()</literal> method, since "
+#~ "there is no dedicated validation phase </para> </callout> <callout "
+#~ "arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a "
+#~ "call to the injected <literal>rndGenerator</literal> in order to get the "
+#~ "random number at the start of each game. It cannot use <literal>manager."
+#~ "getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})"
+#~ "</literal> as the JSF example does because there will not be any active "
+#~ "contexts like there is during a JSF request. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+#~ "literal> class depends on the current instance of <literal>Game</"
+#~ "literal>, and queries its state in order to determine the appropriate "
+#~ "messages to provide as the prompt for the user's next guess and the "
+#~ "response to the previous guess. The code for <literal>MessageGenerator</"
+#~ "literal> is as follows: </para> <programlistingco> <areaspec> <area id="
+#~ "\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id="
+#~ "\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> "
+#~ "The instance of <literal>Game</literal> for the application is injected "
+#~ "here. </para> </callout> <callout arearefs=\"challenge\"> <para> The "
+#~ "<literal>Game</literal>'s state is interrogated to determine the "
+#~ "appropriate challenge message. </para> </callout> <callout arearefs="
+#~ "\"result\"> <para> And again to determine whether to congratulate, "
+#~ "console or encourage the user to continue. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> Finally we come to the "
+#~ "<literal>NumberGuessFrame</literal> class which provides the Swing front "
+#~ "end to our guessing game. </para> <programlistingco> <areaspec> <area id="
+#~ "\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id="
+#~ "\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "The injected instance of the game (logic and state). </para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> The injected message generator "
+#~ "for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "This application is started in the usual Web Beans SE way, by observing "
+#~ "the <literal>@Deployed Manager</literal> event. </para> </callout> "
+#~ "<callout arearefs=\"init\"> <para> This method initialises all of the "
+#~ "Swing components. Note the use of the <literal>msgGenerator</literal>. </"
+#~ "para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+#~ "button is clicked, and it does the following: </para> <itemizedlist> "
+#~ "<listitem> <para> Gets the guess entered by the user and sets it as the "
+#~ "current guess in the <literal>Game</literal> </para> </listitem> "
+#~ "<listitem> <para> Calls <literal>game.check()</literal> to validate and "
+#~ "perform one 'turn' of the game </para> </listitem> <listitem> <para> "
+#~ "Calls <literal>refreshUI</literal>. If there were validation errors with "
+#~ "the input, this will have been captured during <literal>game.check()</"
+#~ "literal> and as such will be reflected in the messeges returned by "
+#~ "<literal>MessageGenerator</literal> and subsequently presented to the "
+#~ "user. If there are no validation errors then the user will be told to "
+#~ "guess again (higher or lower) or that the game has ended either in a win "
+#~ "(correct guess) or a loss (ran out of guesses). </para> </listitem> </"
+#~ "itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal> simply calls <literal>game."
+#~ "reset()</literal> to start a new game and refreshes the messages in the "
+#~ "UI. </para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> "
+#~ "to update the messages to the user based on the current state of the "
+#~ "Game. </para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> ã‚¢"
+#~ "プリケーションのインスタンスが唯一の「セッション」を表すので、Bean はセッ"
+#~ "ションスコープではなくアプリケーションスコープです。 </para> </callout> "
+#~ "<callout arearefs=\"name\"> <para> EL 経由でアクセスされる必要がないので、"
+#~ "Bean には名前がつけられていません </para> </callout> <callout arearefs="
+#~ "\"messages1\"> <para> メッセージを付加するための JSF "
+#~ "<literal>FacesContext</literal> はありません。その代わりに <literal>Game</"
+#~ "literal>  クラスは以下の現在のゲーム状態に関する追加情報を提供します: </"
+#~ "para> <itemizedlist> <listitem> <para> ゲームは勝ったのかあるいは負けたの"
+#~ "か </para> </listitem> <listitem> <para> 最も直前の推測は外れだったのか </"
+#~ "para> </listitem> </itemizedlist> <para> ゲームの間にユーザに表示するべき"
+#~ "適切なメッセージを決定するために Swing UI がゲームの状態を問い合わせること"
+#~ "を可能にし、それは <literal>MessageGenerator</literal> と呼ばれるクラスを"
+#~ "経由して間接的に行われます。 </para> </callout> <callout arearefs="
+#~ "\"validation\"> <para> 専用のバリデーションフェーズがないので、ユーザ入力"
+#~ "のバリデーションは <literal>check()</literal> メソッドの間に実行されます "
+#~ "</para> </callout> <callout arearefs=\"reset\"> <para> それぞれのゲームの"
+#~ "開始時にランダム数を取得するために、<literal>reset()</literal> メソッド"
+#~ "は、注入された <literal>rndGenerator</literal> を呼び出します。そこには "
+#~ "JSF リクエストの間にようなアクティブコンテキストはないのでは、"
+#~ "<literal>manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral&lt;Random&gt;(){})</literal> を使用することはできませ"
+#~ "ん。</para> </callout> </calloutlist> </programlistingco> <para> "
+#~ "<literal>MessageGenerator</literal> クラスは <literal>Game</literal> の現"
+#~ "在のインスタンスに依存し、直前の推測への応答とユーザの次の推測のためのプロ"
+#~ "ンプトとして提供すべき適切なメッセージを決定するために、状態を問い合わせし"
+#~ "ます。<literal>MessageGenerator</literal> のコードは、以下の通りです: </"
+#~ "para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3\"/> "
+#~ "<area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/> "
+#~ "</areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+#~ "MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> ã‚¢"
+#~ "プリケーションのための <literal>Game</literal> のインスタンスは、ここで注"
+#~ "入されます。</para> </callout> <callout arearefs=\"challenge\"> <para> 適"
+#~ "切な挑戦メッセージを決めるために、<literal>Game</literal>の状態が問い合わ"
+#~ "せられます。</para> </callout> <callout arearefs=\"result\"> <para> ユーザ"
+#~ "を祝福するか、あるいは慰めるか、続けるように励ますかを再び決定します。</"
+#~ "para> </callout> </calloutlist> </programlistingco> <para> 最後に、推測"
+#~ "ゲームの Swing フロントエンドを提供する <literal>NumberGuessFrame</"
+#~ "literal> クラスを見てみます。</para> <programlistingco> <areaspec> <area "
+#~ "id=\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area "
+#~ "id=\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "ゲーム(ロジックと状態)の注入されたインスタンス。</para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> UI メッセージのための注入された"
+#~ "ジェネレータ。</para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "<literal>@Deployed Manager</literal> イベントを監視することにより、このア"
+#~ "プリケーションは通常の Web Beans SE の方法で開始されます。</para> </"
+#~ "callout> <callout arearefs=\"init\"> <para> このメソッドはすべての Swing "
+#~ "コンポーネントを初期化します。<literal>msgGenerator</literal> の使用 に注"
+#~ "意してください。 </para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> は、「推測」ボタンがクリック"
+#~ "されたときに呼ばれ、以下のことを行います: </para> <itemizedlist> "
+#~ "<listitem> <para> ユーザによって入力された推測を取得して、<literal>Game</"
+#~ "literal> に現在の推測をセットします </para> </listitem> <listitem> <para> "
+#~ "バリデートしてゲームの1つの「順番」を実行するために <literal>game.check()"
+#~ "</literal> を呼び出します </para> </listitem> <listitem> <para> "
+#~ "<literal>refreshUI</literal> を呼び出します。もし入力にバリデーションエ"
+#~ "ラーがあれば、これは <literal>game.check()</literal> の間に捕捉され、"
+#~ "<literal>MessageGenerator</literal> によって返されるメッセージに反映され、"
+#~ "続いてユーザに表示されます。もしバリデーションエラーがなければ、ユーザは再"
+#~ "び推測結果(より高いかより低いか)を告げられるか、あるいはゲームは勝利(正し"
+#~ "い推測)または負け(推測を使い尽くし)でゲームを終えます。</para> </"
+#~ "listitem> </itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal>  は、新しいゲームを始めるため"
+#~ "に単に <literal>game.reset()</literal> を呼んで、UIのメッセージを新しくし"
+#~ "ます。</para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> は、ゲームの現在の状況に基づいてユーザへの"
+#~ "メッセージを更新するために、<literal>MessageGenerator</literal> を使いま"
+#~ "す。</para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid "The translator example"
+#~ msgstr "translator サンプル"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr ""
+#~ "translator サンプルは、入力するどんな文章も受け取り、それをラテン語に翻訳"
+#~ "します。"
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "translator サンプルは ear としてビルドされ、EJB を含みます。その結果とし"
+#~ "て、numberguess サンプルよりも構造が複雑です。"
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 と Jave EE 6 により EJB を war にパッケージングすることが可能にな"
+#~ "ります。これによりこの構造はもっと簡単になります。"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "まず最初に、<literal>webbeans-translator-ear</literal> モジュール にある "
+#~ "ear 形式の aggregatorを見てみましょう。Maven が自動的に "
+#~ "<literal>application.xml</literal> を生成します:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "もしこれらのファイルを生成するのに Maven を使用しなければ、<literal>META-"
+#~ "INF/application.xml</literal> が必要になります:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "次に、war を見てみましょう。ちょうど numberguess サンプルと同様に、"
+#~ "WebContent/WEB-INF に <literal>faces-config.xml</literal> (faceletを有効化"
+#~ "する)と <literal>web.xml</literal> (JSFを有効化する)があります。"
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "興味深いことに facelet がテキストを翻訳するのに使用されています。ちょうど "
+#~ "numberguess サンプルでテンプレートを使用しているのと同様に、フォームで囲ま"
+#~ "れています(短くするためにここでは省略しています):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "ユーザが左側のテキストエリアにテキストを入力して、翻訳ボタンを押すことによ"
+#~ "りその右側に結果を確認できます。"
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "最後に、ejbモジュール <literal>webbeans-translator-ejb</literal> を見てみ"
+#~ "ましょう。<literal>src/main/resources/META-INF</literal> には、単に空の "
+#~ "<literal>web-beans.xml</literal> があり、このアーカイブが Web Beans を含ん"
+#~ "でいるという印を付けるのに使用されています。"
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "最も面白い箇所、コードは最後にとっておきました。プロジェクトには2つの単純"
+#~ "な Bean の <literal>SentenceParser</literal> と<literal>TextTranslator</"
+#~ "literal> と、2つのエンタープライズBean の "
+#~ "<literal>TranslatorControllerBean</literal> と "
+#~ "<literal>SentenceTranslator</literal> があります。今までで Web Bean がどう"
+#~ "ようなものであるか詳しくなってきたので、ここでは、最も面白い箇所を取り上げ"
+#~ "ましょう。"
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "<literal>SentenceParser</literal> と <literal>TextTranslator</literal> の"
+#~ "両方とも依存 beans で、TextTranslator はコンストラクタ初期化を使用します:"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> は、(ローカルビジネスインタフェースをも"
+#~ "つ)ステートレスな bean です。ここで手品が起こります - もちろん、完全な "
+#~ "translator を開発できているわけでないので、翻訳はダミーの結果が返ります。"
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "最後に、ユーザからのテキストを受け付けて、translator にそれをディスパッチ"
+#~ "する UI に基づいたコントローラがあります。これは、translator をインジェク"
+#~ "トする、リクエストスコープの名前をつけられたステートフルセッション Beanで"
+#~ "す。"
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr ""
+#~ "Beanは、ページ上のすべてのフィールドに対して getter と setter も持っていま"
+#~ "す。"
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "これはステートフルセッション Bean ですので、remove メソッドを持つ必要があ"
+#~ "ります:"
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "Web Beans マネージャは、Bean が破棄されるときにremove メソッドを呼び出しま"
+#~ "す。このサンプルの場合は、リクエストの終わりです。"
+
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "Web Beans サンプルの短いツアーはこれで終わります。Web Beans についての詳細"
+#~ "や手助けをするには、どうぞ <ulink url=\"http://www.seamframework.org/"
+#~ "WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</"
+#~ "ulink> にアクセスしてください。"
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "私たちはすべての領域 - バクフィックス、新機能の記述、サンプルの記述、リ"
+#~ "ファレンスガイドの翻訳で協力を必要としています。"

Modified: doc/trunk/reference/ja-JP/injection.po
===================================================================
--- doc/trunk/reference/ja-JP/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-02 01:32+0900\n"
 "Last-Translator: Daisuke Sano <d-sano at nri.co.jp>\n"
 "Language-Team: none\n"
@@ -15,34 +15,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "依存性注入"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beansは依存性注入のための3つの基本的な機構を持っています。"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "コンストラクタの引数による注入、"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>初期化</emphasis>メソッドの引数による注入、"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -58,23 +76,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>初期化</emphasis>メソッドの引数による注入、"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -90,18 +114,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "そして、フィールドへの直接的な注入です。"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -112,55 +145,90 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
-msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
-msgstr "依存性注入は、Web Beanインスタンスが最初に生成される際に必ず行われます。"
+msgid ""
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
-msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
-msgstr "最初に、Web Beanマネージャは、Web Beanインスタンスを取得するために、Web Beanのコンストラクタを実行する"
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"依存性注入は、Web Beanインスタンスが最初に生成される際に必ず行われます。"
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
-msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
-msgstr "次に、Web Beanマネージャは、Web Beanの、注入すべきすべてのフィールド値を初期化する"
+#: injection.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"最初に、Web Beanマネージャは、Web Beanインスタンスを取得するために、Web Bean"
+"のコンストラクタを実行する"
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "次に、Web Beanマネージャは、Web Beanの、すべての初期化メソッドを実行する"
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"次に、Web Beanマネージャは、Web Beanの、注入すべきすべてのフィールド値を初期"
+"化する"
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
-msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
-msgstr "最後に、もしあれば、Web Beanの<literal>@PostConstruct</literal>メソッドが呼ばれます。"
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"次に、Web Beanマネージャは、Web Beanの、すべての初期化メソッドを実行する"
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"最後に、もしあれば、Web Beanの<literal>@PostConstruct</literal>メソッドが呼ば"
+"れます。"
+
+#. Tag: para
+#: injection.xml:86
 #, no-c-format
-msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "コンストラクタの引数による注入は、EJBには使用することができません。なぜならば、EJBはWeb Beanマネージャではなく、EJBコンテナによって初期化が行われるからです。"
+msgid ""
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
-msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
-msgstr "コンストラクタや初期化メソッドの引数で注入を行う場合には、デフォルトで<literal>@Current</literal>バインディングタイプが適用されるので、明示的なアノテーションは必要ありません。しかしながら、フィールドへの直接的な注入を行う場合には、デフォルトのバインディングタイプで良い場合でも、バインディングタイプを指定<emphasis>しなければなりません</emphasis>。バインディングタイプを指定しない場合は、注入は行われません。"
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "プロデューサメソッドもまた、引数による注入を可能とします。"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -172,66 +240,126 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
-msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
-msgstr "結局、オブザーバメソッド(<xref linkend=\"events\"/>で紹介します)や、ディスポーザルメソッド、デストラクタでも引数による注入が可能です。"
+msgid ""
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:58
+#. Tag: title
+#: injection.xml:110
 #, no-c-format
-msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "Web Beansの仕様では、<emphasis>タイプセーフ解決アルゴリズム</emphasis>が定義されており、Web Beanマネージャは、ある注入箇所への注入を行う際、これにのっとって、注入すべきWeb Beanを特定します。このアルゴリズムは最初は複雑に感じますが、一度理解してしまえば、とても直観的なものです。タイプセーフ解決アルゴリズムは、システムの初期化時に使われます。これは、もしWeb Beanの依存性が充たされない場合には、マネージャが<literal>UnsatisfiedDependencyException</literal>や<literal>AmbiguousDependencyException</literal>をスローすることによって、即座にそれをユーザに通知することを意味します。"
+msgid "What gets injected"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
-msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
-msgstr "このアルゴリズムの目的は、複数のWeb Beanが同じAPIを実装できるようにすることであり、"
+#: injection.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
+"Web Beansの仕様では、<emphasis>タイプセーフ解決アルゴリズム</emphasis>が定義"
+"されており、Web Beanマネージャは、ある注入箇所への注入を行う際、これにのっ"
+"とって、注入すべきWeb Beanを特定します。このアルゴリズムは最初は複雑に感じま"
+"すが、一度理解してしまえば、とても直観的なものです。タイプセーフ解決アルゴリ"
+"ズムは、システムの初期化時に使われます。これは、もしWeb Beanの依存性が充たさ"
+"れない場合には、マネージャが<literal>UnsatisfiedDependencyException</literal>"
+"や<literal>AmbiguousDependencyException</literal>をスローすることによって、即"
+"座にそれをユーザに通知することを意味します。"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
-msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
-msgstr "<emphasis>バインディングアノテーション</emphasis>を使用することによって、クライアントが必要とする実装を選択できるようにする"
+#: injection.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"このアルゴリズムの目的は、複数のWeb Beanが同じAPIを実装できるようにすることで"
+"あり、"
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:126
+#, fuzzy, no-c-format
+msgid ""
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"<emphasis>バインディングアノテーション</emphasis>を使用することによって、クラ"
+"イアントが必要とする実装を選択できるようにする"
+
+#. Tag: para
+#: injection.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"allow the application deployer to select which implementation is appropriate "
+"for a particular deployment, without changes to the client, by enabling or "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"アプリケーションをデプロイする際に<emphasis>デプロイメントタイプ</emphasis>を"
+"有効にしたり無効にしたりすることによって、クライアントを変更することなく、特"
+"定の環境に対して適切な実装を選択できるようにする"
+
+#. Tag: para
+#: injection.xml:137
 #, no-c-format
-msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
-msgstr "アプリケーションをデプロイする際に<emphasis>デプロイメントタイプ</emphasis>を有効にしたり無効にしたりすることによって、クライアントを変更することなく、特定の環境に対して適切な実装を選択できるようにする"
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:143
 #, no-c-format
-msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
-msgstr "<emphasis>デプロイメントタイプの優先度</emphasis>を使用することによって、クライアントを変更することなく、APIのとある実装が同じAPIの異なる実装を、デプロイメント時に上書きできるようにする"
+msgid ""
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "それでは、Web Beanマネージャが注入すべきWeb Beanをどのように決定していくのかを見ていくことにしましょう。"
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "バインディングアノテーション"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
-msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
-msgstr "もし一つより多いWeb Beanが特定のAPIを実装している場合、注入箇所では、バインディングアノテーションを使用することによって、どのWeb Beanが注入されるべきかということが正確に指定されます。例えば、ここに<literal>PaymentProcessor</literal>に対する二つの実装が存在するとします。"
+#: injection.xml:159
+#, fuzzy, no-c-format
+msgid ""
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
+"<literal>PaymentProcessor</literal>:"
+msgstr ""
+"もし一つより多いWeb Beanが特定のAPIを実装している場合、注入箇所では、バイン"
+"ディングアノテーションを使用することによって、どのWeb Beanが注入されるべきか"
+"ということが正確に指定されます。例えば、ここに<literal>PaymentProcessor</"
+"literal>に対する二つの実装が存在するとします。"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -240,33 +368,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
-msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
-msgstr "ここで、<literal>@PayByCheque</literal>と<literal>@PayByCreditCard</literal>はバインディングアノテーションです。"
+#: injection.xml:169
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"ここで、<literal>@PayByCheque</literal>と<literal>@PayByCreditCard</literal>"
+"はバインディングアノテーションです。"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -274,110 +406,177 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
-msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
-msgstr "クライアントWeb Beanの開発者は、バインディングアノテーションを使用することによって、どのWeb Beanが注入されるべきかということを、正確に指定することができます。"
+#: injection.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"クライアントWeb Beanの開発者は、バインディングアノテーションを使用することに"
+"よって、どのWeb Beanが注入されるべきかということを、正確に指定することができ"
+"ます。"
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "フィールドに注入することができます。"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "初期化メソッドを使用して注入することもできます。"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "そして、コンストラクタを使用して注入することもできます。"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "メンバー付きのバインディングアノテーション"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "バインディングアノテーションはメンバーを持つことができます。"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -388,621 +587,742 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "このような場合には、メンバーの値が重要な意味を持ちます。"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
-msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
-msgstr "バインディングアノテーションタイプのメンバーに@NonBindingアノテーションをつけることによって、Web Beanマネージャがメンバを無視するように指定することもできます。"
+#: injection.xml:232
+#, fuzzy, no-c-format
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"バインディングアノテーションタイプのメンバーに@NonBindingアノテーションをつけ"
+"ることによって、Web Beanマネージャがメンバを無視するように指定することもでき"
+"ます。"
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "バインディングアノテーションの組み合わせ"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
-msgstr "注入箇所に、複数のバインディングアノテーションを指定することもできます。"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
+msgstr ""
+"注入箇所に、複数のバインディングアノテーションを指定することもできます。"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
-msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
-msgstr "このような場合、<emphasis>両方の</emphasis>バインディングアノテーションを持つWeb Beanのみが、注入する対象として適格となります。"
+#: injection.xml:250
+#, fuzzy, no-c-format
+msgid ""
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"このような場合、<emphasis>両方の</emphasis>バインディングアノテーションを持つ"
+"Web Beanのみが、注入する対象として適格となります。"
 
+#. Tag: programlisting
+#: injection.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:153
+#: injection.xml:260
 #, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "バインディングアノテーションとプロデューサメソッド"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:155
+#: injection.xml:262
 #, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "プロデューサメソッドでバインディングアノテーションを指定することもできます。"
+msgid ""
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:266
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
-#. Tag: title
-#: injection.xml:162
-#, no-c-format
-msgid "The default binding type"
-msgstr "デフォルトのバインディングタイプ"
-
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:268
 #, no-c-format
-msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
-msgstr "Web Beansでは、デフォルトのバインディングタイプ<literal>@Current</literal>が定義されており、明示的なバインディングタイプの指定が行われていないすべての注入箇所やWeb Beanに適用されます。"
+msgid ""
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:168
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
-msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
-msgstr "以下の二つの状況においては、<literal>@Current</literal>を明示的に指定する必要があります。"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:173
+#: injection.xml:276
 #, no-c-format
-msgid "on a field, in order to declare it as an injected field with the default binding type, and"
-msgstr "フィールドの定義において、そのフィールドがデフォルトのバインディングタイプによって注入される(フィールドが持つ型によって解決される)フィールドであることを宣言する場合"
+msgid ""
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:177
-#, no-c-format
-msgid "on a Web Bean which has another binding type in addition to the default binding type."
-msgstr "Web Beanの定義において、そのWeb Beanがデフォルトのバインディングタイプ(Web Beanが持つ型によって解決される)に加えて別のバインディングタイプを持つ場合"
-
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "デプロイメントタイプ"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "依存性を充たすように修正する"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
-msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
-msgstr "すべてのWeb Beanは<emphasis>デプロイメントタイプ</emphasis>を持ちます。それぞれのデプロイメントタイプは、システムのある構成の下で条件つきでインストールされるべきWeb Beanの集合を規定します。"
+#: injection.xml:287
+#, fuzzy, no-c-format
+msgid ""
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"注入箇所のAPIタイプを実装したすべてのWeb Beanのバインディングアノテーションや"
+"デプロイメントタイプを考慮した結果、Web Beanマネージャが注入すべきWeb Beanを"
+"一つに絞りきれない場合、タイプセーフな解決アルゴリズムは失敗します。"
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
-msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
-msgstr "例えば、<literal>@Mock</literal>という名前のデプロイメントタイプを定義し、結合テスト環境の中でシステムが稼動するときにのみインストールされるべきWeb Beanを規定するようなことができます。"
-
-#. Tag: programlisting
-#: injection.xml:197
-#, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:298
 #, no-c-format
-msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
-msgstr "支払い処理を行う外部システムに関連したあるWeb Beanがあると想定します。"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:309
 #, no-c-format
-msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
-msgstr "このWeb Beanは明示的にデプロイメントタイプが指定されていないので、デフォルトのデプロイメントタイプである<literal>@Production</literal>を持つことになります。"
+msgid ""
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:314
 #, no-c-format
-msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
-msgstr "結合テストや単体テストを行う際に、外部システムの処理が遅かったり、使用できなかったりする場合には、このようにモックオブジェクトを作成することでしょう。"
-
-#. Tag: programlisting
-#: injection.xml:210
-#, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:321
 #, no-c-format
-msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
-msgstr "しかし、Web Beamマネージャは一体どのようにして、そのような特定の環境で使われる実装を決定するのでしょうか?"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
-msgid "Enabling deployment types"
-msgstr "デプロイメントタイプを有効にする"
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:332
 #, no-c-format
-msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
-msgstr "Web Beansは、<literal>@Production</literal>と<literal>@Standard</literal>という、二つの組み込みデプロイメントタイプを定めています。システムがデプロイされた際に、デフォルトでは、組み込みデプロイメントタイプを持つWeb Beanのみが有効となります。特定の環境で有効となるような付加的なデプロイメントタイプを規定するためには、それらを<literal>web-beans.xml</literal>に列挙します。"
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:337
 #, no-c-format
-msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
-msgstr "先程の例に戻ると、結合テストをデプロイするには、すべての<literal>@Mock</literal>オブジェクトをインストールする必要があります。"
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:350
 #, no-c-format
-msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
-msgstr "このようにすることで、Web Beanマネージャは、デプロイ時に、<literal>@Production</literal>、<literal>@Standard</literal>、<literal>@Mock</literal>のアノテーションが付加されたすべてのWeb Beanを規定し、インストールします。"
+msgid ""
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:358
 #, no-c-format
-msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
-msgstr "<literal>@Standard</literal>デプロイメントタイプは、Web Beans仕様で定められた、ある特別なWeb Beanに対してのみ使用されます。開発者が作成したWeb Beanに対してこれを使用したり、デプロイメントタイプを無効にしたりすることはできません。"
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:361
 #, no-c-format
-msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
-msgstr "<literal>@Production</literal>デプロイメントタイプは、明示的にデプロイメントタイプが宣言されないWeb Beanのデフォルトのデプロイメントタイプであり、無効にすることもできます。"
+msgid ""
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
-#. Tag: title
-#: injection.xml:244
-#, no-c-format
-msgid "Deployment type precedence"
-msgstr "デプロイメントタイプの優先度"
-
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
-msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation &#151; <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider what happens when the manager encounters this injection point:"
-msgstr "ここまで注意深く読み進めてきた方は、Web Beanマネージャが、一体どうやって<literal>ExternalPaymentProcessor</literal>と<literal>MockPaymentProcessor</literal>のどちらの実装を選択するかを決定するのかという点について、疑問に思われるかもしれません。マネージャがこのような注入箇所に遭遇した場合に、何が起こっているのかを考えてみましょう。"
+#: injection.xml:366
+#, fuzzy, no-c-format
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
+"Web Beansにおける依存性注入を行う際に気をつけるべきことが、もう少しあります。"
 
-#. Tag: programlisting
-#: injection.xml:251
+#. Tag: title
+#: injection.xml:373
 #, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+msgid "Client proxies"
+msgstr "クライアントプロキシ"
 
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
-msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
-msgstr "今、<literal>PaymentProcessor</literal>の条件を充たす二つのWeb Beanが存在します。もちろん、曖昧さを排除するようなバインディングアノテーションを用いることはできません。なぜならば、そうするにはバインディングアノテーションをソースの注入箇所にハードコーディングする必要があり、我々が行いたいのはそうではなく、デプロイ時に、マネージャによって決定されるようにしたいからです。"
+#: injection.xml:375
+#, fuzzy, no-c-format
+msgid ""
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
+msgstr ""
+"注入されたWeb Beanのクライアントは、通常、Web Beanインスタンスに対する直接的"
+"な参照を持ちません。"
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
-msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
-msgstr "このような問題への解として、それぞれのデプロイメントタイプは異なる<emphasis>優先度</emphasis>を持ちます。デプロイメントタイプの優先度は、それらが<literal>web-beans.xml</literal>に現れる順番によって決まります。今回の例では、<literal>@Mock</literal>は<literal>@Production</literal>の後に現れるので、<literal>@Mock</literal>の方が高い優先度を持つことになります。"
+#: injection.xml:380
+#, fuzzy, no-c-format
+msgid ""
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"アプリケーションスコープに結び付けられたWeb Beanが、リクエストスコープに結び"
+"付けられたWeb Beanに対する直接的な参照を持っている場合を想像してみてくださ"
+"い。アプリケーションスコープのWeb Beanは、たくさんの異なるリクエスト間で共有"
+"されます。しかしながら、それぞれのリクエストは、それぞれ異なったリクエストス"
+"コープのWeb Beanインスタンスを参照するべきなのです。"
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
-msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
-msgstr "マネージャは、ある注入箇所によって指定される条件(APIタイプやバインディングアノテーション)を充たしうるWeb Beanが一つより多く存在することを発見した場合、Web Beanの相対的な優先度を考慮します。もし、あるWeb Beanが他より高い優先度をもっているならば、そのWeb Beanが選択され、注入されます。今回の例では、結合テスト環境で実行する場合に、Web Beanマネージャは<literal>MockPaymentProcessor</literal>を注入することになります(これが、まさに望みどおりの動作です)。"
+#: injection.xml:386
+#, fuzzy, no-c-format
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"今度は、セッションスコープに結び付けられたWeb Beanが、アプリケーションスコー"
+"プに結び付けられたWeb Beanに対する直接的な参照を持っている場合を想像してみて"
+"ください。セッションコンテキストは、メモリを効率的に使う目的で、時々ディスク"
+"にシリアライズされます。しかしながら、アプリケーションスコープのWeb Beanイン"
+"スタンスは、セッションスコープのWeb Beanインスタンスと一緒にシリアライズされ"
+"るべきではないのです。"
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
-msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
-msgstr "このような仕組みを、最近の人気のあるマネージャのアーキテクチャと比較すると面白いでしょう。様々な、いわゆる\"軽量\"コンテナにおいて、クラスパスに存在するクラスを条件つきでデプロイすることは可能です。しかし、それらは、設定のためのコードやXMLの設定ファイルに設定を列挙することよって、あくまで明示的に、そして個別に行わなければなりません。WebnBeansでは、Web Beanの設定をXMLを通じて定義することもできますが、複雑な設定が必要ない通常の場合においては、デプロイメントタイプによってすべてのWeb Beanの集合をXML中の一行で有効にすることができます。と同時に、開発者はコードを見るだけで、簡単に、そのWeb Beanがどのシナリオにおいて使用されるのかということをつきとめることができます。"
+#: injection.xml:393
+#, fuzzy, no-c-format
+msgid ""
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"それゆえWeb Beanマネージャは、Web Beanがデフォルトスコープである"
+"<literal>@Dependent</literal>を持っていない限り、すべての注入されたWeb Beanへ"
+"の参照を、プロキシオブジェクトを通じて間接的に行わなければなりません。この"
+"<emphasis>クライアントプロキシ</emphasis>は、メソッドが起動されるWeb Beanイン"
+"スタンスと、現在のコンテキストに結びついたインスタンスが同一であることを保証"
+"する責任を持ちます。またクライアントプロキシは、セッションコンテキストのよう"
+"なコンテキストに結び付けられたWeb Beanが、他の注入されたWeb Beanを再帰的にシ"
+"リアライズすることなく、シリアライズすることを可能とします。"
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "デプロイメントタイプの例"
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "デプロイメントタイプは様々な用途に使用できます。以下に例を示します。"
+#: injection.xml:401
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
+"不幸にも、Java言語の制限により、いくつかのJavaタイプはWeb Beanマネージャがプ"
+"ロキシ化することができません。それゆえ、注入箇所のタイプがプロキシ化できない"
+"ものである場合、Web Beanマネージャは<literal>UnproxyableDependencyException</"
+"literal>をスローします。"
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
-msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
-msgstr "テスト作業における<literal>@Mock</literal>や<literal>@Staging</literal>の使用"
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr "次に挙げるJava型はWeb Beanマネージャがプロキシ化することができません。"
 
 #. Tag: para
-#: injection.xml:294
-#, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "特定のサイトに依存するWeb Beanにおける<literal>@AustralianTaxLaw</literal>の使用"
+#: injection.xml:411
+#, fuzzy, no-c-format
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "プライベートでなく、引数を持たないコンストラクタを持たないクラス"
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
-msgstr "Web Beansの上に構築されたサードパーティのフレームワークにおける<literal>@SeamFramework</literal>や<literal>@Guice</literal>の使用"
+msgid ""
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"<literal>final</literal>宣言されたクラスや、<literal>final</literal>メソッド"
+"を持つクラス"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
-msgstr "Web Beans仕様によって定義された標準Web Beanにおける<literal>@Standard</literal>の使用"
+msgid "arrays and primitive types."
+msgstr "配列とプリミティブ型"
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "他にも色々な使用方法が考えられるかと思います。"
+#: injection.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"通常、<literal>UnproxyableDependencyException</literal>を修正することはとても"
+"簡単です。単に、引数のないコンストラクタを注入されるクラスに追加したり、イン"
+"タフェースを導入したり、注入されるWeb Beanのスコープを<literal>@Dependent</"
+"literal>に変更するだけです。"
 
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "依存性を充たすように修正する"
-
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:430
 #, no-c-format
-msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
-msgstr "注入箇所のAPIタイプを実装したすべてのWeb Beanのバインディングアノテーションやデプロイメントタイプを考慮した結果、Web Beanマネージャが注入すべきWeb Beanを一つに絞りきれない場合、タイプセーフな解決アルゴリズムは失敗します。"
+msgid ""
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:437
 #, no-c-format
-msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "通常、<literal>UnsatisfiedDependencyException</literal>や<literal>AmbiguousDependencyException</literal>を修正することは簡単です。"
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:442
 #, no-c-format
-msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point &#151; or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
-msgstr "<literal>UnsatisfiedDependencyException</literal>を修正するには、単に、注入箇所のAPIタイプを実装し、バインディングタイプを持つようなWeb Beanを作成するか、既にAPIタイプを実装し、バインディングタイプを持ったWeb Beanのデプロイメントタイプを有効にするだけです。"
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:448
 #, no-c-format
-msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
-msgstr "<literal>AmbiguousDependencyException</literal>を修正するには、APIタイプを実装する二つのWeb Beanを区別することができるバインディングタイプを導入するか、もしくは、片方のWeb Beanのデプロイメントタイプを変更し、Web Beanマネージャがデプロイメントタイプの優先度によってどちらかを選択できるようにします。<literal>AmbiguousDependencyException</literal>は、二つのWeb Beanがバインディングタイプを共有し、全く同じデプロイメントタイプを持つときにのみ、起こり得ます。"
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:335
-#, no-c-format
-msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
-msgstr "Web Beansにおける依存性注入を行う際に気をつけるべきことが、もう少しあります。"
-
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "クライアントプロキシ"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "ルックアップ処理によるWeb Beanの取得"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
-msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
-msgstr "注入されたWeb Beanのクライアントは、通常、Web Beanインスタンスに対する直接的な参照を持ちません。"
+msgid ""
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
-msgstr "アプリケーションスコープに結び付けられたWeb Beanが、リクエストスコープに結び付けられたWeb Beanに対する直接的な参照を持っている場合を想像してみてください。アプリケーションスコープのWeb Beanは、たくさんの異なるリクエスト間で共有されます。しかしながら、それぞれのリクエストは、それぞれ異なったリクエストスコープのWeb Beanインスタンスを参照するべきなのです。"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
-msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
-msgstr "今度は、セッションスコープに結び付けられたWeb Beanが、アプリケーションスコープに結び付けられたWeb Beanに対する直接的な参照を持っている場合を想像してみてください。セッションコンテキストは、メモリを効率的に使う目的で、時々ディスクにシリアライズされます。しかしながら、アプリケーションスコープのWeb Beanインスタンスは、セッションスコープのWeb Beanインスタンスと一緒にシリアライズされるべきではないのです。"
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
-msgstr "それゆえWeb Beanマネージャは、Web Beanがデフォルトスコープである<literal>@Dependent</literal>を持っていない限り、すべての注入されたWeb Beanへの参照を、プロキシオブジェクトを通じて間接的に行わなければなりません。この<emphasis>クライアントプロキシ</emphasis>は、メソッドが起動されるWeb Beanインスタンスと、現在のコンテキストに結びついたインスタンスが同一であることを保証する責任を持ちます。またクライアントプロキシは、セッションコンテキストのようなコンテキストに結び付けられたWeb Beanが、他の注入されたWeb Beanを再帰的にシリアライズすることなく、シリアライズすることを可能とします。"
+msgid "we would like to iterate over all beans of a certain type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
-msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
-msgstr "不幸にも、Java言語の制限により、いくつかのJavaタイプはWeb Beanマネージャがプロキシ化することができません。それゆえ、注入箇所のタイプがプロキシ化できないものである場合、Web Beanマネージャは<literal>UnproxyableDependencyException</literal>をスローします。"
+#: injection.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"アプリケーションは注入によって、<literal>Manager</literal>インタフェースを持"
+"つインスタンスを取得することができます。"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "次に挙げるJava型はWeb Beanマネージャがプロキシ化することができません。"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
-msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
-msgstr "<literal>final</literal>宣言されたクラスや、<literal>final</literal>メソッドを持つクラス"
+#: injection.xml:489
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"テスト作業における<literal>@Mock</literal>や<literal>@Staging</literal>の使用"
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "プライベートでなく、引数を持たないコンストラクタを持たないクラス"
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "配列とプリミティブ型"
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
-msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
-msgstr "通常、<literal>UnproxyableDependencyException</literal>を修正することはとても簡単です。単に、引数のないコンストラクタを注入されるクラスに追加したり、インタフェースを導入したり、注入されるWeb Beanのスコープを<literal>@Dependent</literal>に変更するだけです。"
+#: injection.xml:504
+#, fuzzy, no-c-format
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
+"シンプルWeb Beanは<literal>@PostConstruct</literal>と<literal>@PreDestroy</"
+"literal>のみをコールバックとしてサポートします。"
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "ルックアップ処理によるWeb Beanの取得"
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
-msgstr "アプリケーションは注入によって、<literal>Manager</literal>インタフェースを持つインスタンスを取得することができます。"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
-msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
-msgstr "<literal>Manager</literal>オブジェクトは、Web Beanインスタンスをプログラミングによって取得するための、メソッド群を提供します。"
+msgid ""
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-msgstr "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
-msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
-msgstr "バインディングアノテーションは、ヘルパークラス<literal>AnnotationLiteral</literal>をサブクラス化することによって指定します。これは、その他の方法では、Javaのアノテーションタイプをインスタンス化することは難しいからです。"
+msgid ""
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
-msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to create a named subclass:"
-msgstr "バインディングタイプがメンバーを持っている場合には、<literal>AnnotationLiteral</literal>の無名サブクラスを使うことはできません。代わりに、名前つきのサブクラスを作成する必要がでてきます。"
+msgid ""
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
-msgstr "ライフサイクルコールバック、<literal>@Resource</literal>、<literal>@EJB</literal>、<literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
-msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
-msgstr "エンタープライズWeb BeanはEJB仕様で定められたすべてのライフサイクルコールバックをサポートします。<literal>@PostConstruct</literal>、<literal>@PreDestroy</literal>、<literal>@PrePassivate</literal>、<literal>@PostActivate</literal>などです。"
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
-msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
-msgstr "シンプルWeb Beanは<literal>@PostConstruct</literal>と<literal>@PreDestroy</literal>のみをコールバックとしてサポートします。"
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
-msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
-msgstr "エンタープライズWeb Beanも、シンプルWeb Beasも、<literal>@Resource</literal>や<literal>@EJB</literal>や<literal>@PersistenceContext</literal>を使用して、それぞれJava EEのリソース、EJB、JPAの永続化コンテキストの注入を行うことをサポートします。シンプルWeb Beanは<literal>@PersistenceContext(type=EXTENDED)</literal>の使用をサポートしません。"
+msgid ""
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
+msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
-msgstr "<literal>@PostConstruct</literal>コールバックは、なんらかの依存性注入が行われた後、毎回実行されます。"
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "<literal>InjectionPoint</literal>オブジェクト"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
-msgid "There are certain kinds of dependent objects &#151; Web Beans with scope <literal>@Dependent</literal> &#151; that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
-msgstr "ある種の依存性を持ったオブジェクト、<literal>@Dependent</literal>スコープを持ったWeb Beanは、それらが機能するために注入されたオブジェクトや注入箇所についての情報が必要になります。例えば、"
+#: injection.xml:558
+#, fuzzy, no-c-format
+msgid ""
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"ある種の依存性を持ったオブジェクト、<literal>@Dependent</literal>スコープを"
+"持ったWeb Beanは、それらが機能するために注入されたオブジェクトや注入箇所につ"
+"いての情報が必要になります。例えば、"
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
-msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
-msgstr "<literal>Logger</literal>のログカテゴリはロガーを保有するオブジェクトのクラスが何であるかに依存します。"
+msgid ""
+"The log category for a <literal>Logger</literal> depends upon the class of "
+"the object that owns it."
+msgstr ""
+"<literal>Logger</literal>のログカテゴリはロガーを保有するオブジェクトのクラス"
+"が何であるかに依存します。"
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
-msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
-msgstr "HTTPパラメタ値やヘッダ値の注入は、注入箇所において、どのパラメタ名やヘッダ名が指定されているかに依存します。"
+msgid ""
+"Injection of a HTTP parameter or header value depends upon what parameter or "
+"header name was specified at the injection point."
+msgstr ""
+"HTTPパラメタ値やヘッダ値の注入は、注入箇所において、どのパラメタ名やヘッダ名"
+"が指定されているかに依存します。"
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
-msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
-msgstr "EL式の評価結果の注入は、注入箇所においてどのような式が指定されているかに依存します。"
+msgid ""
+"Injection of the result of an EL expression evaluation depends upon the "
+"expression that was specified at the injection point."
+msgstr ""
+"EL式の評価結果の注入は、注入箇所においてどのような式が指定されているかに依存"
+"します。"
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
-msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
-msgstr "<literal>@Dependent</literal>スコープを持ったWeb Beanは、<literal>InjectionPoint</literal>のインスタンスに注入を行い、Web Beanが属する注入箇所に関するメタデータにアクセスする可能性があります。"
+#: injection.xml:577
+#, fuzzy, no-c-format
+msgid ""
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
+"injection point to which it belongs."
+msgstr ""
+"<literal>@Dependent</literal>スコープを持ったWeb Beanは、"
+"<literal>InjectionPoint</literal>のインスタンスに注入を行い、Web Beanが属する"
+"注入箇所に関するメタデータにアクセスする可能性があります。"
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
-msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
-msgstr "例を見てみましょう。次のコードは、煩雑なうえに、リファクタリングしにくいコードです。"
+msgid ""
+"Let's look at an example. The following code is verbose, and vulnerable to "
+"refactoring problems:"
+msgstr ""
+"例を見てみましょう。次のコードは、煩雑なうえに、リファクタリングしにくいコー"
+"ドです。"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
-msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
-msgstr "次の賢く小さなプロデューサメソッドは、明示的にログカテゴリを指定することなくJDKの<literal>Logger</literal>を注入します。"
+msgid ""
+"This clever little producer method lets you inject a JDK <literal>Logger</"
+"literal> without explicitly specifying the log category:"
+msgstr ""
+"次の賢く小さなプロデューサメソッドは、明示的にログカテゴリを指定することなく"
+"JDKの<literal>Logger</literal>を注入します。"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1010,31 +1330,36 @@
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "これによって、次のような記述が可能になります。"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
-msgstr "納得できませんか?もう一つの例を見てみましょう。HTTPパラメタを注入するためには、バインディングタイプを定義する必要があります。"
+#: injection.xml:595
+#, fuzzy, no-c-format
+msgid ""
+"Not convinced? Then here's a second example. To inject HTTP parameters, we "
+"need to define a qualifier type:"
+msgstr ""
+"納得できませんか?もう一つの例を見てみましょう。HTTPパラメタを注入するために"
+"は、バインディングタイプを定義する必要があります。"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1052,13 +1377,14 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
-msgstr "このバインディングタイプを注入箇所において、次のように使うことができます。"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
+msgstr ""
+"このバインディングタイプを注入箇所において、次のように使うことができます。"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1068,20 +1394,21 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "次のプロデューサメソッドが動作します。"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1090,25 +1417,36 @@
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
-msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
-msgstr "(<literal>HttpParam</literal>アノテーションの<literal>value()</literal>メンバーは、<literal>@NonBinding</literal>アノテーションが付いているので、Web Beanマネージャには無視されることに注意して下さい。)"
+#: injection.xml:608
+#, fuzzy, no-c-format
+msgid ""
+"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
+"literal> annotation is ignored by the container since it is annotated "
+"<literal>@NonBinding.</literal>)"
+msgstr ""
+"(<literal>HttpParam</literal>アノテーションの<literal>value()</literal>メン"
+"バーは、<literal>@NonBinding</literal>アノテーションが付いているので、Web "
+"Beanマネージャには無視されることに注意して下さい。)"
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
-msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
-msgstr "Web Beanマネージャは<literal>InjectionPoint</literal>インタフェースを実装した組み込みWeb Beanを提供します。"
+#: injection.xml:611
+#, fuzzy, no-c-format
+msgid ""
+"The container provides a built-in bean that implements the "
+"<literal>InjectionPoint</literal> interface:"
+msgstr ""
+"Web Beanマネージャは<literal>InjectionPoint</literal>インタフェースを実装した"
+"組み込みWeb Beanを提供します。"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1127,3 +1465,564 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr "Web Beansは依存性注入のための3つの基本的な機構を持っています。"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "コンストラクタの引数による注入、"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "コンストラクタの引数による注入は、EJBには使用することができません。なぜな"
+#~ "らば、EJBはWeb Beanマネージャではなく、EJBコンテナによって初期化が行われる"
+#~ "からです。"
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "コンストラクタや初期化メソッドの引数で注入を行う場合には、デフォルトで"
+#~ "<literal>@Current</literal>バインディングタイプが適用されるので、明示的な"
+#~ "アノテーションは必要ありません。しかしながら、フィールドへの直接的な注入を"
+#~ "行う場合には、デフォルトのバインディングタイプで良い場合でも、バインディン"
+#~ "グタイプを指定<emphasis>しなければなりません</emphasis>。バインディングタ"
+#~ "イプを指定しない場合は、注入は行われません。"
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "プロデューサメソッドもまた、引数による注入を可能とします。"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "結局、オブザーバメソッド(<xref linkend=\"events\"/>で紹介します)や、ディ"
+#~ "スポーザルメソッド、デストラクタでも引数による注入が可能です。"
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "<emphasis>デプロイメントタイプの優先度</emphasis>を使用することによって、"
+#~ "クライアントを変更することなく、APIのとある実装が同じAPIの異なる実装を、デ"
+#~ "プロイメント時に上書きできるようにする"
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "それでは、Web Beanマネージャが注入すべきWeb Beanをどのように決定していくの"
+#~ "かを見ていくことにしましょう。"
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "メンバー付きのバインディングアノテーション"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "バインディングアノテーションはメンバーを持つことができます。"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "このような場合には、メンバーの値が重要な意味を持ちます。"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "バインディングアノテーションの組み合わせ"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "バインディングアノテーションとプロデューサメソッド"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr ""
+#~ "プロデューサメソッドでバインディングアノテーションを指定することもできま"
+#~ "す。"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "デフォルトのバインディングタイプ"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beansでは、デフォルトのバインディングタイプ<literal>@Current</literal>"
+#~ "が定義されており、明示的なバインディングタイプの指定が行われていないすべて"
+#~ "の注入箇所やWeb Beanに適用されます。"
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "以下の二つの状況においては、<literal>@Current</literal>を明示的に指定する"
+#~ "必要があります。"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "フィールドの定義において、そのフィールドがデフォルトのバインディングタイプ"
+#~ "によって注入される(フィールドが持つ型によって解決される)フィールドである"
+#~ "ことを宣言する場合"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "Web Beanの定義において、そのWeb Beanがデフォルトのバインディングタイプ"
+#~ "(Web Beanが持つ型によって解決される)に加えて別のバインディングタイプを持"
+#~ "つ場合"
+
+#~ msgid "Deployment types"
+#~ msgstr "デプロイメントタイプ"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "すべてのWeb Beanは<emphasis>デプロイメントタイプ</emphasis>を持ちます。そ"
+#~ "れぞれのデプロイメントタイプは、システムのある構成の下で条件つきでインス"
+#~ "トールされるべきWeb Beanの集合を規定します。"
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "例えば、<literal>@Mock</literal>という名前のデプロイメントタイプを定義し、"
+#~ "結合テスト環境の中でシステムが稼動するときにのみインストールされるべきWeb "
+#~ "Beanを規定するようなことができます。"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "支払い処理を行う外部システムに関連したあるWeb Beanがあると想定します。"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "このWeb Beanは明示的にデプロイメントタイプが指定されていないので、デフォル"
+#~ "トのデプロイメントタイプである<literal>@Production</literal>を持つことにな"
+#~ "ります。"
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "結合テストや単体テストを行う際に、外部システムの処理が遅かったり、使用でき"
+#~ "なかったりする場合には、このようにモックオブジェクトを作成することでしょ"
+#~ "う。"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "しかし、Web Beamマネージャは一体どのようにして、そのような特定の環境で使わ"
+#~ "れる実装を決定するのでしょうか?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "デプロイメントタイプを有効にする"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beansは、<literal>@Production</literal>と<literal>@Standard</literal>"
+#~ "という、二つの組み込みデプロイメントタイプを定めています。システムがデプロ"
+#~ "イされた際に、デフォルトでは、組み込みデプロイメントタイプを持つWeb Beanの"
+#~ "みが有効となります。特定の環境で有効となるような付加的なデプロイメントタイ"
+#~ "プを規定するためには、それらを<literal>web-beans.xml</literal>に列挙しま"
+#~ "す。"
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "先程の例に戻ると、結合テストをデプロイするには、すべての<literal>@Mock</"
+#~ "literal>オブジェクトをインストールする必要があります。"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "このようにすることで、Web Beanマネージャは、デプロイ時に、"
+#~ "<literal>@Production</literal>、<literal>@Standard</literal>、"
+#~ "<literal>@Mock</literal>のアノテーションが付加されたすべてのWeb Beanを規定"
+#~ "し、インストールします。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "<literal>@Standard</literal>デプロイメントタイプは、Web Beans仕様で定めら"
+#~ "れた、ある特別なWeb Beanに対してのみ使用されます。開発者が作成したWeb Bean"
+#~ "に対してこれを使用したり、デプロイメントタイプを無効にしたりすることはでき"
+#~ "ません。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "<literal>@Production</literal>デプロイメントタイプは、明示的にデプロイメン"
+#~ "トタイプが宣言されないWeb Beanのデフォルトのデプロイメントタイプであり、無"
+#~ "効にすることもできます。"
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "デプロイメントタイプの優先度"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "ここまで注意深く読み進めてきた方は、Web Beanマネージャが、一体どうやって"
+#~ "<literal>ExternalPaymentProcessor</literal>と"
+#~ "<literal>MockPaymentProcessor</literal>のどちらの実装を選択するかを決定す"
+#~ "るのかという点について、疑問に思われるかもしれません。マネージャがこのよう"
+#~ "な注入箇所に遭遇した場合に、何が起こっているのかを考えてみましょう。"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "今、<literal>PaymentProcessor</literal>の条件を充たす二つのWeb Beanが存在"
+#~ "します。もちろん、曖昧さを排除するようなバインディングアノテーションを用い"
+#~ "ることはできません。なぜならば、そうするにはバインディングアノテーションを"
+#~ "ソースの注入箇所にハードコーディングする必要があり、我々が行いたいのはそう"
+#~ "ではなく、デプロイ時に、マネージャによって決定されるようにしたいからです。"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "このような問題への解として、それぞれのデプロイメントタイプは異なる"
+#~ "<emphasis>優先度</emphasis>を持ちます。デプロイメントタイプの優先度は、そ"
+#~ "れらが<literal>web-beans.xml</literal>に現れる順番によって決まります。今回"
+#~ "の例では、<literal>@Mock</literal>は<literal>@Production</literal>の後に現"
+#~ "れるので、<literal>@Mock</literal>の方が高い優先度を持つことになります。"
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "マネージャは、ある注入箇所によって指定される条件(APIタイプやバインディン"
+#~ "グアノテーション)を充たしうるWeb Beanが一つより多く存在することを発見した"
+#~ "場合、Web Beanの相対的な優先度を考慮します。もし、あるWeb Beanが他より高い"
+#~ "優先度をもっているならば、そのWeb Beanが選択され、注入されます。今回の例で"
+#~ "は、結合テスト環境で実行する場合に、Web Beanマネージャは"
+#~ "<literal>MockPaymentProcessor</literal>を注入することになります(これが、"
+#~ "まさに望みどおりの動作です)。"
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "このような仕組みを、最近の人気のあるマネージャのアーキテクチャと比較すると"
+#~ "面白いでしょう。様々な、いわゆる\"軽量\"コンテナにおいて、クラスパスに存在"
+#~ "するクラスを条件つきでデプロイすることは可能です。しかし、それらは、設定の"
+#~ "ためのコードやXMLの設定ファイルに設定を列挙することよって、あくまで明示的"
+#~ "に、そして個別に行わなければなりません。WebnBeansでは、Web Beanの設定をXML"
+#~ "を通じて定義することもできますが、複雑な設定が必要ない通常の場合において"
+#~ "は、デプロイメントタイプによってすべてのWeb Beanの集合をXML中の一行で有効"
+#~ "にすることができます。と同時に、開発者はコードを見るだけで、簡単に、その"
+#~ "Web Beanがどのシナリオにおいて使用されるのかということをつきとめることがで"
+#~ "きます。"
+
+#~ msgid "Example deployment types"
+#~ msgstr "デプロイメントタイプの例"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "デプロイメントタイプは様々な用途に使用できます。以下に例を示します。"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr ""
+#~ "特定のサイトに依存するWeb Beanにおける<literal>@AustralianTaxLaw</literal>"
+#~ "の使用"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "Web Beansの上に構築されたサードパーティのフレームワークにおける"
+#~ "<literal>@SeamFramework</literal>や<literal>@Guice</literal>の使用"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "Web Beans仕様によって定義された標準Web Beanにおける<literal>@Standard</"
+#~ "literal>の使用"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "他にも色々な使用方法が考えられるかと思います。"
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "通常、<literal>UnsatisfiedDependencyException</literal>や"
+#~ "<literal>AmbiguousDependencyException</literal>を修正することは簡単です。"
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "<literal>UnsatisfiedDependencyException</literal>を修正するには、単に、注"
+#~ "入箇所のAPIタイプを実装し、バインディングタイプを持つようなWeb Beanを作成"
+#~ "するか、既にAPIタイプを実装し、バインディングタイプを持ったWeb Beanのデプ"
+#~ "ロイメントタイプを有効にするだけです。"
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "<literal>AmbiguousDependencyException</literal>を修正するには、APIタイプを"
+#~ "実装する二つのWeb Beanを区別することができるバインディングタイプを導入する"
+#~ "か、もしくは、片方のWeb Beanのデプロイメントタイプを変更し、Web Beanマネー"
+#~ "ジャがデプロイメントタイプの優先度によってどちらかを選択できるようにしま"
+#~ "す。<literal>AmbiguousDependencyException</literal>は、二つのWeb Beanがバ"
+#~ "インディングタイプを共有し、全く同じデプロイメントタイプを持つときにのみ、"
+#~ "起こり得ます。"
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "<literal>Manager</literal>オブジェクトは、Web Beanインスタンスをプログラミ"
+#~ "ングによって取得するための、メソッド群を提供します。"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "バインディングアノテーションは、ヘルパークラス<literal>AnnotationLiteral</"
+#~ "literal>をサブクラス化することによって指定します。これは、その他の方法で"
+#~ "は、Javaのアノテーションタイプをインスタンス化することは難しいからです。"
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "バインディングタイプがメンバーを持っている場合には、"
+#~ "<literal>AnnotationLiteral</literal>の無名サブクラスを使うことはできませ"
+#~ "ん。代わりに、名前つきのサブクラスを作成する必要がでてきます。"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "ライフサイクルコールバック、<literal>@Resource</literal>、<literal>@EJB</"
+#~ "literal>、<literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "エンタープライズWeb BeanはEJB仕様で定められたすべてのライフサイクルコール"
+#~ "バックをサポートします。<literal>@PostConstruct</literal>、"
+#~ "<literal>@PreDestroy</literal>、<literal>@PrePassivate</literal>、"
+#~ "<literal>@PostActivate</literal>などです。"
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "エンタープライズWeb Beanも、シンプルWeb Beasも、<literal>@Resource</"
+#~ "literal>ã‚„<literal>@EJB</literal>ã‚„<literal>@PersistenceContext</literal>"
+#~ "を使用して、それぞれJava EEのリソース、EJB、JPAの永続化コンテキストの注入"
+#~ "を行うことをサポートします。シンプルWeb Beanは<literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>の使用をサポートしません。"
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "<literal>@PostConstruct</literal>コールバックは、なんらかの依存性注入が行"
+#~ "われた後、毎回実行されます。"

Modified: doc/trunk/reference/ja-JP/interceptors.po
===================================================================
--- doc/trunk/reference/ja-JP/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-30 23:14+0900\n"
 "Last-Translator: Fusayuki Minamoto <miki.htmnet at nifty.com>\n"
 "Language-Team: none\n"
@@ -14,106 +14,154 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "インタセプタ"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
-msgid "Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending the functionality in two directions:"
-msgstr "Web BeansはEJB 3.0の基本的なインタセプタアーキテクチャを再利用し、次の2つの方向において機能を拡張します。"
+#: interceptors.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web BeansはWeb Beansへのバインディングインタセプタに対してより洗練されたアノ"
+"テーションベースのアプローチを取る"
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "任意のWeb BeanはセッションBeanだけでなくインタセプタを持つことができる"
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
-msgid "Web Beans features a more sophisticated annotation-based approach to binding interceptors to Web Beans."
-msgstr "Web BeansはWeb Beansへのバインディングインタセプタに対してより洗練されたアノテーションベースのアプローチを取る"
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+#: interceptors.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "EJB仕様書は次の二つのインタセプションポイントを定義します。"
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "ビジネスメソッドインタセプションと"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "ライフサイクルコールバックインタセプション"
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
-msgid "A <emphasis>business method interceptor</emphasis> applies to invocations of methods of the Web Bean by clients of the Web Bean:"
-msgstr "<emphasis>ビジネスメソッドインタセプタ</emphasis> は次のようにWeb BeansのクライアントによってWeb Beansのメソッド呼び出しへ適用されます。"
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "EJB仕様書は次の二つのインタセプションポイントを定義します。"
 
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>business method interceptor</emphasis> applies to invocations of "
+"methods of the bean by clients of the bean:"
+msgstr ""
+"<emphasis>ビジネスメソッドインタセプタ</emphasis> は次のようにWeb Beansのクラ"
+"イアントによってWeb Beansのメソッド呼び出しへ適用されます。"
+
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
-msgid "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations of lifecycle callbacks by the container:"
-msgstr "<emphasis>ライフサイクルコールバックインタセプタ</emphasis> は次のようにコンテナによってライフサイクルコールバックの呼び出しに適用されます。"
+msgid ""
+"A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
+"of lifecycle callbacks by the container:"
+msgstr ""
+"<emphasis>ライフサイクルコールバックインタセプタ</emphasis> は次のようにコン"
+"テナによってライフサイクルコールバックの呼び出しに適用されます。"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
 #: interceptors.xml:43
 #, no-c-format
-msgid "An interceptor class may intercept both lifecycle callbacks and business methods."
-msgstr "インタセプタクラスはライフサイクルコールバックとビジネスメソッドの両方に対して割り込むことができます。"
+msgid ""
+"An interceptor class may intercept both lifecycle callbacks and business "
+"methods."
+msgstr ""
+"インタセプタクラスはライフサイクルコールバックとビジネスメソッドの両方に対し"
+"て割り込むことができます。"
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"<emphasis>ライフサイクルコールバックインタセプタ</emphasis> は次のようにコン"
+"テナによってライフサイクルコールバックの呼び出しに適用されます。"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "インタセプタバインディング"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
-msgid "Suppose we want to declare that some of our Web Beans are transactional. The first thing we need is an <emphasis>interceptor binding annotation</emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "Web Beansをトランザクション型として宣言したいと仮定します。最初に必要なことは、次のような、興味のあるWeb Beansを正確に指定するための <emphasis>インタセプタバインディングアノテーション</emphasis> です。"
+#: interceptors.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"Web Beansをトランザクション型として宣言したいと仮定します。最初に必要なこと"
+"は、次のような、興味のあるWeb Beansを正確に指定するための <emphasis>インタセ"
+"プタバインディングアノテーション</emphasis> です。"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -124,13 +172,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
-msgid "Now we can easily specify that our <literal>ShoppingCart</literal> is a transactional object:"
-msgstr "こうして <literal>ShoppingCart</literal> がトランザクション型オブジェクトであることを簡単に指定することが可能になりました。"
+msgid ""
+"Now we can easily specify that our <literal>ShoppingCart</literal> is a "
+"transactional object:"
+msgstr ""
+"こうして <literal>ShoppingCart</literal> がトランザクション型オブジェクトであ"
+"ることを簡単に指定することが可能になりました。"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -140,17 +192,19 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
-msgstr "または、望みとあらば、だだ一つのメソッドだけをトランザクション型として指定できます。"
+msgstr ""
+"または、望みとあらば、だだ一つのメソッドだけをトランザクション型として指定で"
+"きます。"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -158,47 +212,60 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "インタセプタの実装"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
-msgid "That's great, but somewhere along the line we're going to have to actually implement the interceptor that provides this transaction management aspect. All we need to do is create a standard EJB interceptor, and annotate it <literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "それは素晴らしいことではありますが、どこかでこのトランザクション管理アスペクトを提供するインタセプタを実際に実装する必要があります。必要なのは、標準的なEJBインタセプタを作成し、それに <literal>@Interceptor</literal> と <literal>@Transactional</literal> のアノテーションを付加するだけです。"
+#: interceptors.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"That's great, but somewhere along the line we're going to have to actually "
+"implement the interceptor that provides this transaction management aspect. "
+"All we need to do is create a standard interceptor, and annotate it "
+"<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
+msgstr ""
+"それは素晴らしいことではありますが、どこかでこのトランザクション管理アスペク"
+"トを提供するインタセプタを実際に実装する必要があります。必要なのは、標準的な"
+"EJBインタセプタを作成し、それに <literal>@Interceptor</literal> と "
+"<literal>@Transactional</literal> のアノテーションを付加するだけです。"
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid "All Web Beans interceptors are simple Web Beans, and can take advantage of dependency injection and contextual lifecycle management."
-msgstr "すべてのWeb BeansインタセプタはシンプルWeb Beansなので、依存性注入とコンテキスト依存ライフサイクル管理を利用することができます。"
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -207,111 +274,140 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
-msgstr "複数のインタセプタは同一のインタセプタバインディングタイプを使用することが許されます。"
+msgstr ""
+"複数のインタセプタは同一のインタセプタバインディングタイプを使用することが許"
+"されます。"
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "インタセプタの有効化"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
-msgid "Finally, we need to <emphasis>enable</emphasis> our interceptor in <literal>web-beans.xml</literal>."
-msgstr "最後に、<literal>web-beans.xml</literal> において私たちのインタセプタを <emphasis>有効にする</emphasis> 必要があります。"
+msgid ""
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "なぜ、かぎ括弧が必要なのでしょうか。"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "XML宣言は次の二つの問題を解決します。"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all the interceptors in our system, ensuring deterministic behavior, and"
-msgstr "システム内のすべてのインタセプタの順番を指定できるようにするので、振る舞いを一意に保証する"
+msgid ""
+"it enables us to specify a total ordering for all the interceptors in our "
+"system, ensuring deterministic behavior, and"
+msgstr ""
+"システム内のすべてのインタセプタの順番を指定できるようにするので、振る舞いを"
+"一意に保証する"
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr "デプロイ時にインタセプタクラスの有効、無効を指定できるようにする"
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
-msgid "For example, we could specify that our security interceptor runs before our <literal>TransactionInterceptor</literal>."
-msgstr "たとえば、セキュリティインタセプタが <literal>TransactionInterceptor</literal> より前に実行するように指定できます。"
+#: interceptors.xml:130
+#, fuzzy, no-c-format
+msgid ""
+"For example, we could specify that our security interceptor runs before our "
+"transaction interceptor."
+msgstr ""
+"たとえば、セキュリティインタセプタが <literal>TransactionInterceptor</"
+"literal> より前に実行するように指定できます。"
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "または、テスト環境で両方とも無効にすることもできるのです。"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "メンバを持つインタセプタバインディング"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
-msgid "Suppose we want to add some extra information to our <literal>@Transactional</literal> annotation:"
-msgstr " <literal>@Transactional</literal> アノテーションに付加情報を追加したいと仮定しましょう。"
+msgid ""
+"Suppose we want to add some extra information to our "
+"<literal>@Transactional</literal> annotation:"
+msgstr ""
+" <literal>@Transactional</literal> アノテーションに付加情報を追加したいと仮定"
+"しましょう。"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -322,56 +418,78 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
-msgid "Web Beans will use the value of <literal>requiresNew</literal> to choose between two different interceptors, <literal>TransactionInterceptor</literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beansは <literal>TransactionInterceptor</literal>  と <literal>RequiresNewTransactionInterceptor</literal> という二つの異なるインタセプタの中から選択できるようにするため <literal>requiresNew</literal> の値を使用します。"
+#: interceptors.xml:150
+#, fuzzy, no-c-format
+msgid ""
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beansは <literal>TransactionInterceptor</literal>  と "
+"<literal>RequiresNewTransactionInterceptor</literal> という二つの異なるインタ"
+"セプタの中から選択できるようにするため <literal>requiresNew</literal> の値を"
+"使用します。"
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
-msgid "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like this:"
-msgstr "これで次のように <literal>RequiresNewTransactionInterceptor</literal> を使用できるようになりました。"
+msgid ""
+"Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
+"this:"
+msgstr ""
+"これで次のように <literal>RequiresNewTransactionInterceptor</literal> を使用"
+"できるようになりました。"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
-msgid "But what if we only have one interceptor and we want the manager to ignore the value of <literal>requiresNew</literal> when binding interceptors? We can use the <literal>@NonBinding</literal> annotation:"
-msgstr "しかし、もしインタセプタを一つしか持っていなくて、インタセプタをバインディングするときにマネージャに <literal>requiresNew</literal> の値を無視させたいならどうしたらよいでしょうか。そのようなときは <literal>@NonBinding</literal> アノテーションを使うことができます。"
+#: interceptors.xml:163
+#, fuzzy, no-c-format
+msgid ""
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"しかし、もしインタセプタを一つしか持っていなくて、インタセプタをバインディン"
+"グするときにマネージャに <literal>requiresNew</literal> の値を無視させたいな"
+"らどうしたらよいでしょうか。そのようなときは <literal>@NonBinding</literal> "
+"アノテーションを使うことができます。"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -382,19 +500,27 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "複数のインタセプタバインディングアノテーション"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
-msgid "Usually we use combinations of interceptor bindings types to bind multiple interceptors to a Web Bean. For example, the following declaration would be used to bind <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr "通常、複数のインタセプタをWeb Beanに結びつけるためにインタセプタバインディングタイプを組み合わせます。たとえば、次の定義は  <literal>TransactionInterceptor</literal> と <literal>SecurityInterceptor</literal> を同じWeb Beanに結びつけます。"
+#: interceptors.xml:176
+#, fuzzy, no-c-format
+msgid ""
+"Usually we use combinations of interceptor bindings types to bind multiple "
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
+msgstr ""
+"通常、複数のインタセプタをWeb Beanに結びつけるためにインタセプタバインディン"
+"グタイプを組み合わせます。たとえば、次の定義は  "
+"<literal>TransactionInterceptor</literal> と <literal>SecurityInterceptor</"
+"literal> を同じWeb Beanに結びつけます。"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -404,13 +530,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
-msgid "However, in very complex cases, an interceptor itself may specify some combination of interceptor binding types:"
-msgstr "しかし、とても複雑なケースでは、インタセプタ自身がいくつかのインタセプタバインディングタイプの組み合わせを指定することが許されます。"
+msgid ""
+"However, in very complex cases, an interceptor itself may specify some "
+"combination of interceptor binding types:"
+msgstr ""
+"しかし、とても複雑なケースでは、インタセプタ自身がいくつかのインタセプタバイ"
+"ンディングタイプの組み合わせを指定することが許されます。"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -420,17 +550,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
-msgid "Then this interceptor could be bound to the <literal>checkout()</literal> method using any one of the following combinations:"
-msgstr "次に、このインタセプタは次の組み合わせのどれかを使って <literal>checkout()</literal> メソッドに結びつきます。"
+msgid ""
+"Then this interceptor could be bound to the <literal>checkout()</literal> "
+"method using any one of the following combinations:"
+msgstr ""
+"次に、このインタセプタは次の組み合わせのどれかを使って <literal>checkout()</"
+"literal> メソッドに結びつきます。"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -438,12 +572,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -452,12 +586,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -466,12 +600,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -480,35 +614,53 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "インタセプタバインディングタイプの継承"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
-msgid "One limitation of the Java language support for annotations is the lack of annotation inheritance. Really, annotations should have reuse built in, to allow this kind of thing to work:"
-msgstr "Java言語でのアノテーションサポートの制限の一つとして、アノテーションの継承ができないことがあげられます。本当に、アノテーションは次のようなことが許されるように組み込みのものを再利用できるべきです。"
+msgid ""
+"One limitation of the Java language support for annotations is the lack of "
+"annotation inheritance. Really, annotations should have reuse built in, to "
+"allow this kind of thing to work:"
+msgstr ""
+"Java言語でのアノテーションサポートの制限の一つとして、アノテーションの継承が"
+"できないことがあげられます。本当に、アノテーションは次のようなことが許される"
+"ように組み込みのものを再利用できるべきです。"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
-msgid "Well, fortunately, Web Beans works around this missing feature of Java. We may annotate one interceptor binding type with other interceptor binding types. The interceptor bindings are transitive &#151; any Web Bean with the first interceptor binding inherits the interceptor bindings declared as meta-annotations."
-msgstr "幸い、Web BeansはJavaのこの不足機能を補います。あるインタセプタバインディングタイプを他の複数のバインディングタイプにアノテーションとして付加することが許されます。このインタセプタバインディングは推移的です。つまり、最初のインタセプタバインディングを持つ任意のWeb Beanはメタアノテーションとして宣言されたインタセプタバインディングを継承します。"
+#: interceptors.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"幸い、Web BeansはJavaのこの不足機能を補います。あるインタセプタバインディング"
+"タイプを他の複数のバインディングタイプにアノテーションとして付加することが許"
+"されます。このインタセプタバインディングは推移的です。つまり、最初のインタセ"
+"プタバインディングを持つ任意のWeb Beanはメタアノテーションとして宣言されたイ"
+"ンタセプタバインディングを継承します。"
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -520,64 +672,132 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
-msgid "Any Web Bean annotated <literal>@Action</literal> will be bound to both <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it exists.)"
-msgstr "<literal>@Action</literal> とアノテーションが付加されたWeb Beanは <literal>TransactionInterceptor</literal> と <literal>SecurityInterceptor</literal> の両方に結びつきます。(そして <literal>TransactionalSecureInterceptor</literal> が存在それば、それさえも)"
+#: interceptors.xml:225
+#, fuzzy, no-c-format
+msgid ""
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
+"<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
+"literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
+"exists.)"
+msgstr ""
+"<literal>@Action</literal> とアノテーションが付加されたWeb Beanは "
+"<literal>TransactionInterceptor</literal> と <literal>SecurityInterceptor</"
+"literal> の両方に結びつきます。(そして "
+"<literal>TransactionalSecureInterceptor</literal> が存在それば、それさえも)"
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "<literal>@Interceptors</literal> の使用"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
-msgid "The <literal>@Interceptors</literal> annotation defined by the EJB specification is supported for both enterprise and simple Web Beans, for example:"
-msgstr "EJB仕様書で定義された<literal>@Interceptors</literal> アノテーションはエンタープライズとシンプルの両方のWeb Beansでサポートされます。たとえば、次のように。"
+#: interceptors.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"EJB仕様書で定義された<literal>@Interceptors</literal> アノテーションはエン"
+"タープライズとシンプルの両方のWeb Beansでサポートされます。たとえば、次のよう"
+"に。"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
 "    public void checkout() { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "しかし、このアプローチは次のような欠点があります。"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr "インタセプタ実装はビジネスコードにハードコードされる"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr "インタセプタはデプロイ時に簡単に無効に設定できない"
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
-msgid "the interceptor ordering is non-global &#151; it is determined by the order in which interceptors are listed at the class level."
-msgstr "インタセプタの順番はグローバルではない。つまり、クラスレベルでリストされたインタセプタの順番によって決定される"
+#: interceptors.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"インタセプタの順番はグローバルではない。つまり、クラスレベルでリストされたイ"
+"ンタセプタの順番によって決定される"
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
-msgstr "そのため、私たちはWeb Beansスタイルのインタセプタバインディングを推奨します。"
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
+msgstr ""
+"そのため、私たちはWeb Beansスタイルのインタセプタバインディングを推奨します。"
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web BeansはEJB 3.0の基本的なインタセプタアーキテクチャを再利用し、次の2つ"
+#~ "の方向において機能を拡張します。"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr ""
+#~ "任意のWeb BeanはセッションBeanだけでなくインタセプタを持つことができる"
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "すべてのWeb BeansインタセプタはシンプルWeb Beansなので、依存性注入とコンテ"
+#~ "キスト依存ライフサイクル管理を利用することができます。"
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "最後に、<literal>web-beans.xml</literal> において私たちのインタセプタを "
+#~ "<emphasis>有効にする</emphasis> 必要があります。"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "または、テスト環境で両方とも無効にすることもできるのです。"

Modified: doc/trunk/reference/ja-JP/intro.po
===================================================================
--- doc/trunk/reference/ja-JP/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-09 03:50+0900\n"
 "Last-Translator: Shinobu NOGAMI <s-nogami at sourceforge.jp>\n"
 "Language-Team: none\n"
@@ -16,39 +16,125 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Web Beans を始めよう"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
-msgid "So you're already keen to get started writing your first Web Bean? Or perhaps you're skeptical, wondering what kinds of hoops the Web Beans specification will make you jump through! The good news is that you've probably already written and used hundreds, perhaps thousands of Web Beans. You might not even remember the first Web Bean you wrote."
-msgstr "あなたは、すでに最初の Web Bean を書き始めることに夢中ですか。あるいは、たぶん Web Beans 仕様によって、どのような種類のフープを跳ぶことができるのかを不思議に思って疑い深くなっているのかもしれません。朗報なことは、すでにあなたはおそらく数百、もしかすると数千の Web Beans を書いて使用しているかもしれないということです。あなたは最初の書いた Web Bean を思い出すことさえできないかもしれません。"
+#, fuzzy, no-c-format
+msgid ""
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"あなたは、すでに最初の Web Bean を書き始めることに夢中ですか。あるいは、たぶ"
+"ん Web Beans 仕様によって、どのような種類のフープを跳ぶことができるのかを不思"
+"議に思って疑い深くなっているのかもしれません。朗報なことは、すでにあなたはお"
+"そらく数百、もしかすると数千の Web Beans を書いて使用しているかもしれないとい"
+"うことです。あなたは最初の書いた Web Bean を思い出すことさえできないかもしれ"
+"ません。"
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "初めての Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "Web Bean とは何か?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
-msgid "With certain, very special exceptions, every Java class with a constructor that accepts no parameters is a Web Bean. That includes every JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the JavaBeans and EJBs you've been writing every day have not been able to take advantage of the new services defined by the Web Beans specification, but you'll be able to use every one of them as Web Beans &#151; injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them &#151; without touching your existing code."
-msgstr "ある特定のとても特別な例外を除いて、パラメータなしのコンストラクタを持つすべての Java クラスは、Web Bean です。それはすべての JavaBean を含みます。さらに、すべての EJB 3 仕様のセッション Bean も、Web Bean です。確かに、毎日書いている JavaBean と EJB は、Web Beans 仕様によって定義された新しいサービスを利用することができていません。しかし、それらすべての各々は、&#151; Web Beans の XML 構成機能によって構成し、そしてそれらにインタセプタとデコレータを加えることによって &#151;、現存するコードに触れることなく、Web Beans として使用することができるでしょう。"
+msgid ""
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
-msgid "Suppose that we have two existing Java classes, that we've been using for years in various applications. The first class parses a string into a list of sentences:"
-msgstr "様々なアプリケーションで何年間も使っている2つの既存の Java クラスがあると仮定します。1つ目のクラスは、文のリストへ文字列に構文解析します:"
+msgid ""
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
+#. Tag: para
+#: intro.xml:27
 #, no-c-format
 msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
+msgstr ""
+"様々なアプリケーションで何年間も使っている2つの既存の Java クラスがあると仮"
+"定します。1つ目のクラスは、文のリストへ文字列に構文解析します:"
+
+#. Tag: programlisting
+#: intro.xml:68
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -56,18 +142,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
-msgid "The second existing class is a stateless session bean front-end for an external system that is able to translate sentences from one language to another:"
-msgstr "2つ目の現存するクラスは、1つの言語からもう1つの言語への文を翻訳することができる外部システムのフロントエンドとなるステートレスセッション Bean です:"
+msgid ""
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
+msgstr ""
+"2つ目の現存するクラスは、1つの言語からもう1つの言語への文を翻訳することが"
+"できる外部システムのフロントエンドとなるステートレスセッション Bean です:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -76,18 +167,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "ここで <literal>Translator</literal> はローカルインターフェースです:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -96,34 +187,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
-msgid "Unfortunately, we don't have a preexisting class that translates whole text documents. So let's write a Web Bean that does this job:"
-msgstr "運悪く、すべてのテキストドキュメントを翻訳する既存のクラスはありません。そこでこの仕事をする Web Bean を書きましょう:"
+#: intro.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"運悪く、すべてのテキストドキュメントを翻訳する既存のクラスはありません。そこ"
+"でこの仕事をする Web Bean を書きましょう:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -132,7 +226,8 @@
 "    private Translator sentenceTranslator;\n"
 "    \n"
 "    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+"    TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
 "        this.sentenceParser = sentenceParser;\n"
 "        this.sentenceTranslator = sentenceTranslator;\n"
 "    }\n"
@@ -148,784 +243,1008 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid "We may obtain an instance of <literal>TextTranslator</literal> by injecting it into a Web Bean, Servlet or EJB:"
-msgstr "Web Bean、サーブレットあるいは EJB へ注入することによって <literal>TextTranslator</literal> のインスタンスを取得することができます:"
+#: intro.xml:87
+#, fuzzy, no-c-format
+msgid ""
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
+msgstr ""
+"しかし待ってください: <literal>TextTranslator</literal> はパラメータなしのコ"
+"ンストラクタがありません。それはまだ Web Bean ですか。まあ、"
+"<literal>@Initializer</literal> アノテーションを付けたコンストラクタがあれ"
+"ば、パラメータなしのコンストラクタを持たないクラスもまだ Web Bean であること"
+"ができます。"
 
-#. Tag: programlisting
-#: intro.xml:49
+#. Tag: para
+#: intro.xml:93
+#, fuzzy, no-c-format
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
+msgstr ""
+"あなたが推測しているように、 <literal>@Initializer</literal> ノテーションは依"
+"存性注入と関係があります。<literal>@Initializer</literal> は、Web Bean のコン"
+"ストラクタあるいはメソッドに適用することができ、Web Bean をインスタンス化する"
+"ときに Web Bean マネージャにそのコンストラクタあるいはメソッドを呼ぶ出すよう"
+"に伝えます。Web Beanマネージャは、コンストラクタあるいはメソッドのパラメータ"
+"に他の Web Beans を注入します。"
+
+#. Tag: para
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:107
 #, no-c-format
-msgid "Alternatively, we may obtain an instance by directly calling a method of the Web Bean manager:"
-msgstr "もう1つの方法として、Web Bean マネージャのメソッドを直接に呼ぶことによってインスタンスを取得することもできます:"
+msgid ""
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
+msgstr ""
 
 #. Tag: programlisting
-#: intro.xml:54
+#: intro.xml:116
 #, no-c-format
-msgid "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-msgstr "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
+msgid ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid "But wait: <literal>TextTranslator</literal> does not have a constructor with no parameters! Is it still a Web Bean? Well, a class that does not have a constructor with no parameters can still be a Web Bean if it has a constructor annotated <literal>@Initializer</literal>."
-msgstr "しかし待ってください: <literal>TextTranslator</literal> はパラメータなしのコンストラクタがありません。それはまだ Web Bean ですか。まあ、<literal>@Initializer</literal> アノテーションを付けたコンストラクタがあれば、パラメータなしのコンストラクタを持たないクラスもまだ Web Bean であることができます。"
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "ここで <literal>Translator</literal> はローカルインターフェースです:"
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:127
 #, no-c-format
-msgid "As you've guessed, the <literal>@Initializer</literal> annotation has something to do with dependency injection! <literal>@Initializer</literal> may be applied to a constructor or method of a Web Bean, and tells the Web Bean manager to call that constructor or method when instantiating the Web Bean. The Web Bean manager will inject other Web Beans to the parameters of the constructor or method."
-msgstr "あなたが推測しているように、 <literal>@Initializer</literal> ノテーションは依存性注入と関係があります。<literal>@Initializer</literal> は、Web Bean のコンストラクタあるいはメソッドに適用することができ、Web Bean をインスタンス化するときに Web Bean マネージャにそのコンストラクタあるいはメソッドを呼ぶ出すように伝えます。Web Beanマネージャは、コンストラクタあるいはメソッドのパラメータに他の Web Beans を注入します。"
+msgid ""
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:68
-#, no-c-format
-msgid "At system initialization time, the Web Bean manager must validate that exactly one Web Bean exists which satisfies each injection point. In our example, if no implementation of <literal>Translator</literal> available &#151; if the <literal>SentenceTranslator</literal> EJB was not deployed &#151; the Web Bean manager would throw an <literal>UnsatisfiedDependencyException</literal>. If more than one implementation of <literal>Translator</literal> was available, the Web Bean manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "システムの初期化時に、Web Bean マネージャはそれぞれのインジェクションポイントの条件を満たすまさに1つの Web Bean が存在することを検証しなければなりません。サンプルで、もし利用可能な <literal>Translator</literal> の実装がなければ&#151;、あるいは <literal>SentenceTranslator</literal> EJB がデプロイされていなければ&#151;、Web Bean マネージャーは、<literal>UnsatisfiedDependencyException</literal> をスローします。もし1つ以上の <literal>Translator</literal> の実装が利用可能であれば、Web Beanマネージャは、<literal>AmbiguousDependencyException</literal> をスローします。"
+#: intro.xml:135
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"Web Bean、サーブレットあるいは EJB へ注入することによって "
+"<literal>TextTranslator</literal> のインスタンスを取得することができます:"
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "Web Bean とは何か?"
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:142
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "それでは、Web Bean とは、<emphasis> 一体</emphasis> 何か。"
+msgid ""
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid "A Web Bean is an application class that contains business logic. A Web Bean may be called directly from Java code, or it may be invoked via Unified EL. A Web Bean may access transactional resources. Dependencies between Web Beans are managed automatically by the Web Bean manager. Most Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "Web Bean は、ビジネスロジックを含むアプリケーションクラスです。Web Bean は、直接 Java コードから呼び出すこともでき、あるいはユニファイド EL から呼び出すこともできます。Web Bean は、トランザクションのリソースにアクセスすることもできます。Web Beans 間での依存関係は、Web Bean マネージャによって自動的に管理されます。 ほとんどのWeb Beansは <emphasis>ステートフル</emphasis> で <emphasis>コンテキスト依存</emphasis> です。Web Bean のライフサイクルは Web Bean マネージャによっていつも管理されます。"
+#: intro.xml:148
+#, fuzzy, no-c-format
+msgid ""
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"システムの初期化時に、Web Bean マネージャはそれぞれのインジェクションポイント"
+"の条件を満たすまさに1つの Web Bean が存在することを検証しなければなりませ"
+"ん。サンプルで、もし利用可能な <literal>Translator</literal> の実装がなければ"
+"&#151;、あるいは <literal>SentenceTranslator</literal> EJB がデプロイされてい"
+"なければ&#151;、Web Bean マネージャーは、"
+"<literal>UnsatisfiedDependencyException</literal> をスローします。もし1つ以"
+"上の <literal>Translator</literal> の実装が利用可能であれば、Web Beanマネー"
+"ジャは、<literal>AmbiguousDependencyException</literal> をスローします。"
 
 #. Tag: para
-#: intro.xml:91
+#: intro.xml:156
 #, no-c-format
-msgid "Let's back up a second. What does it really mean to be \"contextual\"? Since Web Beans may be stateful, it matters <emphasis>which</emphasis> bean instance I have. Unlike a stateless component model (for example, stateless session beans) or a singleton component model (such as servlets, or singleton beans), different clients of a Web Bean see the Web Bean in different states. The client-visible state depends upon which instance of the Web Bean the client has a reference to."
-msgstr "少しの間ゆっくり考えてみましょう。「コンテキスト依存である」ということは、本当に何を意味するのでしょうか。Web Beans はステートフルですので、 <emphasis>どの</emphasis> Bean インスタンスを持っているかが重要です。ステートレスなコンポーネントモデル(例えば、ステートレスセッション bean)あるいはシングルトンコンポーネントモデル(例えばサーブレット、あるいはシングルトン bean)と違って、Web Bean の異なるクライアントは、異なる状態で Web Bean を参照します。クライアントに見える状態は、Web Bean のどちらのインスタンスへのリファレンスをクライアントが持っているかによります。"
+msgid ""
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
+msgstr ""
 
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid "However, like a stateless or singleton model, but <emphasis>unlike</emphasis> stateful session beans, the client does not control the lifecycle of the instance by explicitly creating and destroying it. Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "しかし、しかしステートフルなセッション bean とは <emphasis>違って</emphasis>、クライアントは、ステートレスあるいはシングルトンモデルと同じように、明示的にインスタンスの生成と破棄を行ってインスタンスのライフサイクルを制御はしません。その代わりに、Web Bean の <emphasis>スコープ</emphasis> は以下で決定されます:"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Web Beans を始めよう"
 
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "Web Bean のそれぞれのインスタンスのライフサイクル"
+#~ msgid "Your first Web Bean"
+#~ msgstr "初めての Web Bean"
 
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "Web Bean のある特定のリファレンスをどのクライアントが共用しているか"
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "ある特定のとても特別な例外を除いて、パラメータなしのコンストラクタを持つす"
+#~ "べての Java クラスは、Web Bean です。それはすべての JavaBean を含みます。"
+#~ "さらに、すべての EJB 3 仕様のセッション Bean も、Web Bean です。確かに、毎"
+#~ "日書いている JavaBean と EJB は、Web Beans 仕様によって定義された新しい"
+#~ "サービスを利用することができていません。しかし、それらすべての各々は、"
+#~ "&#151; Web Beans の XML 構成機能によって構成し、そしてそれらにインタセプタ"
+#~ "とデコレータを加えることによって &#151;、現存するコードに触れることなく、"
+#~ "Web Beans として使用することができるでしょう。"
 
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid "For a given thread in a Web Beans application, there may be an <emphasis>active context</emphasis> associated with the scope of the Web Bean. This context may be unique to the thread (for example, if the Web Bean is request scoped), or it may be shared with certain other threads (for example, if the Web Bean is session scoped) or even all other threads (if it is application scoped)."
-msgstr "Web Beans アプリケーションに与えられたスレッドには、Web Bean のスコープに関連付けられた <emphasis>アクティブコンテキスト</emphasis> があります。このコンテキストは、そのスレッドに固有かもしれません(例えば、Web Bean がリクエストスコープの場合)。あるいは、それはその他のスレッド間で共用されるかもしれません(例えば、Web Bean がセッションスコープの場合)。あるいは、それはすべてのスレッドで共用されるかもしれません(アプリケーションスコープの場合)。"
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "もう1つの方法として、Web Bean マネージャのメソッドを直接に呼ぶことによっ"
+#~ "てインスタンスを取得することもできます:"
 
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid "Clients (for example, other Web Beans) executing in the same context will see the same instance of the Web Bean. But clients in a different context will see a different instance."
-msgstr "同じコンテキストで実行しているクライアント(例えば、他の Web Beans)は、同じインスタンスの Web Bean を参照するでしょう。しかし、異なるコンテキストのクライアントは、異なるインスタンスを参照します。"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid "One great advantage of the contextual model is that it allows stateful Web Beans to be treated like services! The client need not concern itself with managing the lifecycle of the Web Bean it is using, <emphasis>nor does it even need to know what that lifecyle is.</emphasis> Web Beans interact by passing messages, and the Web Bean implementations define the lifecycle of their own state. The Web Beans are loosely coupled because:"
-msgstr "コンテキスト依存モデルのすばらしい利点の1つには、ステートフルな Web Beans をサービスのように取り扱うことを可能にすることがあります。クライアントは、使用している Web Bean のライフサイクルの管理に関与する必要はありません。 <emphasis>またさらにライフサイクルが何であるかも知っている必要はありません。</emphasis> Web Beansは、メッセージを送信することによって相互に作用し、 Web Bean の実装が自分自身の状態のライフサイクルを定義します。Web Beans が疎結合なのは以下の理由からです:"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "それでは、Web Bean とは、<emphasis> 一体</emphasis> 何か。"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "明確に定義されたパブリックなAPI経由で相互に作用する"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Web Bean は、ビジネスロジックを含むアプリケーションクラスです。Web Bean "
+#~ "は、直接 Java コードから呼び出すこともでき、あるいはユニファイド EL から呼"
+#~ "び出すこともできます。Web Bean は、トランザクションのリソースにアクセスす"
+#~ "ることもできます。Web Beans 間での依存関係は、Web Bean マネージャによって"
+#~ "自動的に管理されます。 ほとんどのWeb Beansは <emphasis>ステートフル</"
+#~ "emphasis> で <emphasis>コンテキスト依存</emphasis> です。Web Bean のライフ"
+#~ "サイクルは Web Bean マネージャによっていつも管理されます。"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "ライフサイクルは完全に切り離されている"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "少しの間ゆっくり考えてみましょう。「コンテキスト依存である」ということは、"
+#~ "本当に何を意味するのでしょうか。Web Beans はステートフルですので、 "
+#~ "<emphasis>どの</emphasis> Bean インスタンスを持っているかが重要です。ス"
+#~ "テートレスなコンポーネントモデル(例えば、ステートレスセッション bean)ある"
+#~ "いはシングルトンコンポーネントモデル(例えばサーブレット、あるいはシングル"
+#~ "トン bean)と違って、Web Bean の異なるクライアントは、異なる状態で Web "
+#~ "Bean を参照します。クライアントに見える状態は、Web Bean のどちらのインスタ"
+#~ "ンスへのリファレンスをクライアントが持っているかによります。"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid "We can replace one Web Bean with a different Web Bean that implements the same API and has a different lifecycle (a different scope) without affecting the other Web Bean implementation. In fact, Web Beans defines a sophisticated facility for overriding Web Bean implementations at deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "1つの Web Bean は、その他の Web Bean の実装には影響せずに、同じAPIを実装した異なるライフサイクル(異なるスコープ)を持つ別の Web Bean に置き換えることができます。<xref linkend=\"deploymenttypes\"/> で説明するように、実際 Web Beansは、デプロイメント時に Web Bean の実装をオーバーライドするための洗練された機構を定義します。"
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "しかし、しかしステートフルなセッション bean とは <emphasis>違って</"
+#~ "emphasis>、クライアントは、ステートレスあるいはシングルトンモデルと同じよ"
+#~ "うに、明示的にインスタンスの生成と破棄を行ってインスタンスのライフサイクル"
+#~ "を制御はしません。その代わりに、Web Bean の <emphasis>スコープ</emphasis> "
+#~ "は以下で決定されます:"
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid "Note that not all clients of a Web Bean are Web Beans. Other objects such as Servlets or Message-Driven Beans &#151; which are by nature not injectable, contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "すべての Web Bean のクライアントが必ずしも Web Beans ではないことに注意してください。サーブレットまたはメッセージ駆動 Bean といった他のオブジェクト&#151;生まれつき注入可能でなく、コンテキスト依存ではいオブジェクト&#151; が注入によって Web Beans へのリファレンスを取得することもあります。"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "Web Bean のそれぞれのインスタンスのライフサイクル"
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "より正式には、仕様は次の通りです:"
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr "Web Bean のある特定のリファレンスをどのクライアントが共用しているか"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Web Bean は以下の要素から構成されます:"
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Web Beans アプリケーションに与えられたスレッドには、Web Bean のスコープに"
+#~ "関連付けられた <emphasis>アクティブコンテキスト</emphasis> があります。こ"
+#~ "のコンテキストは、そのスレッドに固有かもしれません(例えば、Web Bean がリク"
+#~ "エストスコープの場合)。あるいは、それはその他のスレッド間で共用されるかも"
+#~ "しれません(例えば、Web Bean がセッションスコープの場合)。あるいは、それは"
+#~ "すべてのスレッドで共用されるかもしれません(アプリケーションスコープの場"
+#~ "合)。"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "(空ではない) API タイプのセット"
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "同じコンテキストで実行しているクライアント(例えば、他の Web Beans)は、同じ"
+#~ "インスタンスの Web Bean を参照するでしょう。しかし、異なるコンテキストのク"
+#~ "ライアントは、異なるインスタンスを参照します。"
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "(空ではない) バインディングアノテーションタイプのセット"
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "コンテキスト依存モデルのすばらしい利点の1つには、ステートフルな Web "
+#~ "Beans をサービスのように取り扱うことを可能にすることがあります。クライアン"
+#~ "トは、使用している Web Bean のライフサイクルの管理に関与する必要はありませ"
+#~ "ん。 <emphasis>またさらにライフサイクルが何であるかも知っている必要はあり"
+#~ "ません。</emphasis> Web Beansは、メッセージを送信することによって相互に作"
+#~ "用し、 Web Bean の実装が自分自身の状態のライフサイクルを定義します。Web "
+#~ "Beans が疎結合なのは以下の理由からです:"
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "スコープ"
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "明確に定義されたパブリックなAPI経由で相互に作用する"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "デプロイメントタイプ"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "ライフサイクルは完全に切り離されている"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "(オプションの) Web Bean 名"
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "1つの Web Bean は、その他の Web Bean の実装には影響せずに、同じAPIを実装"
+#~ "した異なるライフサイクル(異なるスコープ)を持つ別の Web Bean に置き換えるこ"
+#~ "とができます。<xref linkend=\"deploymenttypes\"/> で説明するように、実際 "
+#~ "Web Beansは、デプロイメント時に Web Bean の実装をオーバーライドするための"
+#~ "洗練された機構を定義します。"
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "インタセプタのバインディングタイプのセット"
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "すべての Web Bean のクライアントが必ずしも Web Beans ではないことに注意し"
+#~ "てください。サーブレットまたはメッセージ駆動 Bean といった他のオブジェクト"
+#~ "&#151;生まれつき注入可能でなく、コンテキスト依存ではいオブジェクト&#151; "
+#~ "が注入によって Web Beans へのリファレンスを取得することもあります。"
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "Web Bean インプリメンテーション"
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "より正式には、仕様は次の通りです:"
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "Web Bean 開発者にとって、これらの用語が何を意味するのか確認しましょう。"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Web Bean は以下の要素から構成されます:"
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "API タイプとバインディングタイプと依存性注入"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "(空ではない) API タイプのセット"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid "Web Beans usually acquire references to other Web Beans via dependency injection. Any injected attribute specifies a \"contract\" that must be satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Web Beans は、通常は依存性注入によって他の Web Beans への参照を獲得します。注入されるどの属性も、注入される Web Bean が条件を満たさなければならない「契約」を指定します。契約は以下の通りです:"
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "(空ではない) バインディングアノテーションタイプのセット"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "API タイプ"
+#~ msgid "A scope"
+#~ msgstr "スコープ"
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "バインディングタイプのセット"
+#~ msgid "A deployment type"
+#~ msgstr "デプロイメントタイプ"
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid "An API is a user-defined class or interface. (If the Web Bean is an EJB session bean, the API type is the <literal>@Local</literal> interface or bean-class local view). A binding type represents some client-visible semantic that is satisfied by some implementations of the API and not by others."
-msgstr "API は、ユーザ定義のクラスあるいはインタフェースです。(もし Web Bean が EJB セッション Bean ならば、API タイプは <literal>@Local</literal>  インターフェースか bean クラスのローカルビューです)。バインディングタイプは、API のある実装によっては満たされ他のものでは満足されない、クライアントに見えるセマンティックを表します。"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "(オプションの) Web Bean 名"
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid "Binding types are represented by user-defined annotations that are themselves annotated <literal>@BindingType</literal>. For example, the following injection point has API type <literal>PaymentProcessor</literal> and binding type <literal>@CreditCard</literal>:"
-msgstr "バインディングタイプは、それ自身が <literal>@BindingType</literal> アノテーションを付与されたユーザ定義のアノテーションによって表されます。例えば、以下のインジェクションポイントは、API タイプ <literal>PaymentProcessor</literal> とバインディングタイプ <literal>@CreditCard</literal> を持っています:"
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "インタセプタのバインディングタイプのセット"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A Web Bean implementation"
+#~ msgstr "Web Bean インプリメンテーション"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid "If no binding type is explicitly specified at an injection point, the default binding type <literal>@Current</literal> is assumed."
-msgstr "もしどのバインディングタイプもインジェクションポイントで明示的に指定されなければ、デフォルトのバインディングタイプ <literal>@Current</literal> が想定されます。"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr ""
+#~ "Web Bean 開発者にとって、これらの用語が何を意味するのか確認しましょう。"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid "For each injection point, the Web Bean manager searches for a Web Bean which satisfies the contract (implements the API, and has all the binding types), and injects that Web Bean."
-msgstr "各々のインジェクションポイントに対して、Web Bean マネージャは、契約(API の実装、すべてのバインディングタイプの所持)の条件を満たす Web Bean を探し、その Web Bean を注入します。"
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "API タイプとバインディングタイプと依存性注入"
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid "The following Web Bean has the binding type <literal>@CreditCard</literal> and implements the API type <literal>PaymentProcessor</literal>. It could therefore be injected to the example injection point:"
-msgstr "以下の Web Bean は、バインディングタイプ <literal>@CreditCard</literal> を持ち、API タイプ <literal>PaymentProcessor</literal> を実装しています。それゆえ、サンプルのインジェクションポイントに注入することができます:"
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "Web Beans は、通常は依存性注入によって他の Web Beans への参照を獲得しま"
+#~ "す。注入されるどの属性も、注入される Web Bean が条件を満たさなければならな"
+#~ "い「契約」を指定します。契約は以下の通りです:"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid "an API type, together with"
+#~ msgstr "API タイプ"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid "If a Web Bean does not explicitly specify a set of binding types, it has exactly one binding type: the default binding type <literal>@Current</literal>."
-msgstr "もし Web Bean が明示的にバインディングタイプのセットを指定しなければ、それは1つのバインディングタイプ : デフォルトのバインディングタイプ<literal>@Current</literal> を持つことになります。"
+#~ msgid "a set of binding types."
+#~ msgstr "バインディングタイプのセット"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid "Web Beans defines a sophisticated but intuitive <emphasis>resolution algorithm</emphasis> that helps the container decide what to do if there is more than one Web Bean that satisfies a particular contract. We'll get into the details in <xref linkend=\"injection\"/>."
-msgstr "Web Beans は、もし特定の契約と満たす1つ以上の Web Bean があったときに、コンテナが何をすべきかを決定するのを助ける洗練されたしかも直観的な <emphasis>解決アルゴリズム</emphasis> を定義します。その詳細は <xref linkend=\"injection\"/> で説明します。"
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "API は、ユーザ定義のクラスあるいはインタフェースです。(もし Web Bean が "
+#~ "EJB セッション Bean ならば、API タイプは <literal>@Local</literal>  イン"
+#~ "ターフェースか bean クラスのローカルビューです)。バインディングタイプは、"
+#~ "API のある実装によっては満たされ他のものでは満足されない、クライアントに見"
+#~ "えるセマンティックを表します。"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "デプロイメントタイプ"
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "バインディングタイプは、それ自身が <literal>@BindingType</literal> アノ"
+#~ "テーションを付与されたユーザ定義のアノテーションによって表されます。例え"
+#~ "ば、以下のインジェクションポイントは、API タイプ "
+#~ "<literal>PaymentProcessor</literal> とバインディングタイプ "
+#~ "<literal>@CreditCard</literal> を持っています:"
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid "<emphasis>Deployment types</emphasis> let us classify our Web Beans by deployment scenario. A deployment type is an annotation that represents a particular deployment scenario, for example <literal>@Mock</literal>, <literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We apply the annotation to Web Beans which should be deployed in that scenario. A deployment type allows a whole set of Web Beans to be conditionally deployed, with a just single line of configuration."
-msgstr "<emphasis>デプロイメントタイプ</emphasis> は、デプロイメントシナリオによって Web Beans を分類させます。デプロイメントタイプは、特定のデプロイメントシナリオを表すアノテーション、例えば <literal>@Mock</literal> や <literal>@Staging</literal>、<literal>@AustralianTaxLaw</literal> です。そのシナリオでデプロイされるべき Web Beans にアノテーションを適用します。デプロイメントタイプは、単一の構成で1セットの Web Beans すべてを条件つきでデプロイすることを可能にします。"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid "Many Web Beans just use the default deployment type <literal>@Production</literal>, in which case no deployment type need be explicitly specified. All three Web Bean in our example have the deployment type <literal>@Production</literal>."
-msgstr "多くの Web Beans は、どのデプロイメントタイプも明示的に指定されていない場合、単にデフォルトのデプロイメントタイプ <literal>@Production</literal> を使用します。サンプルで使用する3つの Web Bean すべては、デプロイメントタイプ <literal>@Production</literal> を持っています。"
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "もしどのバインディングタイプもインジェクションポイントで明示的に指定されな"
+#~ "ければ、デフォルトのバインディングタイプ <literal>@Current</literal> が想"
+#~ "定されます。"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid "In a testing environment, we might want to replace the <literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "テスト環境では、<literal>SentenceTranslator</literal> Web Bean を「モックオブジェクト」で置き換えたいでしょう:"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "各々のインジェクションポイントに対して、Web Bean マネージャは、契約(API の"
+#~ "実装、すべてのバインディングタイプの所持)の条件を満たす Web Bean を探し、"
+#~ "その Web Bean を注入します。"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "以下の Web Bean は、バインディングタイプ <literal>@CreditCard</literal> を"
+#~ "持ち、API タイプ <literal>PaymentProcessor</literal> を実装しています。そ"
+#~ "れゆえ、サンプルのインジェクションポイントに注入することができます:"
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid "We would enable the deployment type <literal>@Mock</literal> in our testing environment, to indicate that <literal>MockSentenceTranslator</literal> and any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "<literal>MockSentenceTranslator</literal> と <literal>@Mock</literal> アノテーションが付与されたその他の Web Bean を使用することを指定するために、テスト環境ではデプロイメントタイプ <literal>@Mock</literal> を有効にします。"
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid "We'll talk more about this unique and powerful feature in <xref linkend=\"deploymenttypes\"/>."
-msgstr "この独特で強力な機能については <xref linkend=\"deploymenttypes\"/> で説明します。"
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "もし Web Bean が明示的にバインディングタイプのセットを指定しなければ、それ"
+#~ "は1つのバインディングタイプ : デフォルトのバインディングタイプ"
+#~ "<literal>@Current</literal> を持つことになります。"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "スコープ"
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Beans は、もし特定の契約と満たす1つ以上の Web Bean があったときに、コ"
+#~ "ンテナが何をすべきかを決定するのを助ける洗練されたしかも直観的な "
+#~ "<emphasis>解決アルゴリズム</emphasis> を定義します。その詳細は <xref "
+#~ "linkend=\"injection\"/> で説明します。"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid "The <emphasis>scope</emphasis> defines the lifecycle and visibility of instances of the Web Bean. The Web Beans context model is extensible, accommodating arbitrary scopes. However, certain important scopes are built-in to the specification, and provided by the Web Bean manager. A scope is represented by an annotation type."
-msgstr "<emphasis>スコープ</emphasis> は Web Bean のインスタンスのライフサイクルと可視性を定義します。Web Beans のコンテキストモデルは拡張可能で、任意のスコープを収容できます。しかし、非常に重要なスコープは仕様に組み込まれ、Web Bean マネージャー によって提供されています。スコープはアノテーションタイプによって表されます。"
+#~ msgid "Deployment types"
+#~ msgstr "デプロイメントタイプ"
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid "For example, any web application may have <emphasis>session scoped</emphasis> Web Beans:"
-msgstr "例えば、どんな Web アプリケーションも <emphasis>セッションスコープ</emphasis> の Web Beansを持っています:"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>デプロイメントタイプ</emphasis> は、デプロイメントシナリオによっ"
+#~ "て Web Beans を分類させます。デプロイメントタイプは、特定のデプロイメント"
+#~ "シナリオを表すアノテーション、例えば <literal>@Mock</literal> や "
+#~ "<literal>@Staging</literal>、<literal>@AustralianTaxLaw</literal> です。そ"
+#~ "のシナリオでデプロイされるべき Web Beans にアノテーションを適用します。デ"
+#~ "プロイメントタイプは、単一の構成で1セットの Web Beans すべてを条件つきで"
+#~ "デプロイすることを可能にします。"
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "多くの Web Beans は、どのデプロイメントタイプも明示的に指定されていない場"
+#~ "合、単にデフォルトのデプロイメントタイプ <literal>@Production</literal> を"
+#~ "使用します。サンプルで使用する3つの Web Bean すべては、デプロイメントタイ"
+#~ "プ <literal>@Production</literal> を持っています。"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid "An instance of a session scoped Web Bean is bound to a user session and is shared by all requests that execute in the context of that session."
-msgstr "セッションスコープの Web Bean のインスタンスはユーザセッションにバインドされて、そのセッションのコンテキストで実行されるすべてのリクエストによって共有されます。"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "テスト環境では、<literal>SentenceTranslator</literal> Web Bean を「モック"
+#~ "オブジェクト」で置き換えたいでしょう:"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid "By default, Web Beans belong to a special scope called the <emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are pure dependent objects of the object into which they are injected, and their lifecycle is bound to the lifecycle of that object."
-msgstr "デフォルトでは、Web Beans は <emphasis>依存擬似スコープ</emphasis> と呼ばれる特別なスコープに属します。このスコープをもつ Web Beans は、注入したオブジェクトに純粋に依存するオブジェクトで、ライフサイクルは注入したオブジェクトのライフサイクルに括り付けられます。"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "スコープの詳細については <xref linkend=\"scopescontexts\"/>で説明します。"
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "<literal>MockSentenceTranslator</literal> と <literal>@Mock</literal> アノ"
+#~ "テーションが付与されたその他の Web Bean を使用することを指定するために、テ"
+#~ "スト環境ではデプロイメントタイプ <literal>@Mock</literal> を有効にします。"
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Web Bean 名とユニファイド EL"
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "この独特で強力な機能については <xref linkend=\"deploymenttypes\"/> で説明"
+#~ "します。"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Web Bean は <emphasis>名前</emphasis> を持ちます。これによりユニファイド EL 式で使用することが可能になります。Web Bean の名前を指定するのは簡単です:"
+#~ msgid "Scope"
+#~ msgstr "スコープ"
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "<emphasis>スコープ</emphasis> は Web Bean のインスタンスのライフサイクルと"
+#~ "可視性を定義します。Web Beans のコンテキストモデルは拡張可能で、任意のス"
+#~ "コープを収容できます。しかし、非常に重要なスコープは仕様に組み込まれ、Web "
+#~ "Bean マネージャー によって提供されています。スコープはアノテーションタイプ"
+#~ "によって表されます。"
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "これで JSF あるいは JSP ページで Web Bean を簡単に使用することができます:"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "例えば、どんな Web アプリケーションも <emphasis>セッションスコープ</"
+#~ "emphasis> の Web Beansを持っています:"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "Web Bean マネージャによって名前は単純にデフォルトを使用させることは一層簡単です:"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "セッションスコープの Web Bean のインスタンスはユーザセッションにバインドさ"
+#~ "れて、そのセッションのコンテキストで実行されるすべてのリクエストによって共"
+#~ "有されます。"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "デフォルトでは、Web Beans は <emphasis>依存擬似スコープ</emphasis> と呼ば"
+#~ "れる特別なスコープに属します。このスコープをもつ Web Beans は、注入したオ"
+#~ "ブジェクトに純粋に依存するオブジェクトで、ライフサイクルは注入したオブジェ"
+#~ "クトのライフサイクルに括り付けられます。"
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid "In this case, the name defaults to <literal>shoppingCart</literal> &#151; the unqualified class name, with the first character changed to lowercase."
-msgstr "この場合、デフォルトで名前は <literal>shoppingCart</literal> になります&#151; 最初の文字を小文字に変換した無資格のクラス名になります。"
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr ""
+#~ "スコープの詳細については <xref linkend=\"scopescontexts\"/>で説明します。"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "インタセプタバインディングタイプ"
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Web Bean 名とユニファイド EL"
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid "Web Beans supports the interceptor functionality defined by EJB 3, not only for EJB beans, but also for plain Java classes. In addition, Web Beans provides a new approach to binding interceptors to EJB beans and other Web Beans."
-msgstr "Web Beans は、 EJB beans のためにだけではなく、単純な Java クラスのためにも、EJB 3 で定義されたインタセプタ機能を提供します。さらに、Web Beans は、EJB beans と他の Web Beans へのバインディングインタセプタに新しいアプローチを提供します。"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Web Bean は <emphasis>名前</emphasis> を持ちます。これによりユニファイド "
+#~ "EL 式で使用することが可能になります。Web Bean の名前を指定するのは簡単で"
+#~ "す:"
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid "It remains possible to directly specify the interceptor class via use of the <literal>@Interceptors</literal> annotation:"
-msgstr "それは、<literal>@Interceptors</literal> アノテーションを使用することによりインタセプタクラスを直接指定することを可能にします:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr ""
+#~ "これで JSF あるいは JSP ページで Web Bean を簡単に使用することができます:"
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid "However, it is more elegant, and better practice, to indirect the interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "しかし、<emphasis>インタセプタバインディングタイプ</emphasis> によりインタセプタバインディングを間接化することは、よりエレガントでより良い手法です:"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "Web Bean マネージャによって名前は単純にデフォルトを使用させることは一層簡"
+#~ "単です:"
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid "We'll discuss Web Beans interceptors and decorators in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "Web Beans インタセプタとデコレータは <xref linkend=\"interceptors\"/> と <xref linkend=\"decorators\"/> で説明します。"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "どの種類のオブジェクトが Web Beans になることができるのか"
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "この場合、デフォルトで名前は <literal>shoppingCart</literal> になります"
+#~ "&#151; 最初の文字を小文字に変換した無資格のクラス名になります。"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid "We've already seen that JavaBeans, EJBs and some other Java classes can be Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "すでに JavaBean や EJB、その他のいくつかの Javaクラス が Web Beans になることを見てきました。しかし、まさにどの種類のオブジェクトが Web Beans になることができるのでしょうか。"
+#~ msgid "Interceptor binding types"
+#~ msgstr "インタセプタバインディングタイプ"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "単純な Web Beans"
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans は、 EJB beans のためにだけではなく、単純な Java クラスのために"
+#~ "も、EJB 3 で定義されたインタセプタ機能を提供します。さらに、Web Beans は、"
+#~ "EJB beans と他の Web Beans へのバインディングインタセプタに新しいアプロー"
+#~ "チを提供します。"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid "The Web Beans specification says that a concrete Java class is a <emphasis>simple</emphasis> Web Bean if:"
-msgstr "Web Beans 仕様では、以下の条件を満たすときに、コンクリートな Javaクラスが <emphasis>単純な</emphasis>  Web Bean になります:"
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "それは、<literal>@Interceptors</literal> アノテーションを使用することによ"
+#~ "りインタセプタクラスを直接指定することを可能にします:"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid "it is not an EE container-managed component, like an EJB, a Servlet or a JPA entity,"
-msgstr "EJB やサーブレット、JPA エンティティのように EE コンテナで管理されたコンポーネントではないもの"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "静的でないインナークラスではないもの"
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "しかし、<emphasis>インタセプタバインディングタイプ</emphasis> によりインタ"
+#~ "セプタバインディングを間接化することは、よりエレガントでより良い手法です:"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "パラメータ化されたタイプではないもの"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid "it has a constructor with no parameters, or a constructor annotated <literal>@Initializer</literal>."
-msgstr "パラメータなしのコンストラクタを持つか、あるいは <literal>@Initializer</literal> アノテーションが付与されたコンストラクタを持つもの"
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "Web Beans インタセプタとデコレータは <xref linkend=\"interceptors\"/> と "
+#~ "<xref linkend=\"decorators\"/> で説明します。"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "これにより、ほとんどすべての JavaBean は単純な Web Bean です。"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "どの種類のオブジェクトが Web Beans になることができるのか"
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid "Every interface implemented directly or indirectly by a simple Web Bean is an API type of the simple Web Bean. The class and its superclasses are also API types."
-msgstr "単純な Web Bean によって直接的にまたは間接的にに実装されるすべてのインタフェースは、単純な Web Bean の API タイプです。クラスとそのクラスのスーパークラスもまた API タイプです。"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "すでに JavaBean や EJB、その他のいくつかの Javaクラス が Web Beans になる"
+#~ "ことを見てきました。しかし、まさにどの種類のオブジェクトが Web Beans にな"
+#~ "ることができるのでしょうか。"
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "エンタープライズ Web Beans"
+#~ msgid "Simple Web Beans"
+#~ msgstr "単純な Web Beans"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid "The specification says that all EJB 3-style session and singleton beans are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web Beans &#151; since they are not intended to be injected into other objects &#151; but they can take advantage of most of the functionality of Web Beans, including dependency injection and interceptors."
-msgstr "仕様によれば、すべての EJB 3 スタイルのセッション Bean とシングルトン Bean は <emphasis>エンタープライズ</emphasis> Web Beans です。メッセージ駆動 Bean は Web Beans ではないのでしょうか。&#151;それらは他のオブジェクトへ注入されることを意図していないのですが&#151; 依存性注入とインタセプタを含む Web Beans のほとんどの機能を利用することができます。"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "Web Beans 仕様では、以下の条件を満たすときに、コンクリートな Javaクラスが "
+#~ "<emphasis>単純な</emphasis>  Web Bean になります:"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid "Every local interface of an enterprise Web Bean that does not have a wildcard type parameter or type variable, and every one of its superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean has a bean class local view, the bean class, and every one of its superclasses, is also an API type."
-msgstr "ワイルドカードタイプのパラメータまたはタイプ変数を持たないエンタープライズ Web Bean の ローカルインタフェースと、そのスーパーインタフェースのすべてが、エンタープライズ Web Bean のAPI タイプです。もし EJB Bean が ローカルビューの Bean クラスを持っていれば、Beanクラスとそのすべてのスーパークラスも APIタイプです。"
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "EJB やサーブレット、JPA エンティティのように EE コンテナで管理されたコン"
+#~ "ポーネントではないもの"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid "Stateful session beans should declare a remove method with no parameters or a remove method annotated <literal>@Destructor</literal>. The Web Bean manager calls this method to destroy the stateful session bean instance at the end of its lifecycle. This method is called the <emphasis>destructor</emphasis> method of the enterprise Web Bean."
-msgstr "ステートフルなセッション beans は、パラメータのない remove メソッドまたは <literal>@Destructor</literal> アノテーションを付与された remove メソッドを宣言すべきです。Web Bean マネージャは、そのライフサイクルの終わりでステートフルセッション Bean のインスタンスを破棄するために、このメソッドを呼び出します。このメソッドは、エンタープライズ Web Bean の <emphasis>destructor</emphasis> メソッドと呼ばれます。"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "静的でないインナークラスではないもの"
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "パラメータ化されたタイプではないもの"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid "So when should we use an enterprise Web Bean instead of a simple Web Bean? Well, whenever we need the advanced enterprise services offered by EJB, such as:"
-msgstr "それでは、いつ単純な Web Bean でなくエンタープライズ Web Bean を使用すべきでしょうか。EJB によって提供される高度なエンタープライズサービスを必要とする場合に使用します。例えば:"
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "パラメータなしのコンストラクタを持つか、あるいは <literal>@Initializer</"
+#~ "literal> アノテーションが付与されたコンストラクタを持つもの"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "メソッドレベルのトランザクション管理とセキュリティ"
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "これにより、ほとんどすべての JavaBean は単純な Web Bean です。"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "並行性管理"
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "単純な Web Bean によって直接的にまたは間接的にに実装されるすべてのインタ"
+#~ "フェースは、単純な Web Bean の API タイプです。クラスとそのクラスのスー"
+#~ "パークラスもまた API タイプです。"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
-msgstr "ステートフルセッション Bean のためのインスタンスレベルの非活性化とステートレスセッション Bean のためのインスタンスプーリング"
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "エンタープライズ Web Beans"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "リモートサービスと Web サービスの呼び出し"
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "仕様によれば、すべての EJB 3 スタイルのセッション Bean とシングルトン "
+#~ "Bean は <emphasis>エンタープライズ</emphasis> Web Beans です。メッセージ駆"
+#~ "動 Bean は Web Beans ではないのでしょうか。&#151;それらは他のオブジェクト"
+#~ "へ注入されることを意図していないのですが&#151; 依存性注入とインタセプタを"
+#~ "含む Web Beans のほとんどの機能を利用することができます。"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "タイマーと非同期メソッド"
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "ワイルドカードタイプのパラメータまたはタイプ変数を持たないエンタープライ"
+#~ "ズ Web Bean の ローカルインタフェースと、そのスーパーインタフェースのすべ"
+#~ "てが、エンタープライズ Web Bean のAPI タイプです。もし EJB Bean が ローカ"
+#~ "ルビューの Bean クラスを持っていれば、Beanクラスとそのすべてのスーパークラ"
+#~ "スも APIタイプです。"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid "we should use an enterprise Web Bean. When we don't need any of these things, a simple Web Bean will serve just fine."
-msgstr "エンタープライズ Web Bean を使用すべきです。これらのエンタープライズサービスのいずれもが必要ではないときには、単純な Web Bean がちょうど見事に役立つでしょう。"
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "ステートフルなセッション beans は、パラメータのない remove メソッドまたは "
+#~ "<literal>@Destructor</literal> アノテーションを付与された remove メソッド"
+#~ "を宣言すべきです。Web Bean マネージャは、そのライフサイクルの終わりでス"
+#~ "テートフルセッション Bean のインスタンスを破棄するために、このメソッドを呼"
+#~ "び出します。このメソッドは、エンタープライズ Web Bean の "
+#~ "<emphasis>destructor</emphasis> メソッドと呼ばれます。"
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid "Many Web Beans (including any session or application scoped Web Bean) are available for concurrent access. Therefore, the concurrency management provided by EJB 3.1 is especially useful. Most session and application scoped Web Beans should be EJBs."
-msgstr "多くの Web Beans(どんなセッションスコープあるいはアプリケーションスコープのWeb Beanも含む)は、並行アクセスが可能です。それゆえに、EJB 3.1 によって提供された並行性管理は特に役に立ちます。ほとんどのセッションスコープとアプリケーションスコープの Web Beans は EJB であるべきです。"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid "Web Beans which hold references to heavy-weight resources, or hold a lot of internal state benefit from the advanced container-managed lifecycle defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> model, with its support for passivation and instance pooling."
-msgstr "ヘビー級のリソースへの参照を保持あるいは多くの内部状態を保持する Web Beans は、EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> モデル によって定義された高度なコンテナで管理されたライフサイクルから恩恵を受け、非活性化とインスタンスプーリングに対するサポートも利用できます。"
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "それでは、いつ単純な Web Bean でなくエンタープライズ Web Bean を使用すべき"
+#~ "でしょうか。EJB によって提供される高度なエンタープライズサービスを必要とす"
+#~ "る場合に使用します。例えば:"
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid "Finally, it's usually obvious when method-level transaction management, method-level security, timers, remote methods or asynchronous methods are needed."
-msgstr "最後に、メソッドレベルのトランザクション管理、メソッドレベルのセキュリティ、タイマー、リモートメソッドあるいは非同期メソッドが必要とされる場合はたいてい明らかです。"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "メソッドレベルのトランザクション管理とセキュリティ"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid "It's usually easy to start with simple Web Bean, and then turn it into an EJB, just by adding an annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "通常は単純な Web Bean で始めるのが簡単です。それから、単に <literal>@Stateless</literal> や <literal>@Stateful</literal>、<literal>@Singleton</literal> アノテーションを付け加えることによって、それらをEJBに変えてください。"
+#~ msgid "concurrency management,"
+#~ msgstr "並行性管理"
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "プロデューサ (producer) メソッド"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "ステートフルセッション Bean のためのインスタンスレベルの非活性化とステート"
+#~ "レスセッション Bean のためのインスタンスプーリング"
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid "A <emphasis>producer method</emphasis> is a method that is called by the Web Bean manager to obtain an instance of the Web Bean when no instance exists in the current context. A producer method lets the application take full control of the instantiation process, instead of leaving instantiation to the Web Bean manager. For example:"
-msgstr "<emphasis>プロデューサメソッド</emphasis> は、現在のコンテキストにインスタンスが存在しないときに、Web Bean のインスタンスを得るために Web Bean マネージャ によって呼ばれるメソッドです。プロデューサメソッドは、インスタンス化を Web Bean マネージャに委ねるのではなく、アプリケーションにインスタンス化プロセスの完全な管理をさせます。例えば:"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "リモートサービスと Web サービスの呼び出し"
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "タイマーと非同期メソッド"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "プロデューサメソッドの結果は、ちょうど他のWeb Beanのように注入されます。"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "エンタープライズ Web Bean を使用すべきです。これらのエンタープライズサービ"
+#~ "スのいずれもが必要ではないときには、単純な Web Bean がちょうど見事に役立つ"
+#~ "でしょう。"
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "多くの Web Beans(どんなセッションスコープあるいはアプリケーションスコープ"
+#~ "のWeb Beanも含む)は、並行アクセスが可能です。それゆえに、EJB 3.1 によって"
+#~ "提供された並行性管理は特に役に立ちます。ほとんどのセッションスコープとアプ"
+#~ "リケーションスコープの Web Beans は EJB であるべきです。"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid "The method return type and all interfaces it extends/implements directly or indirectly are API types of the producer method. If the return type is a class, all superclasses are also API types."
-msgstr "メソッドの戻りタイプとそれが直接的にあるいは間接的に拡張する/実装するすべてのインタフェースはプロデューサメソッドの API タイプです。もし戻りのタイプがクラスならは、すべてのスーパークラスもAPI タイプです。"
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "ヘビー級のリソースへの参照を保持あるいは多くの内部状態を保持する Web "
+#~ "Beans は、EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
+#~ "<literal>@Singleton</literal> モデル によって定義された高度なコンテナで管"
+#~ "理されたライフサイクルから恩恵を受け、非活性化とインスタンスプーリングに対"
+#~ "するサポートも利用できます。"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "プロデューサメソッドは、明示的な破棄を必要とするオブジェクトを返すものもあります:"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "最後に、メソッドレベルのトランザクション管理、メソッドレベルのセキュリ"
+#~ "ティ、タイマー、リモートメソッドあるいは非同期メソッドが必要とされる場合は"
+#~ "たいてい明らかです。"
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "通常は単純な Web Bean で始めるのが簡単です。それから、単に "
+#~ "<literal>@Stateless</literal> や <literal>@Stateful</literal>、"
+#~ "<literal>@Singleton</literal> アノテーションを付け加えることによって、それ"
+#~ "らをEJBに変えてください。"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid "These producer methods may define matching <emphasis>disposal methods</emphasis>:"
-msgstr "これらのプロデューサメソッドは、適合する <emphasis> ディスポーザルメソッド</emphasis> を定義するかもしれません: "
+#~ msgid "Producer methods"
+#~ msgstr "プロデューサ (producer) メソッド"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "<emphasis>プロデューサメソッド</emphasis> は、現在のコンテキストにインスタ"
+#~ "ンスが存在しないときに、Web Bean のインスタンスを得るために Web Bean マ"
+#~ "ネージャ によって呼ばれるメソッドです。プロデューサメソッドは、インスタン"
+#~ "ス化を Web Bean マネージャに委ねるのではなく、アプリケーションにインスタン"
+#~ "ス化プロセスの完全な管理をさせます。例えば:"
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid "This disposal method is called automatically by the Web Bean manager at the end of the request."
-msgstr "このディスポーザルメソッドは、リクエストの終わりに Web Bean マネージャ によって自動的に呼び出されます。"
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
-msgstr "プロデューサメソッドについての詳細は <xref linkend=\"producermethods\"/> で説明します。"
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "プロデューサメソッドの結果は、ちょうど他のWeb Beanのように注入されます。"
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS エンドポイント"
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the developer from the tedium of managing the lifecycles of all the various JMS objects required to send messages to queues and topics. We'll discuss JMS endpoints in <xref linkend=\"jms\"/>."
-msgstr "最後に、JMS キューまたはトピックは、Web Bean になることができます。Web Beans は、キューとトピックにメッセージを送るために必要となる、すべての様々な JMS オブジェクトのライフサイクルを管理する退屈から開発者を開放します。JMS エンドポイントは <xref linkend=\"jms\"/> で説明します。"
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "メソッドの戻りタイプとそれが直接的にあるいは間接的に拡張する/実装するすべ"
+#~ "てのインタフェースはプロデューサメソッドの API タイプです。もし戻りのタイ"
+#~ "プがクラスならは、すべてのスーパークラスもAPI タイプです。"
 
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr ""
+#~ "プロデューサメソッドは、明示的な破棄を必要とするオブジェクトを返すものもあ"
+#~ "ります:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "これらのプロデューサメソッドは、適合する <emphasis> ディスポーザルメソッド"
+#~ "</emphasis> を定義するかもしれません: "
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "このディスポーザルメソッドは、リクエストの終わりに Web Bean マネージャ に"
+#~ "よって自動的に呼び出されます。"
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "プロデューサメソッドについての詳細は <xref linkend=\"producermethods\"/> "
+#~ "で説明します。"
+
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS エンドポイント"
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "最後に、JMS キューまたはトピックは、Web Bean になることができます。Web "
+#~ "Beans は、キューとトピックにメッセージを送るために必要となる、すべての様々"
+#~ "な JMS オブジェクトのライフサイクルを管理する退屈から開発者を開放します。"
+#~ "JMS エンドポイントは <xref linkend=\"jms\"/> で説明します。"

Modified: doc/trunk/reference/ja-JP/master.po
===================================================================
--- doc/trunk/reference/ja-JP/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,62 +14,106 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "注記"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
-msgstr "JSR-299は、最近名称を「Web Beans」から「Javaコンテキストと依存性注入」に変更しました。このリファレンスガイドでは、まだ"
-       "JSR-299として「Web Beans」を、JSR-299参照実装として「Web Beans RI」を呼称として使用します。他のドキュメ"
-       "ントやブログ、フォーラムへのポストなどでは、JSR-299参照実装の新しい名前として「Web Beans」を含む新しい仕様名称を使用するこ"
-       "とになります。"
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
+msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
-msgstr "また、ごく最近に仕様に取り込まれた機能の一部(例えば、プロデューサフィールドや非同期イベント、EEリソースへのXMLマッピングなど)は ま"
-       "だドキュメントから欠けています。"
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
+msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "コンテキスト依存オブジェクトの利用"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "疎結合なコードの開発"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "強い型付けを最大限に活用"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans と Java EE エコシステム"
 
 #. Tag: title
-#: master.xml:76
-#, no-c-format
-msgid "Web Beans Reference"
+#: master.xml:87
+#, fuzzy, no-c-format
+msgid "Weld reference"
 msgstr "Web Beans リファレンス"
+
+#~ msgid "Note"
+#~ msgstr "注記"
+
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "JSR-299は、最近名称を「Web Beans」から「Javaコンテキストと依存性注入」に変"
+#~ "更しました。このリファレンスガイドでは、まだJSR-299として「Web Beans」を、"
+#~ "JSR-299参照実装として「Web Beans RI」を呼称として使用します。他のドキュメ"
+#~ "ントやブログ、フォーラムへのポストなどでは、JSR-299参照実装の新しい名前と"
+#~ "して「Web Beans」を含む新しい仕様名称を使用することになります。"
+
+#~ msgid ""
+#~ "You'll also find that some of the more recent functionality to be "
+#~ "specified is missing (such as producer fields, realization, asynchronous "
+#~ "events, XML mapping of EE resources)."
+#~ msgstr ""
+#~ "また、ごく最近に仕様に取り込まれた機能の一部(例えば、プロデューサフィール"
+#~ "ドや非同期イベント、EEリソースへのXMLマッピングなど)は まだドキュメントか"
+#~ "ら欠けています。"
+
+#~ msgid "Using contextual objects"
+#~ msgstr "コンテキスト依存オブジェクトの利用"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "疎結合なコードの開発"

Modified: doc/trunk/reference/ja-JP/next.po
===================================================================
--- doc/trunk/reference/ja-JP/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 02:20+0900\n"
 "Last-Translator: wadahiro <wadahiro at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,19 +22,126 @@
 #. Tag: para
 #: next.xml:6
 #, no-c-format
-msgid "Because Web Beans is so new, there's not yet a lot of information available online."
-msgstr "Web Beansは非常に新しいため、オンラインで利用可能な情報がまだありません。"
+msgid ""
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
+# substantiallyってどう訳す
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"Web Beansの参照実装は、<literal>http://seamframework.org/WebBeans</literal>で"
+"開発されています。RI開発チームとWeb Beansのスペックリードは<literal>http://"
+"in.relation.to</literal>でブログを書いています。この記事は、大体はそこで書か"
+"かれた一連のブログエントリーに基づいています。"
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
-msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "もちろん、Web Beansの仕様書は、Web Beansについて最も詳しい情報源です。仕様書は、約100ページあり、この記事の二倍の長さだけで読みやすいです。しかしやはり仕様書はここでは省略した多くの詳細をカバーしています。仕様書は、<literal>http://jcp.org/en/jsr/detail?id=299</literal>から利用可能です。"
+msgid ""
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
-# substantiallyってどう訳す
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
-msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
-msgstr "Web Beansの参照実装は、<literal>http://seamframework.org/WebBeans</literal>で開発されています。RI開発チームとWeb Beansのスペックリードは<literal>http://in.relation.to</literal>でブログを書いています。この記事は、大体はそこで書かかれた一連のブログエントリーに基づいています。"
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Web Beansは非常に新しいため、オンラインで利用可能な情報がまだありません。"
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "もちろん、Web Beansの仕様書は、Web Beansについて最も詳しい情報源です。仕様"
+#~ "書は、約100ページあり、この記事の二倍の長さだけで読みやすいです。しかしや"
+#~ "はり仕様書はここでは省略した多くの詳細をカバーしています。仕様書は、"
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>から利用可能です。"

Modified: doc/trunk/reference/ja-JP/part1.po
===================================================================
--- doc/trunk/reference/ja-JP/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-19 20:26+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,244 +14,377 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
+#: part1.xml:14
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
-msgstr "Web Beans (JSR-299) 仕様は、アプリケーションの開発をより簡単にする Java EE 環境の向けのサービスセットを定義し"
-       "ます。Web Beans は、JavaBeans とエンタープライズ Java Beans を含む現存する Java コンポーネントのタイ"
-       "プをまたがった拡張ライフサイクルと相互作用モデルの層を提供します。伝統的な Java EE プログラミングモデルを補足するものとして、"
-       "Web Beans は以下のサービスを提供します:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"Web Beans (JSR-299) 仕様は、アプリケーションの開発をより簡単にする Java EE 環"
+"境の向けのサービスセットを定義します。Web Beans は、JavaBeans とエンタープラ"
+"イズ Java Beans を含む現存する Java コンポーネントのタイプをまたがった拡張ラ"
+"イフサイクルと相互作用モデルの層を提供します。伝統的な Java EE プログラミング"
+"モデルを補足するものとして、Web Beans は以下のサービスを提供します:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
+#: part1.xml:23
+#, fuzzy, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
-msgstr "明確な <emphasis>コンテキスト (context)</emphasis> に括り付けられる、ステートフル"
-       "コンポーネントのための改善されたライフサイクル"
+msgstr ""
+"明確な <emphasis>コンテキスト (context)</emphasis> に括り付けられる、ステート"
+"フルコンポーネントのための改善されたライフサイクル"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
-msgstr "タイプセーフなアプローチによる <emphasis> 依存性注入 (dependency injection: DI)<"
-       "/emphasis>"
+msgstr ""
+"タイプセーフなアプローチによる <emphasis> 依存性注入 (dependency injection: "
+"DI)</emphasis>"
 
 #. Tag: para
-#: part1.xml:21
-#, no-c-format
+#: part1.xml:33
+#, fuzzy, no-c-format
 msgid ""
-"interaction via an <emphasis>event notification</emphasis> facility, and"
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr "<emphasis>イベント通知 (event notification)</emphasis> による相互作用"
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"コンポーネントへの <emphasis>インタセプタ (interceptor) </emphasis> のバイン"
+"ディングにおけるより良い手法と <emphasis>デコレータ (decorator)</emphasis> と"
+"呼ばれる新しい種類のインタセプタの導入、これによりビジネス上の問題を解決する"
+"際に使用するのがより適したものになります"
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
-msgstr "コンポーネントへの <emphasis>インタセプタ (interceptor) </emphasis> のバイン"
-       "ディングにおけるより良い手法と <emphasis>デコレータ (decorator)</emphasis> と呼"
-       "ばれる新しい種類のインタセプタの導入、これによりビジネス上の問題を解決する際に使用するのがより適したものになります"
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
-msgstr "コンテキスト依存ライフサイクル管理を利用した依存性注入は、ユーザがよく知らない API を使用する際に以下のような質問をしたりそれに答えた"
-       "りする手間を省きます:"
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:61
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "このオブジェクトのライフサイクルは何ですか?"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:68
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "同時にいくつのクライアントがアクセスできますか?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:71
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "マルチスレッド対応ですか?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:75
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "どこから取得することができますか?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:83
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "明示的に破棄する必要がありますか?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:86
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "直接的に使用していないときに、それへのリファレンスはどこに保持すべきですか?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:89
 #, no-c-format
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:92
+#, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
-msgstr "このオブジェクトのインプリメンテーションをデプロイ時に変えることができるようにするために、間接的なレイヤをどのように追加することができます"
-       "か?"
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"コンテキスト依存ライフサイクル管理を利用した依存性注入は、ユーザがよく知らな"
+"い API を使用する際に以下のような質問をしたりそれに答えたりする手間を省きま"
+"す:"
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "このオブジェクトのライフサイクルは何ですか?"
+
+#. Tag: para
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "同時にいくつのクライアントがアクセスできますか?"
+
+#. Tag: para
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "マルチスレッド対応ですか?"
+
+#. Tag: para
+#: part1.xml:114
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "明示的に破棄する必要がありますか?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr ""
+"直接的に使用していないときに、それへのリファレンスはどこに保持すべきですか?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"このオブジェクトのインプリメンテーションをデプロイ時に変えることができるよう"
+"にするために、間接的なレイヤをどのように追加することができますか?"
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "どのようにこのオブジェクトを他のオブジェクトとの間で共有すべきですか?"
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
-msgstr "Web Bean は、それが依存する他の Web Bean のタイプとセマンティックスだけを指定します。依存する Web Bean の実際"
-       "のライフサイクル、具体的なインプリメンテーション、スレッディングモデルあるいはその他のクライアントについては知っている必要はありません。さ"
-       "らに優れたことに、依存する Web Bean の実際のライフサイクル、具体的なインプリメンテーション、スレッディングモデルは、いかなる他の"
-       "クライアントにも影響せずに、デプロイメントシナリオによって入れ替えることができます。"
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
+#: part1.xml:142
+#, fuzzy, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
-msgstr "イベントとインタセプタ、デコレータは、このモデルの生まれながらの性質である <emphasis>疎結合 (loose-"
-       "coupling)</emphasis> を強化します:"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Web Bean は、それが依存する他の Web Bean のタイプとセマンティックスだけを指定"
+"します。依存する Web Bean の実際のライフサイクル、具体的なインプリメンテー"
+"ション、スレッディングモデルあるいはその他のクライアントについては知っている"
+"必要はありません。さらに優れたことに、依存する Web Bean の実際のライフサイク"
+"ル、具体的なインプリメンテーション、スレッディングモデルは、いかなる他のクラ"
+"イアントにも影響せずに、デプロイメントシナリオによって入れ替えることができま"
+"す。"
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"イベントとインタセプタ、デコレータは、このモデルの生まれながらの性質である "
+"<emphasis>疎結合 (loose-coupling)</emphasis> を強化します:"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
 msgid ""
 "<emphasis>event notifications</emphasis> decouple event producers from event "
 "consumers,"
-msgstr "<emphasis>イベント通知 (event notification)</emphasis> は イベント消費"
-       "者 (producer プロデューサ) からイベント生産者 (consumer コンシューマ) を切り離します"
+msgstr ""
+"<emphasis>イベント通知 (event notification)</emphasis> は イベント消費者 "
+"(producer プロデューサ) からイベント生産者 (consumer コンシューマ) を切り離し"
+"ます"
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
 msgid ""
 "<emphasis>interceptors</emphasis> decouple technical concerns from business "
 "logic, and"
-msgstr "<emphasis>インタセプタ (interceptor)</emphasis> ビジネスロジックから技術的な関"
-       "心事を切り離します"
+msgstr ""
+"<emphasis>インタセプタ (interceptor)</emphasis> ビジネスロジックから技術的な"
+"関心事を切り離します"
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
 msgid ""
 "<emphasis>decorators</emphasis> allow business concerns to be "
 "compartmentalized."
-msgstr "<emphasis>デコレータ (decorator)</emphasis> ビジネス関心事を細分化することを可能"
-       "にします"
+msgstr ""
+"<emphasis>デコレータ (decorator)</emphasis> ビジネス関心事を細分化することを"
+"可能にします"
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
+#: part1.xml:168
+#, fuzzy, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
-msgstr "最も重要なことは、これらすべての機能を Web Beans は <emphasis>タイプセーフ (typesafe)<"
-       "/emphasis> な方法で提供することです。Web Beans は、どのオブジェクトが共同して動作するのに適合しているのかを決定"
-       "するために、文字列 (String) ベースの識別子を一切使用しません。さらに、オプションとしては残っていますが、XML ファイルもほとん"
-       "ど使用されません。その代わりに Web Beans は、既存の Java オブジェクトモデルで利用可能なタイプ情報と、<"
-       "emphasis>バインディングアノテーション (binding annotation)</emphasis> と呼ばれ"
-       "る新しいパターンを一緒に使用します。これにより、Web Beans とその依存関係にあるもの、インタセプタ、デコレータ、イベント消費者とが"
-       "結び付けられます。"
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"最も重要なことは、これらすべての機能を Web Beans は <emphasis>タイプセーフ "
+"(typesafe)</emphasis> な方法で提供することです。Web Beans は、どのオブジェク"
+"トが共同して動作するのに適合しているのかを決定するために、文字列 (String) "
+"ベースの識別子を一切使用しません。さらに、オプションとしては残っていますが、"
+"XML ファイルもほとんど使用されません。その代わりに Web Beans は、既存の Java "
+"オブジェクトモデルで利用可能なタイプ情報と、<emphasis>バインディングアノテー"
+"ション (binding annotation)</emphasis> と呼ばれる新しいパターンを一緒に使用し"
+"ます。これにより、Web Beans とその依存関係にあるもの、インタセプタ、デコレー"
+"タ、イベント消費者とが結び付けられます。"
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
-msgstr "Web Beans サービスは汎用的なので、Java EE 環境にある以下のタイプのコンポーネントに適用できます:"
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "すべてのJavaBeans"
+#: part1.xml:183
+#, fuzzy, no-c-format
+msgid ""
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"さらに Web Beans は、他との連携の際に必要となるインテグレーションポイントを提"
+"供します。それゆえ将来の Java EE 仕様あるいは標準ではないフレームワークによっ"
+"て定義された他のコンポーネントが Web Beans ときれいに統合でき、Web Beans サー"
+"ビスを利用し、そして他のどんな種類の Web Beans とでも相互に連携することができ"
+"ます。"
 
 #. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "すべてのEJB"
-
-#. Tag: para
-#: part1.xml:111
-#, no-c-format
-msgid "all Servlets."
-msgstr "すべてのサーブレット"
-
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
+#: part1.xml:189
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
-msgstr "さらに Web Beans は、他との連携の際に必要となるインテグレーションポイントを提供します。それゆえ将来の Java EE 仕様ある"
-       "いは標準ではないフレームワークによって定義された他のコンポーネントが Web Beans ときれいに統合でき、Web Beans サービス"
-       "を利用し、そして他のどんな種類の Web Beans とでも相互に連携することができます。"
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Beans は、Seam や Guice、Spring を含む多くの現存する Java フレームワーク"
+"から影響を受けました。しかし、Web Beans はそれ自身とても特徴的な性質を持って"
+"います: Seam よりもタイプセーフであり、Spring よりもステートフルであって XML "
+"セントリックではなく、Guice よりも多くの Web アプリケーションとエンタープライ"
+"ズアプリケーション向けの機能があります。"
 
 #. Tag: para
-#: part1.xml:120
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Beans は、Seam や Guice、Spring を含む多くの現存する Java フレームワークから影響を受けました。しか"
-       "し、Web Beans はそれ自身とても特徴的な性質を持っています: Seam よりもタイプセーフであり、Spring よりもステートフル"
-       "であって XML セントリックではなく、Guice よりも多くの Web アプリケーションとエンタープライズアプリケーション向けの機能があ"
-       "ります。"
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
-#. Tag: para
-#: part1.xml:125
-#, no-c-format
-msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
-msgstr "最も重要な点は、Web Beans は  JCP 標準であるので、Java EE 環境や、さらには 組み込み可能な EJB Lite を利"
-       "用可能などんな Java SE 環境とでもきれいに統合できることです。"
+#~ msgid "where can I get one from?"
+#~ msgstr "どこから取得することができますか?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Web Beans サービスは汎用的なので、Java EE 環境にある以下のタイプのコンポー"
+#~ "ネントに適用できます:"
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "すべてのJavaBeans"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "すべてのEJB"
+
+#~ msgid "all Servlets."
+#~ msgstr "すべてのサーブレット"
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "最も重要な点は、Web Beans は  JCP 標準であるので、Java EE 環境や、さらに"
+#~ "は 組み込み可能な EJB Lite を利用可能などんな Java SE 環境とでもきれいに統"
+#~ "合できることです。"

Modified: doc/trunk/reference/ja-JP/part2.po
===================================================================
--- doc/trunk/reference/ja-JP/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-30 23:10+0900\n"
 "Last-Translator: Fusayuki Minamoto <miki.htmnet at nifty.com>\n"
 "Language-Team: none\n"
@@ -16,66 +16,112 @@
 #. Tag: para
 #: part2.xml:5
 #, no-c-format
-msgid "The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. We've already seen three means of achieving loose coupling:"
-msgstr "Web Beans の最初の主要なテーマは <emphasis>疎結合 (loose coupling)</emphasis> です。私たちは疎結合を達成する次の3つの手段をすでに見てきました。"
+msgid ""
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>デプロイメントタイプ</emphasis> はデプロイ時のポリモフィズムを可能にします。"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>プロデューサメソッド</emphasis> は実行時のポリモフィズムを可能にします。"
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
-msgid "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean lifecycles."
-msgstr "<emphasis>コンテキスト依存ライフサイクル管理</emphasis> は Web Bean ライフサイクルを分離します。"
+msgid ""
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid "These techniques serve to enable loose coupling of client and server. The client is no longer tightly bound to an implementation of an API, nor is it required to manage the lifecycle of the server object. This approach lets <emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "これらの技術はクライアントとサーバー間の疎結合を可能にするのに役立ちます。クライアントはもう API の実装に密に結合しなくなりますし、サーバーオブジェクトのライフサイクルを管理することも要求されません。このアプローチは <emphasis>ステートフルオブジェクトはサービスのように振舞う</emphasis> ことを可能にします。"
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Web Beans の最初の主要なテーマは <emphasis>疎結合 (loose coupling)</"
+#~ "emphasis> です。私たちは疎結合を達成する次の3つの手段をすでに見てきまし"
+#~ "た。"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system can respond to change in a well-defined manner. In the past, frameworks that attempted to provide the facilities listed above invariably did it by sacrificing type safety. Web Beans is the first technology that achieves this level of loose coupling in a typesafe way."
-msgstr "疎結合はシステムをより <emphasis>動的</emphasis> にします。システムは変化に対して明確な方法で応答できます。過去においては、上記の機能を提供しようとするフレームワークは型の安全(タイプセーフ)を犠牲にしていました。Web Beansはタイプセーフを保ちつつこのレベルの疎結合を達成します。"
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "<emphasis>デプロイメントタイプ</emphasis> はデプロイ時のポリモフィズムを可"
+#~ "能にします。"
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid "Web Beans provides three extra important facilities that further the goal of loose coupling:"
-msgstr "Web Beansはさらなる疎結合のゴールを達成するために次の3つの重要な機能をさらに提供します。"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "<emphasis>プロデューサメソッド</emphasis> は実行時のポリモフィズムを可能に"
+#~ "します。"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic,"
-msgstr "<emphasis>インタセプタ</emphasis> はビジネスロジックから技術的関心事を分離する"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>コンテキスト依存ライフサイクル管理</emphasis> は Web Bean ライフ"
+#~ "サイクルを分離します。"
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> may be used to decouple some business concerns, and"
-msgstr "<emphasis>デコレータ </emphasis> はビジネスの関心事を分離するために使用できる"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "これらの技術はクライアントとサーバー間の疎結合を可能にするのに役立ちます。"
+#~ "クライアントはもう API の実装に密に結合しなくなりますし、サーバーオブジェ"
+#~ "クトのライフサイクルを管理することも要求されません。このアプローチは "
+#~ "<emphasis>ステートフルオブジェクトはサービスのように振舞う</emphasis> こと"
+#~ "を可能にします。"
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers."
-msgstr "<emphasis>イベント通知</emphasis> はイベントプロデューサをイベントコンシューマから分離する"
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "疎結合はシステムをより <emphasis>動的</emphasis> にします。システムは変化"
+#~ "に対して明確な方法で応答できます。過去においては、上記の機能を提供しようと"
+#~ "するフレームワークは型の安全(タイプセーフ)を犠牲にしていました。Web "
+#~ "Beansはタイプセーフを保ちつつこのレベルの疎結合を達成します。"
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "ではインタセプタから最初に調べましょう。"
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beansはさらなる疎結合のゴールを達成するために次の3つの重要な機能をさら"
+#~ "に提供します。"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "<emphasis>インタセプタ</emphasis> はビジネスロジックから技術的関心事を分離"
+#~ "する"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "<emphasis>デコレータ </emphasis> はビジネスの関心事を分離するために使用で"
+#~ "きる"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "<emphasis>イベント通知</emphasis> はイベントプロデューサをイベントコン"
+#~ "シューマから分離する"
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "ではインタセプタから最初に調べましょう。"

Modified: doc/trunk/reference/ja-JP/part3.po
===================================================================
--- doc/trunk/reference/ja-JP/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-07-02 12:31+0900\n"
 "Last-Translator: minamoto <minamoto at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,102 +16,247 @@
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Web Beans における第二のテーマは、 <emphasis>強い型付け</emphasis> です。依存(インターセプタと Web Bean のデコレータとイベントプロデューサのためのイベントコンシューマに関する情報)に関する情報は、コンパイラによって妥当性が確認されることがありえるタイプセーフな Java のコンストラクトに含まれます。"
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "Web Beans コードでストリングベースの識別子を認知しません。上手なデフォルティングを使うことで、&#151;いわゆる\"規則による構成\"&#151;を除外します。フレームワークがそれらを隠しているのでではありませんが、単純に文字列が存在しません。 "
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "このアプローチの明白な利点は、 <emphasis>どんな</emphasis> IDE でも特別なツーリングを使うことなく自動完結、確認とリファクタリングを提供することができるということです。しかし、第二の(わかりにくい)利益が、あります。名前の代わりに注釈を通してオブジェクト、イベントまたはインターセプタを特定する考えに取りかかるとき、コードの意味上のレベルを良くする機会があることがわかります。"
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
-msgstr "Web Beans は、概念をモデル化する注釈を展開することを勧めます。たとえば、以下のものです。"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:27
 #, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Web Beans における第二のテーマは、 <emphasis>強い型付け</emphasis> です。依存"
+"(インターセプタと Web Bean のデコレータとイベントプロデューサのためのイベン"
+"トコンシューマに関する情報)に関する情報は、コンパイラによって妥当性が確認さ"
+"れることがありえるタイプセーフな Java のコンストラクトに含まれます。"
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Web Beans コードでストリングベースの識別子を認知しません。上手なデフォルティ"
+"ングを使うことで、&#151;いわゆる\"規則による構成\"&#151;を除外します。フレー"
+"ムワークがそれらを隠しているのでではありませんが、単純に文字列が存在しませ"
+"ん。 "
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"このアプローチの明白な利点は、 <emphasis>どんな</emphasis> IDE でも特別なツー"
+"リングを使うことなく自動完結、確認とリファクタリングを提供することができると"
+"いうことです。しかし、第二の(わかりにくい)利益が、あります。名前の代わりに"
+"注釈を通してオブジェクト、イベントまたはインターセプタを特定する考えに取りか"
+"かるとき、コードの意味上のレベルを良くする機会があることがわかります。"
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Web Beans は、概念をモデル化する注釈を展開することを勧めます。たとえば、以下"
+"のものです。"
+
+#. Tag: para
+#: part3.xml:87
+#, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal>"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "名前が合う複合語を使う代わりに、以下のものを使います。"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal>"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>"
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "注釈は再使用できます。それらは、システムの異なる部分のありふれた特性を解説するのを助けます。コードを分類して、理解するのを助け、一般的な方法で一般の懸念に対処するのを助けます。また、コードをより明晰でより理解できるようにします。"
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"注釈は再使用できます。それらは、システムの異なる部分のありふれた特性を解説す"
+"るのを助けます。コードを分類して、理解するのを助け、一般的な方法で一般の懸念"
+"に対処するのを助けます。また、コードをより明晰でより理解できるようにします。"
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Web Beans <emphasis>ステレオタイプ</emphasis> は、一歩先に、この考えを採用します。ステレオタイプは、アプリケーション設計での一般の <emphasis>ロール</emphasis> をモデル化します。一つの再使用できるパッケージに、それはスコープ、インターセプタバインディング、デプロイメントタイプ、その他を含むロールのいろいろな特性をカプセル化します。"
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Web Beans <emphasis>ステレオタイプ</emphasis> は、一歩先に、この考えを採用し"
+"ます。ステレオタイプは、アプリケーション設計での一般の <emphasis>ロール</"
+"emphasis> をモデル化します。一つの再使用できるパッケージに、それはスコープ、"
+"インターセプタバインディング、デプロイメントタイプ、その他を含むロールのいろ"
+"いろな特性をカプセル化します。"
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "Web Beans XML メタデータでさえ、強硬に型を検査されます。コンパイラは XML の解析を行わないので、 Web Beans は XML に現れる Java タイプと特質の妥当性を検査するために XML スキーマを利用します。注釈が Java コードをより明晰にしたように、このアプローチは XML をより明晰にすることがわかります。"
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"現在、もう既に Web Beans のいくつかの先進機能に会う準備が整っています。これら"
+"の特徴がコードを妥当性を検査するのがより簡単で、より理解できるようにするため"
+"に存在することを覚えておいてください。ほとんどの場合、決して実際はこれらの機"
+"能を使う <emphasis>必要はありません</emphasis> 、しかし、賢明にそれらを使用す"
+"るならば、それらの力を理解必要があります。"
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "現在、もう既に Web Beans のいくつかの先進機能に会う準備が整っています。これらの特徴がコードを妥当性を検査するのがより簡単で、より理解できるようにするために存在することを覚えておいてください。ほとんどの場合、決して実際はこれらの機能を使う <emphasis>必要はありません</emphasis> 、しかし、賢明にそれらを使用するならば、それらの力を理解必要があります。"
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Web Beans XML メタデータでさえ、強硬に型を検査されます。コンパイラは XML "
+#~ "の解析を行わないので、 Web Beans は XML に現れる Java タイプと特質の妥当性"
+#~ "を検査するために XML スキーマを利用します。注釈が Java コードをより明晰に"
+#~ "したように、このアプローチは XML をより明晰にすることがわかります。"

Modified: doc/trunk/reference/ja-JP/part4.po
===================================================================
--- doc/trunk/reference/ja-JP/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-25 00:28+0900\n"
 "Last-Translator: tagawaman <karlgotch1924.2007 at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,18 +16,72 @@
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
-msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
-msgstr "Web Beansの3つめのテーマは<emphasis>統合</emphasis>です。Web Beansは他の技術と協調して動作し、アプリケーション開発者が他の技術と組み合わせるのを助けるよう設計されました。Web Beansは開かれた技術です。Web BeansはJava EE生態系を形成し、そしてWeb Beans自身が持ち運び可能な拡張機能として新しい生態系の基盤となり、また、既存のフレームワークと既存の技術を統合するための基盤となるのです。"
+msgid ""
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
-msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
-msgstr "我々は既に、Web BeansがどのようにしてEJBとJSFの統合を手助けするのか、どのようにしてEJBを直接JSFのページへバインドできるようにしているかを見てきました。それは始まりにすぎません。Web beansは、BPMエンジンやその他のWebフレームワーク、そしてサードパーティのコンポーネントモデルといった、異なる他の技術に対しても同様の可能性を提供します。Java EEプラットフォームはJavaアプリケーション開発の世界で利用される全ての興味深い技術を標準化する事は決して出来ませんが、Web BeansはJava EE環境の中でまだシームレスになっていないプラットフォームの部分へ、その技術をより簡単に使えるようにしてくれます。"
+#, fuzzy, no-c-format
+msgid ""
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"我々は既に、Web BeansがどのようにしてEJBとJSFの統合を手助けするのか、どのよう"
+"にしてEJBを直接JSFのページへバインドできるようにしているかを見てきました。そ"
+"れは始まりにすぎません。Web beansは、BPMエンジンやその他のWebフレームワーク、"
+"そしてサードパーティのコンポーネントモデルといった、異なる他の技術に対しても"
+"同様の可能性を提供します。Java EEプラットフォームはJavaアプリケーション開発の"
+"世界で利用される全ての興味深い技術を標準化する事は決して出来ませんが、Web "
+"BeansはJava EE環境の中でまだシームレスになっていないプラットフォームの部分"
+"へ、その技術をより簡単に使えるようにしてくれます。"
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
-msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
-msgstr "我々は、Web Beansを使うアプリケーションで、Java EEプラットフォームを最大限に活用する方法を、今まさに知ろうとしています。我々はまた、Web Beansへ持ち運び可能な拡張機能のサポートを提供するサービス プロバイダ インタフェース(SPI)のセットを簡単に得ることができます。あなたがこれらのSPIを直接使う事は一切ないかも知れません。しかし、もしあなたが必要とするならば、これらSPIが存在するという事を知っておくと良いでしょう。最も重要な事は、あなたがサードパーティの拡張機能を使う時にはいつも、あなたは間接的にSPIを、あなたのいいように使うであろうという事なのです。"
+#: part4.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"We're about to see how to take full advantage of the Java EE platform in an "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"我々は、Web Beansを使うアプリケーションで、Java EEプラットフォームを最大限に"
+"活用する方法を、今まさに知ろうとしています。我々はまた、Web Beansへ持ち運び可"
+"能な拡張機能のサポートを提供するサービス プロバイダ インタフェース(SPI)の"
+"セットを簡単に得ることができます。あなたがこれらのSPIを直接使う事は一切ないか"
+"も知れません。しかし、もしあなたが必要とするならば、これらSPIが存在するという"
+"事を知っておくと良いでしょう。最も重要な事は、あなたがサードパーティの拡張機"
+"能を使う時にはいつも、あなたは間接的にSPIを、あなたのいいように使うであろうと"
+"いう事なのです。"
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Web Beansの3つめのテーマは<emphasis>統合</emphasis>です。Web Beansは他の"
+#~ "技術と協調して動作し、アプリケーション開発者が他の技術と組み合わせるのを助"
+#~ "けるよう設計されました。Web Beansは開かれた技術です。Web BeansはJava EE生"
+#~ "態系を形成し、そしてWeb Beans自身が持ち運び可能な拡張機能として新しい生態"
+#~ "系の基盤となり、また、既存のフレームワークと既存の技術を統合するための基盤"
+#~ "となるのです。"

Modified: doc/trunk/reference/ja-JP/part5.po
===================================================================
--- doc/trunk/reference/ja-JP/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-03 06:31+0900\n"
 "Last-Translator: TANABE Junnichi <jun at lmns.biz>\n"
 "Language-Team: none\n"
@@ -15,13 +16,43 @@
 
 #. Tag: para
 #: part5.xml:5
-#, no-c-format
-msgid "Web Beans is the reference implementation of JSR-299, and is used by JBoss AS and Glassfish to provide JSR-299 services for Java Enterprise Edition applications. Web Beans also goes beyond the environments and APIs defined by the JSR-299 specification and provides support for a number of other environments (such as a servlet container such as Tomcat, or Java SE) and additional APIs and modules (such as logging, XSD generation for the JSR-299 XML deployment descriptors)."
-msgstr "Web BeansはJSR-299の参照実装で、Java Enterprise EditionアプリケーションにJSR-299サービスを提供するためにJBoss ASとGlassfishにより利用されています。Web Beansはまた、JSR-299仕様により定義された環境とAPIを飛び超え、(TomcatのようなサーブレットコンテナやJava SEのような)多くの他環境と(loggingやJSR-299のXMLディプロイメントデスクリプタの為のXSD生成のような)追加のAPIとモジュールに対するサポートを提供します。"
+#, fuzzy, no-c-format
+msgid ""
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
+"environments (such as a servlet container such as Tomcat, or Java SE) and "
+"additional APIs and modules (such as logging and bean utilities)."
+msgstr ""
+"Web BeansはJSR-299の参照実装で、Java Enterprise EditionアプリケーションにJSR-"
+"299サービスを提供するためにJBoss ASとGlassfishにより利用されています。Web "
+"Beansはまた、JSR-299仕様により定義された環境とAPIを飛び超え、(Tomcatのような"
+"サーブレットコンテナやJava SEのような)多くの他環境と(loggingやJSR-299のXML"
+"ディプロイメントデスクリプタの為のXSD生成のような)追加のAPIとモジュールに対す"
+"るサポートを提供します。"
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
-msgid "If you want to get started quickly using Web Beans with JBoss AS or Tomcat and experiment with one of the examples, take a look at <xref linkend=\"ri\"/>. Otherwise read on for a exhaustive discussion of using Web Beans in all the environments and application servers it supports, as well the Web Beans extensions."
-msgstr "もし、あなたがJBoss ASやTomcatを用いてWeb Beansをさっさと使い始めてサンプルのどれかを使って実験してみたいなら、<xref linkend=\"ri\"/> をご覧ください。そうでなければ、サポートされるすべての環境とアプリケーションサーバーでWeb Beansを使った徹底的な議論のためにWeb Beans拡張もお読みください。"
+msgid ""
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
+msgstr ""
 
+#. Tag: para
+#: part5.xml:18
+#, fuzzy, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""
+"もし、あなたがJBoss ASやTomcatを用いてWeb Beansをさっさと使い始めてサンプルの"
+"どれかを使って実験してみたいなら、<xref linkend=\"ri\"/> をご覧ください。そう"
+"でなければ、サポートされるすべての環境とアプリケーションサーバーでWeb Beansを"
+"使った徹底的な議論のためにWeb Beans拡張もお読みください。"

Modified: doc/trunk/reference/ja-JP/producermethods.po
===================================================================
--- doc/trunk/reference/ja-JP/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-23 23:39+0900\n"
 "Last-Translator: TANABE Junnichi <jun at lmns.biz>\n"
 "Language-Team: none\n"
@@ -22,13 +22,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "Web Beanマネージャがアプリケーションの代わりにオブジェクトのインスタンス化に"
 "対して責務を負うときいくらかの発生する制限をプロデューサメソッドは、克服して"
@@ -37,89 +36,85 @@
 "ることになるでしょう。)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "仕様によると、"
 
 #. Tag: para
-#: producermethods.xml:16
-#, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+#: producermethods.xml:18
+#, fuzzy, no-c-format
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 "Web Beansのプロデューサメソッドは、次のような場合にインジェクトされるオブジェ"
 "クトを生成するものとして動作します。"
 
 #. Tag: para
-#: producermethods.xml:20
-#, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+#: producermethods.xml:22
+#, fuzzy, no-c-format
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 "インジェクトされるオブジェクトはWeb Beansのインスタンスである必要はない。"
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 "インジェクトされるオブジェクトの具象型は実行時によって変わるかもしれない。"
 
 #. Tag: para
-#: producermethods.xml:26
-#, no-c-format
+#: producermethods.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 "オブジェクトはWeb Beanコンストラクタにより実行されないカスタムの初期化を必要"
 "とする。"
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "例えば、プロデューサメソッドによって以下のことをすることができます。"
 
 #. Tag: para
-#: producermethods.xml:37
-#, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+#: producermethods.xml:40
+#, fuzzy, no-c-format
+msgid "expose a JPA entity as a bean,"
 msgstr "JPAエンティティをWeb Beanとして公開する。"
 
 #. Tag: para
-#: producermethods.xml:40
-#, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+#: producermethods.xml:43
+#, fuzzy, no-c-format
+msgid "expose any JDK class as a bean,"
 msgstr "あらゆるJDKクラスをWeb Beanとして公開する。"
 
 #. Tag: para
-#: producermethods.xml:43
-#, no-c-format
+#: producermethods.xml:46
+#, fuzzy, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 "同じ実装クラスに対して、異なるスコープや初期化をされた状態で複数のWeb Beansを"
 "定義する。"
 
 #. Tag: para
-#: producermethods.xml:47
-#, no-c-format
-msgid "vary the implementation of an API type at runtime."
+#: producermethods.xml:51
+#, fuzzy, no-c-format
+msgid "vary the implementation of a bean type at runtime."
 msgstr "実行時にAPIタイプの実装を変える。"
 
 #. Tag: para
-#: producermethods.xml:51
-#, no-c-format
+#: producermethods.xml:55
+#, fuzzy, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 "特に、プロデューサメソッドによってWeb Beanを利用した実行時ポリモフィズムを利"
 "用できるようになります。見てきたように、デプロイメントタイプはデプロイメント"
@@ -128,26 +123,22 @@
 "ソッドにはそのような制限はありません。"
 
 #. Tag: programlisting
-#: producermethods.xml:56
-#, no-c-format
+#: producermethods.xml:61
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -170,25 +161,25 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr "インジェクションポイントを見てみましょう。"
 
 #. Tag: programlisting
-#: producermethods.xml:60
-#, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+#: producermethods.xml:65
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
 
 #. Tag: para
-#: producermethods.xml:62
-#, no-c-format
+#: producermethods.xml:67
+#, fuzzy, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 "このインジェクションポイントはプロデューサメソッドと同じ型とバインディングア"
 "ノテーションを持ち、そして通常のWeb Beansのインジェクションルールを利用するプ"
@@ -197,19 +188,19 @@
 "されるでしょう。"
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "プロデューサメソッドのスコープ"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "プロデューサメソッドのスコープはデフォルトでは<literal>@Dependent</literal>に"
@@ -220,7 +211,7 @@
 "しれません。"
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -230,12 +221,12 @@
 "literal>アノテーションを追記することができます。"
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -244,7 +235,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -256,13 +247,13 @@
 "が同じセッションで再び呼び出されることは無いでしょう。"
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "プロデューサメソッドへのインジェクション"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -278,29 +269,29 @@
 "ターセプタを持ちません。"
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "これが望むことでないのであれば、私たちはWeb Beanインスタンスを取得するために"
 "プロデューサメソッドに依存性注入することができます。"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -316,17 +307,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "待って!もし<literal>CreditCardPaymentStrategy</literal>がリクエストスコープ"
 "のWeb Beanだとしたら?その場合、プロデューサメソッドは現在のリクエストスコー"
@@ -338,13 +329,13 @@
 "ンスをプロデューサメソッドから戻すときには気をつけてください。"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "私たちがこのバグを解決する方法が少なくとも3つあります。私たちは"
@@ -354,43 +345,43 @@
 "<literal>@RequestScoped</literal>に変えることでしょう。"
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "しかし、より一般的なソリューションは特別な<literal>@New</literal>バインディン"
 "グアノテーションを使用することです。"
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "プロデューサメソッドへの<literal>@New</literal>アノテーションの使用"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "以下のプロデューサメソッドを見てみましょう。"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -408,7 +399,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -424,5 +415,59 @@
 "す。そのセッションの最後で<literal>Preferences</literal>オブジェクトが破棄さ"
 "れるまで依存オブジェクトは破棄されることは無いでしょう。"
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "プロデューサメソッド"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid "<chapter>.</chapter>"
 #~ msgstr "<chapter>.</chapter>"

Added: doc/trunk/reference/ja-JP/resources.po
===================================================================
--- doc/trunk/reference/ja-JP/resources.po	                        (rev 0)
+++ doc/trunk/reference/ja-JP/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language ja-JP translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/ja-JP/ri-spi.po
===================================================================
--- doc/trunk/reference/ja-JP/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-18 01:40+0900\n"
 "Last-Translator: wadahiro <wadahiro at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,709 +15,1687 @@
 
 #. Tag: title
 #: ri-spi.xml:4
-#, no-c-format
-msgid "Integrating Web Beans into other environments"
+#, fuzzy, no-c-format
+msgid "Integrating Weld into other environments"
 msgstr "他の環境へのWeb Beansの統合"
 
 #. Tag: para
 #: ri-spi.xml:6
 #, no-c-format
-msgid "Currently Web Beans only runs in JBoss AS 5; integrating the RI into other EE environments (for example another application server like Glassfish), into a servlet container (like Tomcat), or with an Embedded EJB3.1 implementation is fairly easy. In this Appendix we will briefly discuss the steps needed."
-msgstr "現在のWeb BeansはJBoss AS 5でのみ動作します。他のEE環境(たとえば、Glassfishのような別のアプリケーションサーバー)に、または(Tomcatoのような)サーブレットコンテナに、または組み込みEJB3.1の実装と統合することは、実に簡単です。この付録では、統合のために必要なステップについて簡単に記述しています。"
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:15
-#, no-c-format
-msgid "The Web Beans SPI"
-msgstr "Web Beans SPI"
+#: ri-spi.xml:12
+#, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "リソースサービス"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:13
 #, no-c-format
-msgid "The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, if you need to override the default behavior, others are required."
-msgstr "Web Beans SPIは<literal>webbeans-spi</literal>モジュールにあり、<literal>webbeans-spi.jar</literal>としてパッケージされています。いくつかのSPIはオプションで、デフォルトの振る舞いを上書きする必要がある場合は、他のものが必要です。"
+msgid ""
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:21
 #, no-c-format
-msgid "All interfaces in the SPI support the decorator pattern and provide a <literal>Forwarding</literal> class located in the <literal>helpers</literal> sub package. Additional, commonly used, utility classes, and standard implementations are also located in the <literal>helpers</literal> sub package."
-msgstr "SPIのすべてのインタフェースがデコレータパターンをサポートし、<literal>helpers</literal> サブパッケージの中にある<literal>Forwarding</literal>クラスを提供します。加えて、共通で使用されるユーティリティクラスや標準実装は<literal>helpers</literal>サブパッケージの中にあります、"
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:33
-#, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean ディスカバリ"
+#: ri-spi.xml:27
+#, fuzzy, no-c-format
+msgid "The Weld SPI"
+msgstr "Web Beans SPI"
 
-#. Tag: programlisting
+#. Tag: para
+#: ri-spi.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
+msgstr ""
+"Web Beans SPIは<literal>webbeans-spi</literal>モジュールにあり、"
+"<literal>webbeans-spi.jar</literal>としてパッケージされています。いくつかの"
+"SPIはオプションで、デフォルトの振る舞いを上書きする必要がある場合は、他のもの"
+"が必要です。"
+
+#. Tag: para
 #: ri-spi.xml:35
 #, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"All interfaces in the SPI support the decorator pattern and provide a "
+"<literal>Forwarding</literal> class located in the <literal>helpers</"
+"literal> sub package. Additional, commonly used, utility classes, and "
+"standard implementations are also located in the <literal>helpers</literal> "
+"sub package."
 msgstr ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"SPIのすべてのインタフェースがデコレータパターンをサポートし、"
+"<literal>helpers</literal> サブパッケージの中にある<literal>Forwarding</"
+"literal>クラスを提供します。加えて、共通で使用されるユーティリティクラスや標"
+"準実装は<literal>helpers</literal>サブパッケージの中にあります、"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, no-c-format
-msgid "The discovery of Web Bean classes and <literal>beans.xml</literal> files is self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 specification, and isn't repeated here)."
-msgstr "Web Beanのクラスと<literal>bean.xml</literal>ファイルの探索についてはここでは説明しません(アルゴリズムは、JSR-299スペックのセクション11.1で説明されており、ここで繰り返し説明しません)。"
+#: ri-spi.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+"ブートストラップは複数の環境をサポートします。環境は<literal>Environment</"
+"literal>インタフェースの実装によって定義されます。多くの標準環境が"
+"<literal>Environments</literal>列挙で組み込まれています。環境によっては異なる"
+"サービスを要求します(たとえば、サーブレットはトランザクション、EJBまたはJPA"
+"サービスを必須としません)。デフォルトではEE環境が想定されますが、"
+"<literal>bootstrap.setEnvironment()</literal>を呼ぶことで環境を設定できます。"
 
+#. Tag: para
+#: ri-spi.xml:50
+#, fuzzy, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+"Web Beansは、サービスの登録のために総称型のサービスレジストリを使用します。す"
+"べてのサービスが<literal>Service</literal>インタフェースを実装します。サービ"
+"スレジストリは、サービスが追加されて、検索されることを可能とします。"
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:56
 #, no-c-format
-msgid "EJB services"
-msgstr "EJBサービス"
+msgid "Deployment structure"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:58
 #, no-c-format
-msgid "Web Beans will run without an EJB container; in this case you don't need to implement the EJB SPI."
-msgstr "Web BeansはEJBコンテナなしで動作するでしょう。この場合、あなたは、EJB SPIを実装する必要はありません。"
+msgid ""
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
+#: ri-spi.xml:67
 #, no-c-format
-msgid "Web Beans also delegates EJB3 bean discovery to the container so that it doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</literal>. For each EJB in the application an EJBDescriptor should be discovered:"
-msgstr "Web Beansはまた、EJB3のBeanの探索についてはコンテナへ委譲します。そのため、EJB3のアノテーションをスキャンする必要はありませんし、また<literal>ejb-jar.xml</literal>を解析する必要はありません。アプリケーションにおける各EJBに対して一つずつEJBDescriptorが発見される必要があります。"
+msgid ""
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:62
+#. Tag: para
+#: ri-spi.xml:76
 #, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:85
 #, no-c-format
-msgid "The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should return the relevant metadata as defined in the EJB specification. In addition to these two interfaces, there is <literal>BusinessInterfaceDescriptor</literal> which represents a local business interface (encapsulating the interface class and jndi name used to look up an instance of the EJB)."
-msgstr "<literal>EjbDescriptor</literal>は、ほとんど読んで字の通りですが、EJBの仕様で定義されている関連メタデータを返します。これらの二つのインタフェースに加えて、ローカルのビジネスインタフェース(インタフェースクラスとEJBのインスタンスをルックアップするために使用されるJNDI名をカプセル化したもの)を表す<literal>BusinessInterfaceDescriptor</literal>があります。"
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:73
+#. Tag: title
+#: ri-spi.xml:92
 #, no-c-format
-msgid "The resolution of <literal>@EJB</literal> (for injection into simple beans), the resolution of local EJBs (for backing session beans) and remote EJBs (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>org.jboss.webbeans.ejb.spi.EjbServices</literal> which provides these operations. For resolving the <literal>@EJB</literal> injection point, Web Beans will provide the <literal>InjectionPoint</literal>; for resolving local EJBs, the <literal>EjbDescriptor</literal> will be provided, and for remote EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or <literal>ejbLink</literal> will be provided."
-msgstr "(シンプルBeansへのインジェションのための)<literal>@EJB</literal>、(背後のセッションBeanのための)ローカルEJB、そして(JavaEEリソースとしてのインジェクションのための)リモートEJBの解決はコンテナに委譲されます。あなたはこれらの操作を提供する<literal>org.jboss.webbeans.ejb.spi.EjbServices</literal>の実装を提供する必要があります。<literal>@EJB</literal>インジェクションポイントを解決するために、Web Beansは<literal>InjectionPoint</literal>を提供するでしょう。ローカルEJBの解決のために、<literal>EjbDescriptor</literal>が提供されるでしょう。そしてリモートEJBのために<literal>jndiName</literal>、<literal>jndiName</literal>、 <literal>ejbLink</literal>が提供されるでしょう。"
+msgid "Virtual BDAs"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:93
 #, no-c-format
-msgid "When resolving local EJBs (used to back session beans) a wrapper (<literal>SessionObjectReference</literal>) around the EJB reference is returned. This wrapper allows Web Beans to request a reference that implements the given business interface, and, in the case of SFSBs, request the removal of the EJB from the container."
-msgstr "(よくセッションBeanを背後とする)ローカルEJBを解決するとき、EJB参照を囲んだラッパー(<literal>SessionObjectReference</literal>)を返します。このラッパーのおかげで、Web Beansは特定のビジネスインタフェースを実装する参照を要求することができます。SFSBの場合は、コンテナからEJBの削除を要求することができます。"
+msgid ""
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
-#, no-c-format
-msgid "JPA services"
-msgstr "JPAサービス"
-
 #. Tag: para
 #: ri-spi.xml:100
 #, no-c-format
-msgid "Just as EJB resolution is delegated to the container, resolution of <literal>@PersistenceContext</literal> for injection into simple beans (with the <literal>InjectionPoint</literal> provided), and resolution of persistence contexts and persistence units (with the <literal>unitName</literal> provided) for injection as a Java EE resource is delegated to the container."
-msgstr "ちょうどEJBの解決がコンテナに委譲されるように、(<literal>InjectionPoint</literal>が与えられた)シンプルBeansへのインジェクションのための<literal>@PersistenceContext</literal>の解決、およびJava EEリソースとしてのインジェクションのための、永続コンテキストと(<literal>unitName</literal>が与えられた)永続ユニットの解決はコンテナに委譲されます。"
+msgid ""
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:106
 #, no-c-format
-msgid "To allow JPA integration, the <literal>JpaServices</literal> interface should be implemented."
-msgstr "JPAとの統合を可能にするためには、<literal>JpaServices</literal>インタフェースが実装される必要があります。"
+msgid ""
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
+msgstr ""
 
 #. Tag: para
 #: ri-spi.xml:114
 #, no-c-format
-msgid "Web Beans also needs to know what entities are in a deployment (so that they aren't managed by Web Beans). An implementation that detects entities through <literal>@Entity</literal> and <literal>orm.xml</literal> is provided by default. If you want to provide support for a entities defined by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can wrap or replace the default implementation."
-msgstr "またWeb Beansは、どんなエンティティがデプロイされているか知る必要があります(それらがWeb Beansによって管理されないようにです)。デフォルトでは、<literal>@Entity</literal>と<literal>orm.xml</literal>を通してエンティティを検出する実装が提供されます。もし、(Hibernateの<literal>.hbm.xml</literal>のような)JPAプロバイダによって定義されるEntityをサポートしたい場合は、デフォルトの実装をラップ、または置き換えることができます。"
+msgid ""
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
-#, no-c-format
-msgid "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
-msgstr "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
-
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:122
 #, no-c-format
-msgid "Transaction Services"
-msgstr "トランザクションサービス"
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:124
 #, no-c-format
-msgid "Web Beans must delegate JTA activities to the container. The SPI provides a couple hooks to easily achieve this with the <literal>TransactionServices</literal> interface."
-msgstr "Web BeansはJTAの活動をコンテナへ委譲する必要があります。SPIはこれを容易に実現するために、<literal>TransactionServices</literal>インタフェースで数カ所のフックを提供します。"
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:132
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
 msgstr ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:138
 #, no-c-format
-msgid "The enumeration <literal>Status</literal> is a convenience for implementors to be able to keep track of whether a synchronization is supposed to notify an observer only when the transaction is successful, or after a failure, or regardless of the status of the transaction."
-msgstr "列挙型の<literal>Status</literal>は、トランザクションが成功した、失敗した、またはトランザクションの状態にかかわらず、同期がオブザーバに通知すべきかどうかを追跡することが可能な実装にとって便利です。"
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:144
 #, no-c-format
-msgid "Any <literal>javax.transaction.Synchronization</literal> implementation may be passed to the <literal>registerSynchronization()</literal> method and the SPI implementation should immediately register the synchronization with the JTA transaction manager used for the EJBs."
-msgstr "どのような<literal>javax.transaction.Synchronization</literal>の実装も、<literal>registerSynchronization()</literal>メソッドに渡されるかもしれません。そしてSPIの実装は、EJBに使用されるJTAトランザクションマネージャとの同期をすぐに登録すべきです。"
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
 #. Tag: para
 #: ri-spi.xml:155
 #, no-c-format
-msgid "To make it easier to determine whether or not a transaction is currently active for the requesting thread, the <literal>isTransactionActive()</literal> method can be used. The SPI implementation should query the same JTA transaction manager used for the EJBs."
-msgstr "要求スレッドでトランザクションが現在アクティブであるかどうか確認しやすくするために、<literal>isTransactionActive()</literal>メソッドが使用されます。SPIの実装は、EJBで使用される同じJTAトランザクションマネージャに問い合わせを行うべきです。"
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
+"<literal>EjbDescriptor</literal>は、ほとんど読んで字の通りですが、EJBの仕様で"
+"定義されている関連メタデータを返します。これらの二つのインタフェースに加え"
+"て、ローカルのビジネスインタフェース(インタフェースクラスとEJBのインスタンス"
+"をルックアップするために使用されるJNDI名をカプセル化したもの)を表す"
+"<literal>BusinessInterfaceDescriptor</literal>があります。"
+
 #. Tag: title
-#: ri-spi.xml:165
+#: ri-spi.xml:169
 #, no-c-format
-msgid "JMS services"
-msgstr "JMSサービス"
+msgid "EE resource injection and resolution services"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:171
 #, no-c-format
-msgid "A number of JMS operations are not container specific, and so should be provided via the SPI <literal>JmsServices</literal>. JMS does not specify how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a method which should be used to look up a factory. Web Beans also delegates <literal>Destination</literal> lookup to the container via the SPI."
-msgstr "多くのJMS操作はコンテナ特有ではないため、SPI <literal>JmsServices</literal>を通して提供されるべきです。JMSは<literal>ConnectionFactory</literal>を取得する方法を指定しないため、SPIはファクトリをルックアップために使用されるメソッドを提供します。また、Web BeansはSPIを通して<literal>Destination</literal>のルックアップをコンテナへ委譲します。"
+msgid ""
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:178
+#. Tag: para
+#: ri-spi.xml:176
 #, no-c-format
-msgid "Resource Services"
-msgstr "リソースサービス"
+msgid ""
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:182
 #, no-c-format
-msgid "The resolution of <literal>@Resource</literal> (for injection into simple beans) and the resolution of resources (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>ResourceServices</literal> which provides these operations. For resolving the <literal>@Resource</literal> injection, Web Beans will provide the <literal>InjectionPoint</literal>; and for Java EE resources, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
-msgstr "(シンプルBeansへのインジェクションのための)<literal>@Resource</literal>の解決と、(Java EEリソースとしてのインジェションのための)リソースの解決はコンテナに委譲されます。あなたはこれらの操作を提供する<literal>ResourceServices</literal>の実装を提供する必要があります。<literal>@Resource</literal>によるインジェクションを解決するために、Web Beansは<literal>InjectionPoint</literal>を提供するでしょう。そしてJavaEEリソースのために、<literal>jndiName</literal>または<literal>mappedName</literal>が提供されるでしょう。"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:189
 #, no-c-format
-msgid "Web Services"
-msgstr "Webサービス"
+msgid ""
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:195
 #, no-c-format
-msgid "The resolution of web service references (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>WebServices</literal> whichprovides this operation. For resolving the Java EE resource, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
-msgstr "(Java EEリソースとしてのインジェクションの)Webサービスの参照の解決は、コンテナに委譲されます。あなたはこの操作を提供する<literal>WebServices</literal>の実装を提供する必要があります。Java EEリソースの解決のために、<literal>jndiName</literal>または<literal>mappedName</literal>が提供されるでしょう。"
+msgid ""
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:201
+#, no-c-format
+msgid ""
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:210
 #, no-c-format
-msgid "The bean store"
-msgstr "Beanストア"
+msgid "EJB services"
+msgstr "EJBサービス"
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:212
 #, no-c-format
-msgid "Web Beans uses a map like structure to store bean instances - <literal>org.jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
-msgstr "Web Beansは、Beanインスタンスを保存するために構成されたものとしてあるMap - <literal>org.jboss.webbeans.context.api.BeanStore</literal>を使用します。<literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal>が役に立つことがわかるでしょう。"
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
+msgstr ""
+"(よくセッションBeanを背後とする)ローカルEJBを解決するとき、EJB参照を囲んだ"
+"ラッパー(<literal>SessionObjectReference</literal>)を返します。このラッパーの"
+"おかげで、Web Beansは特定のビジネスインタフェースを実装する参照を要求すること"
+"ができます。SFSBの場合は、コンテナからEJBの削除を要求することができます。"
+
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:234
 #, no-c-format
-msgid "The application context"
-msgstr "アプリケーションコンテキスト"
+msgid "JPA services"
+msgstr "JPAサービス"
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
+msgstr ""
+"ちょうどEJBの解決がコンテナに委譲されるように、(<literal>InjectionPoint</"
+"literal>が与えられた)シンプルBeansへのインジェクションのための"
+"<literal>@PersistenceContext</literal>の解決、およびJava EEリソースとしてのイ"
+"ンジェクションのための、永続コンテキストと(<literal>unitName</literal>が与え"
+"られた)永続ユニットの解決はコンテナに委譲されます。"
+
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
-msgid "Web Beans expects the Application Server or other container to provide the storage for each application's context. The <literal>org.jboss.webbeans.context.api.BeanStore</literal> should be implemented to provide an application scoped storage."
-msgstr "Web Beansは、アプリケーションサーバーかその他のコンテナが、アプリケーションコンテキストのための保存領域を提供することを想定しています。<literal>org.jboss.webbeans.context.api.BeanStore</literal>は、アプリケーションスコープの保存領域を提供するように実装される必要があります。"
+msgid ""
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:251
 #, no-c-format
-msgid "Bootstrap and shutdown"
-msgstr "ブートストラップとシャットダウン"
+msgid "Transaction Services"
+msgstr "トランザクションサービス"
 
 #. Tag: para
-#: ri-spi.xml:232
-#, no-c-format
-msgid "The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), tell it about the SPIs in use, and then request the container start."
-msgstr "<literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal>インタフェースはWeb Beansのブートストラップを定義します。Web Beansを起動するために、(<literal>Boostrap</literal>を実装した)<literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal>インスタンスを取得し、使用中のSPIに伝え、コンテナに起動を要求する必要があります。"
+#: ri-spi.xml:253
+#, fuzzy, no-c-format
+msgid ""
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
+msgstr ""
+"Web BeansはJTAの活動をコンテナへ委譲する必要があります。SPIはこれを容易に実現"
+"するために、<literal>TransactionServices</literal>インタフェースで数カ所の"
+"フックを提供します。"
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:258
 #, no-c-format
-msgid "The bootstrap is split into phases, bootstrap initialization and boot and shutdown. Initialization will create a manager, and add the standard (specification defined) contexts. Bootstrap will discover EJBs, classes and XML; add beans defined using annotations; add beans defined using XML; and validate all beans."
-msgstr "ブートストラップは、初期化と起動とシャットダウンのフェーズに分かれます。初期化はマネージャを生成し、標準の(仕様で定義された)コンテキストを追加するでしょう。ブートストラップはEJB、クラスおよびXMLを探索します。アノテーションにより定義されたBeansを追加します。また、XMLで定義されたBeansを追加します。そして、すべてのBeansの妥当性確認を行います。"
+msgid ""
+"Any <literal>javax.transaction.Synchronization</literal> implementation may "
+"be passed to the <literal>registerSynchronization()</literal> method and the "
+"SPI implementation should immediately register the synchronization with the "
+"JTA transaction manager used for the EJBs."
+msgstr ""
+"どのような<literal>javax.transaction.Synchronization</literal>の実装も、"
+"<literal>registerSynchronization()</literal>メソッドに渡されるかもしれませ"
+"ん。そしてSPIの実装は、EJBに使用されるJTAトランザクションマネージャとの同期を"
+"すぐに登録すべきです。"
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:264
 #, no-c-format
-msgid "The bootstrap supports multiple environments. An environment is defined by an implementation of the <literal>Environment</literal> interface. A number of standard envrionments are built in as the enumeration <literal>Environments</literal>. Different environments require different services to be present (for example servlet doesn't require transaction, EJB or JPA services). By default an EE environment is assumed, but you can adjust the environment by calling <literal>bootstrap.setEnvironment()</literal>."
-msgstr "ブートストラップは複数の環境をサポートします。環境は<literal>Environment</literal>インタフェースの実装によって定義されます。多くの標準環境が<literal>Environments</literal>列挙で組み込まれています。環境によっては異なるサービスを要求します(たとえば、サーブレットはトランザクション、EJBまたはJPAサービスを必須としません)。デフォルトではEE環境が想定されますが、<literal>bootstrap.setEnvironment()</literal>を呼ぶことで環境を設定できます。"
+msgid ""
+"To make it easier to determine whether or not a transaction is currently "
+"active for the requesting thread, the <literal>isTransactionActive()</"
+"literal> method can be used. The SPI implementation should query the same "
+"JTA transaction manager used for the EJBs."
+msgstr ""
+"要求スレッドでトランザクションが現在アクティブであるかどうか確認しやすくする"
+"ために、<literal>isTransactionActive()</literal>メソッドが使用されます。SPIの"
+"実装は、EJBで使用される同じJTAトランザクションマネージャに問い合わせを行うべ"
+"きです。"
 
+#. Tag: title
+#: ri-spi.xml:272
+#, no-c-format
+msgid "Resource Services"
+msgstr "リソースサービス"
+
 #. Tag: para
-#: ri-spi.xml:260
+#: ri-spi.xml:274
+#, fuzzy, no-c-format
+msgid ""
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
+msgstr ""
+"(Java EEリソースとしてのインジェクションの)Webサービスの参照の解決は、コンテ"
+"ナに委譲されます。あなたはこの操作を提供する<literal>WebServices</literal>の"
+"実装を提供する必要があります。Java EEリソースの解決のために、"
+"<literal>jndiName</literal>または<literal>mappedName</literal>が提供されるで"
+"しょう。"
+
+#. Tag: title
+#: ri-spi.xml:283
+#, fuzzy, no-c-format
+msgid "Injection Services"
+msgstr "トランザクションサービス"
+
+#. Tag: para
+#: ri-spi.xml:285
 #, no-c-format
-msgid "Web Beans uses a generic-typed service registry to allow services to be registered. All services implement the <literal>Service</literal> interface. The service registry allows services to be added and retrieved."
-msgstr "Web Beansは、サービスの登録のために総称型のサービスレジストリを使用します。すべてのサービスが<literal>Service</literal>インタフェースを実装します。サービスレジストリは、サービスが追加されて、検索されることを可能とします。"
+msgid ""
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:291
 #, no-c-format
-msgid "To initialize the bootstrap you call <literal>Bootstrap.initialize()</literal>. Before calling <literal>initialize()</literal>, you must register any services required by your environment. You can do this by calling <literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())</literal>. You must also provide the application context bean store."
-msgstr "ブートストラップの初期化のためには<literal>Bootstrap.initialize()</literal>を呼びます。<literal>initialize()</literal>を呼び出す前に、その環境で必要となるサービスを登録する必要があります。これは、<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())</literal>を呼び出すことで可能です。また、アプリケーションコンテキストのBeanストアを提供する必要があります。"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:298
 #, no-c-format
-msgid "Having called <literal>initialize()</literal>, the <literal>Manager</literal> can be obtained by calling <literal>Bootstrap.getManager()</literal>."
-msgstr "<literal>initialize()</literal>が呼び出されると、<literal>Manager</literal>は<literal>Bootstrap.getManager()</literal>を呼ぶことで得ることができます。"
+msgid ""
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "リソースサービス"
+
 #. Tag: para
-#: ri-spi.xml:282
+#: ri-spi.xml:309
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
-msgstr "コンテナをブートするためには<literal>Bootstrap.boot()</literal>を呼びます。"
+msgid ""
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:317
+#, fuzzy, no-c-format
+msgid "Bean Validation Services"
+msgstr "トランザクションサービス"
+
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:319
 #, no-c-format
-msgid "To shutdown the container you call <literal>Bootstrap.shutdown()</literal> or <literal>webBeansManager.shutdown()</literal>. This allows the container to perform any cleanup operations needed."
-msgstr "コンテナをシャットダウンするためには<literal>Bootstrap.shutdown()</literal>、または<literal>webBeansManager.shutdown()</literal>を呼びます。これで、コンテナは必要なクリーンアップ操作を実行できます。"
+msgid ""
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:327
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Identifying the BDA being addressed"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:329
 #, no-c-format
-msgid "Web Beans delegates all JNDI operations to the container through the SPI."
-msgstr "Web Beansは全てのJNDI操作をSPIを通じてコンテナに委譲します。"
+msgid ""
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:337
 #, no-c-format
-msgid "A number of the SPI interface require JNDI lookup, and the class <literal>AbstractResourceServices</literal> provides JNDI/Java EE spec compliant lookup methods."
-msgstr "多くのSPIインタフェースがJNDIルックアップを必要とします。そして<literal>AbstractResourceServices</literal>クラスは、JNDI/Java EE仕様に準拠したルックアップメソッドを提供します。"
+msgid ""
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
+msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:343
 #, no-c-format
-msgid "Resource loading"
-msgstr "リソースのロード"
+msgid ""
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
+msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:317
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid "Web Beans needs to load classes and resources from the classpath at various times. By default, they are loaded from the Thread Context ClassLoader if available, if not the same classloader that was used to load Web Beans, however this may not be correct for some environments. If this is case, you can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
-msgstr "Web Beansは様々なタイミングでクラスパスからクラスとリソースをロードする必要があります。デフォルトでは、可能であればスレッドコンテキストクラスローダからロードします。しかしながら、もしWeb Beansのロードに使用されたクラスローダと異なる場合は、ある環境ではこれは正しくないかもしれません。もしそうであれば、<literal>org.jboss.webbeans.spi.ResourceLoader</literal>を実装することができます。"
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
 #. Tag: title
-#: ri-spi.xml:331
+#: ri-spi.xml:362
 #, no-c-format
-msgid "Servlet injection"
-msgstr "サーブレットインジェクション"
+msgid "The bean store"
+msgstr "Beanストア"
 
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:364
+#, fuzzy, no-c-format
+msgid ""
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
+msgstr ""
+"Web Beansは、Beanインスタンスを保存するために構成されたものとしてあるMap - "
+"<literal>org.jboss.webbeans.context.api.BeanStore</literal>を使用します。"
+"<literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</"
+"literal>が役に立つことがわかるでしょう。"
+
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "Java EE / Servlet does not provide any hooks which can be used to provide injection into Servlets, so Web Beans provides an API to allow the container to request JSR-299 injection for a Servlet."
-msgstr "Java EE/サーブレットはインジェクションをサーブレットに提供するためのフックを提供していません。そのためWeb Beansは、コンテナがサーブレットでJSR-299のインジェクションを要求できるように、APIを提供します。"
+msgid "The application context"
+msgstr "アプリケーションコンテキスト"
 
 #. Tag: para
-#: ri-spi.xml:339
-#, no-c-format
-msgid "To be compliant with JSR-299, the container should request servlet injection for each newly instantiated servlet after the constructor returns and before the servlet is placed into service."
-msgstr "JSR-299に準拠するために、コンストラクタが呼び出されサーブレットがサービスを開始する前に、コンテナは、新たにインスタンス化されたサーブレットのためにインジェクションを要求するべきです。"
+#: ri-spi.xml:374
+#, fuzzy, no-c-format
+msgid ""
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
+msgstr ""
+"Web Beansは、アプリケーションサーバーかその他のコンテナが、アプリケーションコ"
+"ンテキストのための保存領域を提供することを想定しています。<literal>org.jboss."
+"webbeans.context.api.BeanStore</literal>は、アプリケーションスコープの保存領"
+"域を提供するように実装される必要があります。"
 
+#. Tag: title
+#: ri-spi.xml:383
+#, fuzzy, no-c-format
+msgid "Initialization and shutdown"
+msgstr "ブートストラップとシャットダウン"
+
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:384
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
+msgstr ""
+"<literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal>インタフェースは"
+"Web Beansのブートストラップを定義します。Web Beansを起動するために、"
+"(<literal>Boostrap</literal>を実装した)<literal>org.jboss.webbeans.bootstrap."
+"api.Bootstrap</literal>インスタンスを取得し、使用中のSPIに伝え、コンテナに起"
+"動を要求する必要があります。"
+
+#. Tag: para
+#: ri-spi.xml:391
+#, fuzzy, no-c-format
+msgid ""
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
+msgstr ""
+"ブートストラップは、初期化と起動とシャットダウンのフェーズに分かれます。初期"
+"化はマネージャを生成し、標準の(仕様で定義された)コンテキストを追加するでしょ"
+"う。ブートストラップはEJB、クラスおよびXMLを探索します。アノテーションにより"
+"定義されたBeansを追加します。また、XMLで定義されたBeansを追加します。そして、"
+"すべてのBeansの妥当性確認を行います。"
+
+#. Tag: para
+#: ri-spi.xml:398
+#, fuzzy, no-c-format
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
+msgstr ""
+"ブートストラップの初期化のためには<literal>Bootstrap.initialize()</literal>を"
+"呼びます。<literal>initialize()</literal>を呼び出す前に、その環境で必要となる"
+"サービスを登録する必要があります。これは、<literal>bootstrap.getServices()."
+"add(JpaServices.class, new MyJpaServices())</literal>を呼び出すことで可能で"
+"す。また、アプリケーションコンテキストのBeanストアを提供する必要があります。"
+
+#. Tag: para
+#: ri-spi.xml:405
+#, fuzzy, no-c-format
+msgid ""
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
+msgstr ""
+"<literal>initialize()</literal>が呼び出されると、<literal>Manager</literal>は"
+"<literal>Bootstrap.getManager()</literal>を呼ぶことで得ることができます。"
+
+#. Tag: para
+#: ri-spi.xml:410
+#, fuzzy, no-c-format
+msgid ""
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
+msgstr ""
+"コンテナをブートするためには<literal>Bootstrap.boot()</literal>を呼びます。"
+
+#. Tag: para
+#: ri-spi.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
+msgstr ""
+"コンテナをブートするためには<literal>Bootstrap.boot()</literal>を呼びます。"
+
+#. Tag: para
+#: ri-spi.xml:418
+#, fuzzy, no-c-format
+msgid ""
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
+msgstr ""
+"コンテナをブートするためには<literal>Bootstrap.boot()</literal>を呼びます。"
+
+#. Tag: para
+#: ri-spi.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
+msgstr ""
+"コンテナをシャットダウンするためには<literal>Bootstrap.shutdown()</literal>、"
+"または<literal>webBeansManager.shutdown()</literal>を呼びます。これで、コンテ"
+"ナは必要なクリーンアップ操作を実行できます。"
+
+#. Tag: title
+#: ri-spi.xml:431
 #, no-c-format
-msgid "To perform injection on a servlet call <literal>WebBeansManager.injectServlet()</literal>. The manager can be obtained from <literal>Bootstrap.getManager()</literal>."
-msgstr "サーブレットにインジェクションを実行するには、<literal>WebBeansManager.injectServlet()</literal>を呼び出します。マネージャは<literal>Bootstrap.getManager()</literal>から取得することができます。"
+msgid "Resource loading"
+msgstr "リソースのロード"
 
+#. Tag: para
+#: ri-spi.xml:433
+#, fuzzy, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+"Web Beansは様々なタイミングでクラスパスからクラスとリソースをロードする必要が"
+"あります。デフォルトでは、可能であればスレッドコンテキストクラスローダから"
+"ロードします。しかしながら、もしWeb Beansのロードに使用されたクラスローダと異"
+"なる場合は、ある環境ではこれは正しくないかもしれません。もしそうであれば、"
+"<literal>org.jboss.webbeans.spi.ResourceLoader</literal>を実装することができ"
+"ます。"
+
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:445
 #, no-c-format
 msgid "The contract with the container"
 msgstr "コンテナとの契約"
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
-msgid "There are a number of requirements that the Web Beans RI places on the container for correct functioning that fall outside implementation of APIs"
-msgstr "Web Beans RIは、APIの実装からは外れますが正しく機能するために、コンテナ上に配置するにあたって多くの要件があります。"
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
+msgid ""
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
+msgstr ""
+"Web Beans RIは、APIの実装からは外れますが正しく機能するために、コンテナ上に配"
+"置するにあたって多くの要件があります。"
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "クラスローダの分離"
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
-msgid "If you are integrating the Web Beans RI into an environment that supports deployment of multiple applications, you must enable, automatically, or through user configuation, classloader isolation for each Web Beans application."
-msgstr "Web Beans RIを複数のアプリケーションのデプロイをサポートする環境に統合しているなら、それぞれのWeb Beansアプリケーションのクラスローダの分離を、自動的またはユーザによる設定によって有効とする必要があります。"
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
+msgstr ""
+"Web Beans RIを複数のアプリケーションのデプロイをサポートする環境に統合してい"
+"るなら、それぞれのWeb Beansアプリケーションのクラスローダの分離を、自動的また"
+"はユーザによる設定によって有効とする必要があります。"
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr "サーブレット"
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
+msgstr ""
+"Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によっ"
+"て、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブ"
+"レットリスナーとして登録する必要があります。この登録は、サーブレットを使用す"
+"る各Web Beansアプリケーションで必要です。"
+
+#. Tag: para
+#: ri-spi.xml:475
 #, no-c-format
-msgid "If you are integrating the Web Beans into a Servlet environment you must register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses Servlet."
-msgstr "Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によって、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブレットリスナーとして登録する必要があります。この登録は、サーブレットを使用する各Web Beansアプリケーションで必要です。"
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr "<term>JSF</term>"
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
+msgstr ""
+"Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によっ"
+"て、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブ"
+"レットリスナーとして登録する必要があります。この登録は、サーブレットを使用す"
+"る各Web Beansアプリケーションで必要です。"
+
+#. Tag: para
+#: ri-spi.xml:492
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によっ"
+"て、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブ"
+"レットリスナーとして登録する必要があります。この登録は、サーブレットを使用す"
+"る各Web Beansアプリケーションで必要です。"
+
+#. Tag: para
+#: ri-spi.xml:497
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</literal> as an EL resolver, either automatically, or through user configuration, for each Web Beans application which uses JSF."
-msgstr "Web BeansをJSF環境と統合しているなら、自動的またはユーザ設定によって、<literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal>をフェーズリスナーとして、<literal>org.jboss.webbeans.el.WebBeansELREsolver</literal>をELリゾルバーとして登録する必要があります。この登録は、JSFを使用する各Web Beansアプリケーションで必要です。"
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:504
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses JSF. This filter can be registered for all Servlet deployment safely."
-msgstr "Web BeansをJSF環境と統合しているなら、自動的またはユーザ設定によって、<literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal>をサーブレットフィルタとして登録する必要があります。この登録は、JSFを使用する各Web Beansアプリケーションで必要です。すべてのサーブレットのデプロイのために、このフィルタは安全に登録できます。"
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:511 ri-spi.xml:557
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"Web BeansをJSF環境と統合しているなら、自動的またはユーザ設定によって、"
+"<literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal>ã‚’"
+"サーブレットフィルタとして登録する必要があります。この登録は、JSFを使用する各"
+"Web Beansアプリケーションで必要です。すべてのサーブレットのデプロイのために、"
+"このフィルタは安全に登録できます。"
+
+#. Tag: para
+#: ri-spi.xml:526
+#, fuzzy, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
 msgstr "Web BeansはJSF 1.2以上をサポートしています。"
 
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
+#, fuzzy, no-c-format
+msgid "<term>JSP</term>"
+msgstr "<term>JSF</term>"
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によっ"
+"て、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブ"
+"レットリスナーとして登録する必要があります。この登録は、サーブレットを使用す"
+"る各Web Beansアプリケーションで必要です。"
+
+#. Tag: para
+#: ri-spi.xml:543
 #, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "セッションBeanインタセプタ"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
-msgid "If you are integrating the Web Beans into an EJB environment you must register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as a EJB interceptor for all EJBs in the application, either automatically, or through user configuration, for each Web Beans application which uses enterprise beans."
-msgstr "Web BeansをEJB環境と統合しているなら、自動的またはユーザ設定によって、アプリケーション中のすべてのEJBに対して<literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal>をEJBインタセプタとして登録する必要があります。この登録は、エンタープライズBeanを使用する各Web Beansアプリケーションで必要です。"
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
+msgstr ""
+"Web BeansをEJB環境と統合しているなら、自動的またはユーザ設定によって、アプリ"
+"ケーション中のすべてのEJBに対して<literal>org.jboss.webbeans.ejb."
+"SessionBeanInterceptor</literal>をEJBインタセプタとして登録する必要がありま"
+"す。この登録は、エンタープライズBeanを使用する各Web Beansアプリケーションで必"
+"要です。"
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
-msgid "You must register the <literal>SessionBeanInterceptor</literal> as the inner most interceptor in the stack for all EJBs."
-msgstr "すべてのEJBで、<literal>SessionBeanInterceptor</literal>をインタセプタスタックの中で最も内側に登録する必要があります。"
+msgid ""
+"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
+"most interceptor in the stack for all EJBs."
+msgstr ""
+"すべてのEJBで、<literal>SessionBeanInterceptor</literal>をインタセプタスタッ"
+"クの中で最も内側に登録する必要があります。"
 
 #. Tag: term
-#: ri-spi.xml:450
-#, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+#: ri-spi.xml:586
+#, fuzzy, no-c-format
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "<literal>webbeans-core.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
+#: ri-spi.xml:590
 #, no-c-format
-msgid "If you are integrating the Web Beans into an environment that supports deployment of applications, you must insert the <literal>webbeans-core.jar</literal> into the applications isolated classloader. It cannot be loaded from a shared classloader."
-msgstr "Web Beansを複数のアプリケーションのデプロイをサポートする環境と統合しているなら、<literal>webbeans-core.jar</literal>を、クラスローダが分離されているアプリケーションに加える必要があります。このJARファイルは共有クラスローダではロードすることはできません。"
+msgid ""
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr "JNDIにマネージャをバインドする"
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
+#, fuzzy, no-c-format
+msgid ""
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
+msgstr ""
+"あなたはマネージャの<literal>ObjectFactory</literal> への<literal>参照</"
+"literal>をJNDIの <literal>java:app/Manager</literal>にバインドしなければなり"
+"ません。その型は<literal>javax.inject.manager.Manager</literal>と"
+"<literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>でなけれ"
+"ばなりません。"
+
+#. Tag: term
+#: ri-spi.xml:622
 #, no-c-format
-msgid "You should bind a <literal>Reference</literal> to the Manager <literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</literal>. The type should be <literal>javax.inject.manager.Manager</literal> and the factory class is <literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>"
-msgstr "あなたはマネージャの<literal>ObjectFactory</literal> への<literal>参照</literal>をJNDIの <literal>java:app/Manager</literal>にバインドしなければなりません。その型は<literal>javax.inject.manager.Manager</literal>と<literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>でなければなりません。"
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "現在のWeb BeansはJBoss AS 5でのみ動作します。他のEE環境(たとえば、"
+#~ "Glassfishのような別のアプリケーションサーバー)に、または(Tomcatoのような)"
+#~ "サーブレットコンテナに、または組み込みEJB3.1の実装と統合することは、実に簡"
+#~ "単です。この付録では、統合のために必要なステップについて簡単に記述していま"
+#~ "す。"
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean ディスカバリ"
+
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "Web Beanのクラスと<literal>bean.xml</literal>ファイルの探索についてはここ"
+#~ "では説明しません(アルゴリズムは、JSR-299スペックのセクション11.1で説明され"
+#~ "ており、ここで繰り返し説明しません)。"
+
+#~ msgid ""
+#~ "Web Beans will run without an EJB container; in this case you don't need "
+#~ "to implement the EJB SPI."
+#~ msgstr ""
+#~ "Web BeansはEJBコンテナなしで動作するでしょう。この場合、あなたは、EJB SPI"
+#~ "を実装する必要はありません。"
+
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Web Beansはまた、EJB3のBeanの探索についてはコンテナへ委譲します。そのた"
+#~ "め、EJB3のアノテーションをスキャンする必要はありませんし、また"
+#~ "<literal>ejb-jar.xml</literal>を解析する必要はありません。アプリケーション"
+#~ "における各EJBに対して一つずつEJBDescriptorが発見される必要があります。"
+
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+
+#~ msgid ""
+#~ "The resolution of <literal>@EJB</literal> (for injection into simple "
+#~ "beans), the resolution of local EJBs (for backing session beans) and "
+#~ "remote EJBs (for injection as a Java EE resource) is delegated to the "
+#~ "container. You must provide an implementation of <literal>org.jboss."
+#~ "webbeans.ejb.spi.EjbServices</literal> which provides these operations. "
+#~ "For resolving the <literal>@EJB</literal> injection point, Web Beans will "
+#~ "provide the <literal>InjectionPoint</literal>; for resolving local EJBs, "
+#~ "the <literal>EjbDescriptor</literal> will be provided, and for remote "
+#~ "EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or "
+#~ "<literal>ejbLink</literal> will be provided."
+#~ msgstr ""
+#~ "(シンプルBeansへのインジェションのための)<literal>@EJB</literal>、(背後の"
+#~ "セッションBeanのための)ローカルEJB、そして(JavaEEリソースとしてのインジェ"
+#~ "クションのための)リモートEJBの解決はコンテナに委譲されます。あなたはこれら"
+#~ "の操作を提供する<literal>org.jboss.webbeans.ejb.spi.EjbServices</literal>"
+#~ "の実装を提供する必要があります。<literal>@EJB</literal>インジェクションポ"
+#~ "イントを解決するために、Web Beansは<literal>InjectionPoint</literal>を提供"
+#~ "するでしょう。ローカルEJBの解決のために、<literal>EjbDescriptor</literal>"
+#~ "が提供されるでしょう。そしてリモートEJBのために<literal>jndiName</"
+#~ "literal>、<literal>jndiName</literal>、 <literal>ejbLink</literal>が提供さ"
+#~ "れるでしょう。"
+
+#~ msgid ""
+#~ "To allow JPA integration, the <literal>JpaServices</literal> interface "
+#~ "should be implemented."
+#~ msgstr ""
+#~ "JPAとの統合を可能にするためには、<literal>JpaServices</literal>インタ"
+#~ "フェースが実装される必要があります。"
+
+#~ msgid ""
+#~ "Web Beans also needs to know what entities are in a deployment (so that "
+#~ "they aren't managed by Web Beans). An implementation that detects "
+#~ "entities through <literal>@Entity</literal> and <literal>orm.xml</"
+#~ "literal> is provided by default. If you want to provide support for a "
+#~ "entities defined by a JPA provider (such as Hibernate's <literal>.hbm."
+#~ "xml</literal> you can wrap or replace the default implementation."
+#~ msgstr ""
+#~ "またWeb Beansは、どんなエンティティがデプロイされているか知る必要がありま"
+#~ "す(それらがWeb Beansによって管理されないようにです)。デフォルトでは、"
+#~ "<literal>@Entity</literal>と<literal>orm.xml</literal>を通してエンティティ"
+#~ "を検出する実装が提供されます。もし、(Hibernateの<literal>.hbm.xml</"
+#~ "literal>のような)JPAプロバイダによって定義されるEntityをサポートしたい場合"
+#~ "は、デフォルトの実装をラップ、または置き換えることができます。"
+
+#~ msgid ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "The enumeration <literal>Status</literal> is a convenience for "
+#~ "implementors to be able to keep track of whether a synchronization is "
+#~ "supposed to notify an observer only when the transaction is successful, "
+#~ "or after a failure, or regardless of the status of the transaction."
+#~ msgstr ""
+#~ "列挙型の<literal>Status</literal>は、トランザクションが成功した、失敗し"
+#~ "た、またはトランザクションの状態にかかわらず、同期がオブザーバに通知すべき"
+#~ "かどうかを追跡することが可能な実装にとって便利です。"
+
+#~ msgid "JMS services"
+#~ msgstr "JMSサービス"
+
+#~ msgid ""
+#~ "A number of JMS operations are not container specific, and so should be "
+#~ "provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
+#~ "how to obtain a <literal>ConnectionFactory</literal> so the SPI provides "
+#~ "a method which should be used to look up a factory. Web Beans also "
+#~ "delegates <literal>Destination</literal> lookup to the container via the "
+#~ "SPI."
+#~ msgstr ""
+#~ "多くのJMS操作はコンテナ特有ではないため、SPI <literal>JmsServices</"
+#~ "literal>を通して提供されるべきです。JMSは<literal>ConnectionFactory</"
+#~ "literal>を取得する方法を指定しないため、SPIはファクトリをルックアップため"
+#~ "に使用されるメソッドを提供します。また、Web BeansはSPIを通して"
+#~ "<literal>Destination</literal>のルックアップをコンテナへ委譲します。"
+
+#~ msgid ""
+#~ "The resolution of <literal>@Resource</literal> (for injection into simple "
+#~ "beans) and the resolution of resources (for injection as a Java EE "
+#~ "resource) is delegated to the container. You must provide an "
+#~ "implementation of <literal>ResourceServices</literal> which provides "
+#~ "these operations. For resolving the <literal>@Resource</literal> "
+#~ "injection, Web Beans will provide the <literal>InjectionPoint</literal>; "
+#~ "and for Java EE resources, the <literal>jndiName</literal> or "
+#~ "<literal>mappedName</literal> will be provided."
+#~ msgstr ""
+#~ "(シンプルBeansへのインジェクションのための)<literal>@Resource</literal>の"
+#~ "解決と、(Java EEリソースとしてのインジェションのための)リソースの解決はコ"
+#~ "ンテナに委譲されます。あなたはこれらの操作を提供する"
+#~ "<literal>ResourceServices</literal>の実装を提供する必要があります。"
+#~ "<literal>@Resource</literal>によるインジェクションを解決するために、Web "
+#~ "Beansは<literal>InjectionPoint</literal>を提供するでしょう。そしてJavaEEリ"
+#~ "ソースのために、<literal>jndiName</literal>または<literal>mappedName</"
+#~ "literal>が提供されるでしょう。"
+
+#~ msgid "Web Services"
+#~ msgstr "Webサービス"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "Web Beans delegates all JNDI operations to the container through the SPI."
+#~ msgstr "Web Beansは全てのJNDI操作をSPIを通じてコンテナに委譲します。"
+
+#~ msgid ""
+#~ "A number of the SPI interface require JNDI lookup, and the class "
+#~ "<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
+#~ "compliant lookup methods."
+#~ msgstr ""
+#~ "多くのSPIインタフェースがJNDIルックアップを必要とします。そして"
+#~ "<literal>AbstractResourceServices</literal>クラスは、JNDI/Java EE仕様に準"
+#~ "拠したルックアップメソッドを提供します。"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#~ msgid "Servlet injection"
+#~ msgstr "サーブレットインジェクション"
+
+#~ msgid ""
+#~ "Java EE / Servlet does not provide any hooks which can be used to provide "
+#~ "injection into Servlets, so Web Beans provides an API to allow the "
+#~ "container to request JSR-299 injection for a Servlet."
+#~ msgstr ""
+#~ "Java EE/サーブレットはインジェクションをサーブレットに提供するためのフック"
+#~ "を提供していません。そのためWeb Beansは、コンテナがサーブレットでJSR-299の"
+#~ "インジェクションを要求できるように、APIを提供します。"
+
+#~ msgid ""
+#~ "To be compliant with JSR-299, the container should request servlet "
+#~ "injection for each newly instantiated servlet after the constructor "
+#~ "returns and before the servlet is placed into service."
+#~ msgstr ""
+#~ "JSR-299に準拠するために、コンストラクタが呼び出されサーブレットがサービス"
+#~ "を開始する前に、コンテナは、新たにインスタンス化されたサーブレットのために"
+#~ "インジェクションを要求するべきです。"
+
+#~ msgid ""
+#~ "To perform injection on a servlet call <literal>WebBeansManager."
+#~ "injectServlet()</literal>. The manager can be obtained from "
+#~ "<literal>Bootstrap.getManager()</literal>."
+#~ msgstr ""
+#~ "サーブレットにインジェクションを実行するには、<literal>WebBeansManager."
+#~ "injectServlet()</literal>を呼び出します。マネージャは<literal>Bootstrap."
+#~ "getManager()</literal>から取得することができます。"
+
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "Web BeansをJSF環境と統合しているなら、自動的またはユーザ設定によって、"
+#~ "<literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal>をフェーズ"
+#~ "リスナーとして、<literal>org.jboss.webbeans.el.WebBeansELREsolver</"
+#~ "literal>をELリゾルバーとして登録する必要があります。この登録は、JSFを使用"
+#~ "する各Web Beansアプリケーションで必要です。"
+
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "Web Beansを複数のアプリケーションのデプロイをサポートする環境と統合してい"
+#~ "るなら、<literal>webbeans-core.jar</literal>を、クラスローダが分離されてい"
+#~ "るアプリケーションに加える必要があります。このJARファイルは共有クラスロー"
+#~ "ダではロードすることはできません。"
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "
@@ -727,12 +1705,14 @@
 #~ "コンテキストとライフサイクルを追加するためには、より多くの作業が必要です。"
 #~ "Web Beans RIは、現在はライフサイクルの拡張ポイントを公開していません。その"
 #~ "ため、Web Beans RIのクラスに対するコードを直接記述する必要があります。"
+
 #~ msgid ""
 #~ "All interfaces in the SPI support the decorator pattern and provide a "
 #~ "<literal>Forwarding</literal> class."
 #~ msgstr ""
 #~ "SPIのすべてのインタフェースがデコレータパターンをサポートしており、"
 #~ "<literal>Forwarding</literal>クラスを供給します。"
+
 #~ msgid ""
 #~ "<![CDATA[public interface EjbServices\n"
 #~ "{\n"
@@ -753,12 +1733,14 @@
 #~ "    * @return The bean class to descriptor map \n"
 #~ "    */\n"
 #~ "   public Iterable<EjbDescriptor<?>> discoverEjbs();]]>"
+
 #~ msgid ""
 #~ "Just as resolution of <literal>@EJB</literal> is delegated to the "
 #~ "container, so is resolution of <literal>@PersistenceContext</literal>."
 #~ msgstr ""
 #~ "<literal>@EJB</literal>の解決がコンテナに委譲されると同様に、"
 #~ "<literal>@PersistenceContext</literal>の解決もコンテナに委譲されます。"
+
 #~ msgid ""
 #~ "OPEN ISSUE: Web Beans also requires the container to provide a list of "
 #~ "entities in the deployment, so that they aren't discovered as simple "
@@ -766,6 +1748,7 @@
 #~ msgstr ""
 #~ "OPEN ISSUE: Web Beansはまた、シンプルなBeansとして発見されないように、デプ"
 #~ "ロイ中にエンティティのリストを提供するコンテナを必要とします。"
+
 #~ msgid ""
 #~ "The Web Beans RI implements JNDI binding and lookup according to "
 #~ "standards, however you may want to alter the binding and lookup (for "
@@ -777,6 +1760,7 @@
 #~ "す。しかしながら、バインディングとルックアップを(たとえば、JNDIが利用でき"
 #~ "ない環境において)変更したいかもしれません。変更を行うには、<literal>org."
 #~ "jboss.webbeans.resources.spi.NamingContext</literal>を実装してください。"
+
 #~ msgid ""
 #~ "<![CDATA[public interface NamingContext extends Serializable {\n"
 #~ "   \n"
@@ -821,6 +1805,6 @@
 #~ "   public void bind(String name, Object value);\n"
 #~ "   \n"
 #~ "}]]>"
+
 #~ msgid "Servlet listener and filters"
 #~ msgstr "サーブレットリスナーとフィルタ"
-

Modified: doc/trunk/reference/ja-JP/scopescontexts.po
===================================================================
--- doc/trunk/reference/ja-JP/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-04 00:47+0900\n"
 "Last-Translator: Daisuke Sano <d-sano at nri.co.jp>\n"
 "Language-Team: none\n"
@@ -14,20 +14,19 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "スコープとコンテキスト"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "これまでも<emphasis>スコープタイプアノテーション</emphasis>に関するいくつかの"
 "例を見てきました。Web Beanのスコープは、Web Beanインスタンスのライフサイクル"
@@ -36,30 +35,30 @@
 "す。"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "そのスコープを持ったWeb Beanインスタンスがいつ生成されるか"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr "そのスコープを持ったWeb Beanインスタンスがいつ破棄されるか"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr "注入された参照が、そのスコープを持ったどのWeb Beanインスタンスを指すか"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -72,30 +71,38 @@
 "literal>が必要となった際に自動的に生成され、セッションが終了した際に自動的に"
 "破棄されます。"
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "スコープタイプ"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Beansでは、<emphasis>拡張コンテキストモデル</emphasis>という特徴をもって"
 "おり、新たなスコープタイプアノテーションを作成することによって、新たなスコー"
 "プを定義することが可能になっています。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -104,13 +111,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "もちろんこれは、新たなスコープを定義する作業の内のごく簡単な一部分であり、ス"
 "コープタイプを使うためには、さらにそのスコープを実装するコンテキストオブジェ"
@@ -118,17 +127,17 @@
 "作業であり、フレームワークを開発する目的でのみ行われます。"
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Web Beanのスコープを指定するために、Web Beanの実装クラスにスコープタイプアノ"
 "テーションを適用することができます。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -138,55 +147,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "通常、Web Beansの組み込みスコープの中の一つを使います。"
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "組み込みスコープ"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beansは四つの組み込みスコープを持ちます。"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Web Beansを使用するWebアプリケーションでは、"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -196,57 +205,65 @@
 "コープ、アプリケーションスコープにアクセスし、さらに、"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "すべてのJSFリクエストはアクティブな対話スコープにアクセスします。"
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr ""
 "また、以下のケースではリクエストスコープやアプリケーションスコープがアクティ"
 "ブとなります。"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "EJBのリモートメソッドが起動する際"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "EJBがタイムアウトになる際"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "メッセージドリブンビーンにメッセージが到着する際"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "Webサービスが起動する際"
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "アプリケーションが、アクティブなコンテキストを持っていないスコープのWeb Bean"
 "を起動しようとした場合、実行時にWeb Beanマネージャが"
 "<literal>ContextNotActiveException</literal>を送出します。"
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -258,19 +275,19 @@
 "ら、残りの一つは新たなスコープです。"
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "対話スコープ"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Web Beansの対話スコープは、システムユーザーに関連する状態を保持し、また、その"
 "範囲がサーバへの複数のリクエストにまたがるという意味では、伝統的なセッション"
@@ -278,39 +295,38 @@
 "コープとは異なります。"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "対話スコープの境界は、アプリケーションによって明示的に定義されます"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"対話スコープは、JSFアプリケーションの特定のブラウザタブに関連する状態を保持し"
-"ます。"
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "一つの対話は、一つのタスク、ユーザー視点での作業の単位を表現します。対話コン"
 "テキストは、ユーザーが今行っている作業に関連する状態を保持します。もし、ユー"
 "ザーが複数の作業を同時に行っている場合は、対話も複数になります。"
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -321,31 +337,30 @@
 "対話</emphasis>として導入する必要があります。"
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "対話の境界"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beansは、JSFアプリケーションにおける対話のライフサイクルを制御するための"
 "組み込みWeb Beanを提供します。このWeb Beanは、注入によって取得することができ"
 "ます。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -360,49 +375,47 @@
 "<literal>end()</literal>メソッドを呼びます。"
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "次の例では、対話スコープをもつWeb Beanが、自分自身に関連した対話を制御しま"
 "す。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -436,45 +449,45 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "このWeb Beanは、<literal>Conversation</literal> APIを通じて、自分自身のライフ"
 "サイクルを制御することができます。しかし、そのライフサイクルが完全に他のオブ"
 "ジェクトに依存するようなWeb Beanも存在します。"
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "対話の伝播"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "対話コンテキストは、すべてのJSF facesリクエスト(JSFフォームのサブミット)に"
 "ついて自動的に伝播されます。ハイパーリンクによる移動などのようなfacesでないリ"
 "クエストについては自動的に伝播されません。"
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "対話の一意な識別子をリクエストパラメタとして含めることによって、facesでないリ"
 "クエストについても対話の伝播を強制させることができます。Web Beansの仕様では、"
@@ -484,13 +497,13 @@
 "す。"
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "ゆえに、次のリンクは対話を伝播します。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -500,15 +513,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "またWeb Beanマネージャは、対話が長期対話として導入されていないとしても、あら"
 "ゆるリダイレクトをまたがって対話を伝播させる必要があります。これは、よくある"
 "POST-then-redirectパターンの実装をとても簡単なものにし、Ruby on Railsの"
@@ -517,20 +544,21 @@
 "タを付加します。"
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "対話のタイムアウト"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Web Beanマネージャは、対話とそこに保持されたすべての状態を、リソースを保つ目"
 "的で破棄することを許されています。Web Beansの仕様で必須というわけではありませ"
@@ -539,11 +567,11 @@
 "期間となります。"
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "<literal>Conversation</literal>オブジェクトは、タイムアウトを設定するためのメ"
@@ -551,132 +579,105 @@
 "Beanマネージャはこれを自由に無視することもできます。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "依存擬似スコープ"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "四つの組み込みスコープに加えて、Web Beansはいわゆる<emphasis>依存擬似スコープ"
 "</emphasis>という特徴を持っています。これは、明示的にスコープタイプが宣言され"
 "ていないWeb Beanのデフォルトのスコープになります。"
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "例えば、次のWeb Beanは<literal>@Dependent</literal>スコープタイプを持ちます。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Web Beanの注入箇所に、依存Web Beanが注入される場合、注入される側のWeb Beanが"
-"インスタンス化される度に、依存Web Beanのインスタンスも作成されます。依存Web "
-"Beanのインスタンスは決して異なるWeb Beanや異なる注入箇所で共有されることがあ"
-"りません。依存Web Beanは、他のWeb Beanインスタンスに<emphasis>依存したオブ"
-"ジェクト</emphasis>なのです。"
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"依存Web Beanは、依存するWeb Beanのインスタンスが破棄された際に、ともに破棄さ"
-"れます。"
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Beansによって、JavaクラスやEJBが既にある異なるスコープタイプとともに宣言"
 "されている場合でも、それに依存したオブジェクトを取得することが簡単になりま"
 "す。"
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "<literal>@New</literal>アノテーション"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"組み込みバインディングアノテーションである<literal>@New</literal>によって、注"
-"入箇所に依存したWeb Beanを<emphasis>暗黙的に</emphasis>定義することができま"
-"す。次のようなフィールドへの注入を考えてみることにしましょう。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"これによって、<literal>@Dependent</literal>スコープを持ち、<literal>@New</"
-"literal>バインディングタイプを持ち、<literal>Calculator</literal> APIタイプを"
-"持ち、<literal>Calculator</literal>を実装クラスとして持ち、"
-"<literal>@Standard</literal>デプロイメントタイプを持つWeb Beanが暗黙的に定義"
-"されます。"
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "これは、<literal>Calculator</literal>が、次の例のように<emphasis>既に</"
 "emphasis>異なるスコープタイプを持って宣言されていた場合でも有効となります。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -686,7 +687,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -696,14 +697,12 @@
 "ンスタンスを得ることとなります。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -714,7 +713,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -729,10 +728,59 @@
 "され、注入されます。"
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
 "the next chapter."
 msgstr ""
 "この機能は、特に次章で説明するプロデューサメソッドにおいて効果を発揮します。"
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "対話スコープは、JSFアプリケーションの特定のブラウザタブに関連する状態を保"
+#~ "持します。"
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Web Beanの注入箇所に、依存Web Beanが注入される場合、注入される側のWeb Bean"
+#~ "がインスタンス化される度に、依存Web Beanのインスタンスも作成されます。依存"
+#~ "Web Beanのインスタンスは決して異なるWeb Beanや異なる注入箇所で共有されるこ"
+#~ "とがありません。依存Web Beanは、他のWeb Beanインスタンスに<emphasis>依存し"
+#~ "たオブジェクト</emphasis>なのです。"
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "依存Web Beanは、依存するWeb Beanのインスタンスが破棄された際に、ともに破棄"
+#~ "されます。"
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "組み込みバインディングアノテーションである<literal>@New</literal>によっ"
+#~ "て、注入箇所に依存したWeb Beanを<emphasis>暗黙的に</emphasis>定義すること"
+#~ "ができます。次のようなフィールドへの注入を考えてみることにしましょう。"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "これによって、<literal>@Dependent</literal>スコープを持ち、<literal>@New</"
+#~ "literal>バインディングタイプを持ち、<literal>Calculator</literal> APIタイ"
+#~ "プを持ち、<literal>Calculator</literal>を実装クラスとして持ち、"
+#~ "<literal>@Standard</literal>デプロイメントタイプを持つWeb Beanが暗黙的に定"
+#~ "義されます。"

Modified: doc/trunk/reference/ja-JP/specialization.po
===================================================================
--- doc/trunk/reference/ja-JP/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-09 19:23+0900\n"
 "Last-Translator: Keita Higashi <winnie_the_pooh at y3.dion.ne.jp>\n"
 "Language-Team: none\n"
@@ -14,27 +14,130 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "特殊化"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
-msgid "We've already seen how the Web Beans dependency injection model lets us <emphasis>override</emphasis> the implementation of an API at deployment time. For example, the following enterprise Web Bean provides an implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "Web Beans 依存性注入モデルがどんな状態デプロイメントタイムで API のインプリメントに <emphasis>オーバーライド</emphasis> させるかについて、すでに説明しました。たとえば、以下のエンタープライズ Web Bean は、プロダクションにおいて API <literal>PaymentProcessor</literal> の実装を提供します。"
+msgid ""
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"Web Beans 依存性注入モデルがどんな状態デプロイメントタイムで API のインプリメ"
+"ントに <emphasis>オーバーライド</emphasis> させるかについて、すでに説明しまし"
+"た。たとえば、以下のエンタープライズ Web Bean は、プロダクションにおいて API "
+"<literal>PaymentProcessor</literal> の実装を提供します。"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"しかし、ステージング環境で、異なる Web Bean で <literal>PaymentProcessor</"
+"literal> のその実装にオーバーライドします。"
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -42,126 +145,209 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid "But in our staging environment, we override that implementation of <literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "しかし、ステージング環境で、異なる Web Bean で <literal>PaymentProcessor</literal> のその実装にオーバーライドします。"
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
-msgid "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</literal> is to completely replace <literal>AsyncPaymentProcessor</literal> in a particular deployment of the system. In that deployment, the deployment type <literal>@Staging</literal> would have a higher priority than the default deployment type <literal>@Production</literal>, and therefore clients with the following injection point:"
-msgstr "<literal>StagingCreditCardPaymentProcessor</literal> でしようとしたことは、システムの特定のデプロイメントにおいて完全に <literal>AsyncPaymentProcessor</literal> を取り替えることです。そのデプロイメントで、デプロイメントタイプ <literal>@Staging</literal> はデフォルトデプロイメントタイプ <literal>@Production</literal> より高いプライオリティを持ちます、したがって、以下の依存性注入によるクライアントを指し示します。"
+msgid ""
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
-msgid "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "これには <literal>StagingCreditCardPaymentProcessor</literal> のインスタンスが設定されます。"
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "残念なことに、簡単に落ちることができるいくつかの罠が、あります。"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
-msgid "the higher-priority Web Bean may not implement all the API types of the Web Bean that it attempts to override,"
-msgstr "より高いプライオリティの Web Bean が、それがオーバーライドしようとする Web Bean のすべての API 型を実行することがありえるというわけではありません"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
-msgid "the higher-priority Web Bean may not declare all the binding types of the Web Bean that it attempts to override,"
-msgstr "より高いプライオリティの Web Bean が、それがオーバーライドしようとする Web Bean のすべてのバインディングタイプを宣言することがありえるというわけではありません"
+msgid ""
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:40
+#. Tag: title
+#: specialization.xml:105
 #, no-c-format
-msgid "the higher-priority Web Bean might not have the same name as the Web Bean that it attempts to override, or"
-msgstr "より高いプライオリティの Web Bean は、それがオーバーライドしようとする Web Bean と同じ名前を持たないかもしれません"
+msgid "A minor problem with alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:44
+#: specialization.xml:107
 #, no-c-format
-msgid "the Web Bean that it attempts to override might declare a producer method, disposal method or observer method."
-msgstr "それがオーバーライドしようとする Web Bean は、プロデューサメソッド、ディスポーザルメソッド、またはオブザーバメソッドを宣言するかもしれません"
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:49
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
-msgid "In each of these cases, the Web Bean that we tried to override could still be called at runtime. Therefore, overriding is somewhat prone to developer error."
-msgstr "これらの各ケースで、オーバーライドしようとした Web Bean は、実行時に呼びだされる可能性があります。したがって、オーバーライドは開発時に間違いが発生しやすいと言えます。"
+msgid ""
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:115
 #, no-c-format
-msgid "Web Beans provides a special feature, called <emphasis>specialization</emphasis>, that helps the developer avoid these traps. Specialization looks a little esoteric at first, but it's easy to use in practice, and you'll really appreciate the extra security it provides."
-msgstr "Web Beans は <emphasis>特殊化</emphasis> と呼ばれる独自の機能を提供します。 そして、それは開発者がこれらの罠を回避するのを助けます。特殊化は最初は少し難解に見えますが、それは実際には使いやすいものです。そして、あなたはそれが安全性を提供する事に本当に感謝する事でしょう。"
+msgid ""
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
+msgstr ""
+"Web Beans は <emphasis>特殊化</emphasis> と呼ばれる独自の機能を提供します。 "
+"そして、それは開発者がこれらの罠を回避するのを助けます。特殊化は最初は少し難"
+"解に見えますが、それは実際には使いやすいものです。そして、あなたはそれが安全"
+"性を提供する事に本当に感謝する事でしょう。"
+
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "特殊化を使用する"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
-msgid "Specialization is a feature that is specific to simple and enterprise Web Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "特殊化は、シンプルおよびエンタープライズ Web Beans に特有の特徴です。特殊化を利用するために、より高いプライオリティーの Web Bean は以下の条件を満たさなければなりません。"
+msgid ""
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "それがオーバーライドする Web Bean の直接的なサブクラスです"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
-msgid "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, and"
-msgstr "それがオーバーライドする Web Bean がエンタープライズ Web Bean であるならば、エンタープライズ Web Beanで、それがオーバーライドする Web Beans がシンプル Web Bean であるならば、シンプル Web Beanです"
+msgid ""
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "<literal>@Specializes</literal> アノテーションが付いています"
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"これは Web Bean がそのスーパークラスを <emphasis>特殊化</emphasis> すると言"
+"います。"
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -170,80 +356,214 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
-msgid "We say that the higher-priority Web Bean <emphasis>specializes</emphasis> its superclass."
-msgstr "これは Web Bean がそのスーパークラスを <emphasis>特殊化</emphasis> すると言います。"
+msgid ""
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "特殊化の長所"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "特殊化が使用されるとき"
+msgid ""
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:91
+#: specialization.xml:165
 #, no-c-format
-msgid "the binding types of the superclass are automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "スーパークラスのバインディングタイプは、 Web Bean アノテーションを付けた <literal>@Specializes</literal> によって、自動的に継承されます"
+msgid ""
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:172
 #, no-c-format
-msgid "the Web Bean name of the superclass is automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "スーパークラスの Web Bean 名は、 Web Bean アノテーションを付けた <literal>@Specializes</literal> によって自動的に継承されます"
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:99
-#, no-c-format
-msgid "producer methods, disposal methods and observer methods declared by the superclass are called upon an instance of the Web Bean annotated <literal>@Specializes</literal>."
-msgstr "スーパークラスによって宣言される プロデューサメソッド、ディスポーザルメソッド、またはオブザーバメソッドは、 Web Bean のアノテーションを付けた <literal>@Specializes</literal> のインスタンスに呼ばれます"
+#~ msgid "Specialization"
+#~ msgstr "特殊化"
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid "In our example, the binding type <literal>@CreditCard</literal> of <literal>CreditCardPaymentProcessor</literal> is inherited by <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "例で、 <literal>CreditCardPaymentProcessor</literal> のバインディングタイプ <literal>@CreditCard</literal> は、 <literal>StagingCreditCardPaymentProcessor</literal> によって継承されます。"
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> でしようとしたこと"
+#~ "は、システムの特定のデプロイメントにおいて完全に "
+#~ "<literal>AsyncPaymentProcessor</literal> を取り替えることです。そのデプロ"
+#~ "イメントで、デプロイメントタイプ <literal>@Staging</literal> はデフォルト"
+#~ "デプロイメントタイプ <literal>@Production</literal> より高いプライオリティ"
+#~ "を持ちます、したがって、以下の依存性注入によるクライアントを指し示します。"
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "さらにまた、 Web Bean マネージャは、以下の妥当性を検査します。"
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid "all API types of the superclass are API types of the Web Bean annotated <literal>@Specializes</literal> (all local interfaces of the superclass enterprise bean are also local interfaces of the subclass),"
-msgstr "スーパークラスのすべての API 型は、 Web Bean アノテーションを付けた <literal>@Specializes</literal> (スーパークラス・エンタープライズ  bean のすべてのローカルインターフェースは、サブクラスのローカルインターフェースでもあります)の API 型であること"
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "これには <literal>StagingCreditCardPaymentProcessor</literal> のインスタン"
+#~ "スが設定されます。"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid "the deployment type of the Web Bean annotated <literal>@Specializes</literal> has a higher precedence than the deployment type of the superclass, and"
-msgstr "Web Bean アノテーションを付けた <literal>@Specializes</literal> のデプロイメントタイプは、スーパークラスのデプロイメントタイプより高い優先順位を持つこと"
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "残念なことに、簡単に落ちることができるいくつかの罠が、あります。"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "また、スーパークラスを特殊化する他のいかなる有効化された Web Bean も存在しないこと"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "より高いプライオリティの Web Bean が、それがオーバーライドしようとする "
+#~ "Web Bean のすべての API 型を実行することがありえるというわけではありません"
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid "If any of these conditions are violated, the Web Bean manager throws an exception at initialization time."
-msgstr "これらの条件のいずれかが違反されるならば、 Web Bean マネージャは初期化時に例外をスローします。"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "より高いプライオリティの Web Bean が、それがオーバーライドしようとする "
+#~ "Web Bean のすべてのバインディングタイプを宣言することがありえるというわけ"
+#~ "ではありません"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid "Therefore, we can be certain that the superclass will <emphasis>never</emphasis> be called in any deployment of the system where the Web Bean annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr "したがって、 <literal>@Specializes</literal> の付いた Web Bean がデプロイされ、有効化されると、スーパークラスがデプロイの間に <emphasis>決して</emphasis> 呼び出されないことは確かです。"
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "より高いプライオリティの Web Bean は、それがオーバーライドしようとする "
+#~ "Web Bean と同じ名前を持たないかもしれません"
 
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "それがオーバーライドしようとする Web Bean は、プロデューサメソッド、ディス"
+#~ "ポーザルメソッド、またはオブザーバメソッドを宣言するかもしれません"
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "これらの各ケースで、オーバーライドしようとした Web Bean は、実行時に呼びだ"
+#~ "される可能性があります。したがって、オーバーライドは開発時に間違いが発生し"
+#~ "やすいと言えます。"
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "特殊化は、シンプルおよびエンタープライズ Web Beans に特有の特徴です。特殊"
+#~ "化を利用するために、より高いプライオリティーの Web Bean は以下の条件を満た"
+#~ "さなければなりません。"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "それがオーバーライドする Web Bean の直接的なサブクラスです"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "それがオーバーライドする Web Bean がエンタープライズ Web Bean であるなら"
+#~ "ば、エンタープライズ Web Beanで、それがオーバーライドする Web Beans がシン"
+#~ "プル Web Bean であるならば、シンプル Web Beanです"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "<literal>@Specializes</literal> アノテーションが付いています"
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "特殊化の長所"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "特殊化が使用されるとき"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "スーパークラスのバインディングタイプは、 Web Bean アノテーションを付けた "
+#~ "<literal>@Specializes</literal> によって、自動的に継承されます"
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "スーパークラスの Web Bean 名は、 Web Bean アノテーションを付けた "
+#~ "<literal>@Specializes</literal> によって自動的に継承されます"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "スーパークラスによって宣言される プロデューサメソッド、ディスポーザルメ"
+#~ "ソッド、またはオブザーバメソッドは、 Web Bean のアノテーションを付けた "
+#~ "<literal>@Specializes</literal> のインスタンスに呼ばれます"
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "例で、 <literal>CreditCardPaymentProcessor</literal> のバインディングタイ"
+#~ "プ <literal>@CreditCard</literal> は、 "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> によって継承されま"
+#~ "す。"
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "さらにまた、 Web Bean マネージャは、以下の妥当性を検査します。"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "スーパークラスのすべての API 型は、 Web Bean アノテーションを付けた "
+#~ "<literal>@Specializes</literal> (スーパークラス・エンタープライズ  bean "
+#~ "のすべてのローカルインターフェースは、サブクラスのローカルインターフェース"
+#~ "でもあります)の API 型であること"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "Web Bean アノテーションを付けた <literal>@Specializes</literal> のデプロイ"
+#~ "メントタイプは、スーパークラスのデプロイメントタイプより高い優先順位を持つ"
+#~ "こと"
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr ""
+#~ "また、スーパークラスを特殊化する他のいかなる有効化された Web Bean も存在し"
+#~ "ないこと"
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "これらの条件のいずれかが違反されるならば、 Web Bean マネージャは初期化時に"
+#~ "例外をスローします。"
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "したがって、 <literal>@Specializes</literal> の付いた Web Bean がデプロイ"
+#~ "され、有効化されると、スーパークラスがデプロイの間に <emphasis>決して</"
+#~ "emphasis> 呼び出されないことは確かです。"

Modified: doc/trunk/reference/ja-JP/stereotypes.po
===================================================================
--- doc/trunk/reference/ja-JP/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-21 20:05+0900\n"
 "Last-Translator: Keita Higashi <winnie_the_pooh at y3.dion.ne.jp>\n"
 "Language-Team: none\n"
@@ -14,84 +14,96 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "ステレオタイプ"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "Web Beans の仕様に従って"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
-msgid "In many systems, use of architectural patterns produces a set of recurring Web Bean roles. A stereotype allows a framework developer to identify such a role and declare some common metadata for Web Beans with that role in a central place."
-msgstr "多くのシステムでは、アーキテクチャパターンを使用することで、繰り返される Web Bean の役割を作り出すことでしょう。ステレオタイプは、フレームワーク開発者がそのような役割を認識し、集約された場所において Web Beans のための共通のメタデータを宣言できるようにします。"
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
+msgid ""
+"In many systems, use of architectural patterns produces a set of recurring "
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"多くのシステムでは、アーキテクチャパターンを使用することで、繰り返される Web "
+"Bean の役割を作り出すことでしょう。ステレオタイプは、フレームワーク開発者がそ"
+"のような役割を認識し、集約された場所において Web Beans のための共通のメタデー"
+"タを宣言できるようにします。"
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "ステレオタイプは、以下のどんな組み合わせでもカプセル化します。"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "デフォルトデプロイメントタイプ"
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "デフォルトスコープタイプ"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "Web Bean スコープの制限"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "一組のインタセプタバインディングアノテーション"
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "Web Bean が特定の型を実装するか、拡張するという要件"
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "一組のインタセプタバインディングアノテーション"
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid "A stereotype may also specify that all Web Beans with the stereotype have defaulted Web Bean names."
-msgstr "あるステレオタイプを持つすべての Web Beans が、デフォルトの Web Beans 名を持つようにステレオタイプを指定する事もありえます。"
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"あるステレオタイプを持つすべての Web Beans が、デフォルトの Web Beans 名を持"
+"つようにステレオタイプを指定する事もありえます。"
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Web Bean は、無し、一つまたは複数のステレオタイプを宣言することがあります。"
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
-msgid "A stereotype is a Java annotation type. This stereotype identifies action classes in some MVC framework:"
-msgstr "ステレオタイプは、Java アノテーションタイプです。このステレオタイプは、いくつかの MVC フレームワークでアクションクラスを特定します。"
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"ステレオタイプは、Java アノテーションタイプです。このステレオタイプは、いくつ"
+"かの MVC フレームワークでアクションクラスを特定します。"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -100,13 +112,15 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
-msgstr "このアノテーションを Web Bean に適用することによって、ステレオタイプを使います。"
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
+msgstr ""
+"このアノテーションを Web Bean に適用することによって、ステレオタイプを使いま"
+"す。"
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -115,234 +129,296 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "ステレオタイプのデフォルトスコープとデプロイメントタイプ"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
-msgid "A stereotype may specify a default scope and/or default deployment type for Web Beans with that stereotype. For example, if the deployment type <literal>@WebTier</literal> identifies Web Beans that should only be deployed when the system executes as a web application, we might specify the following defaults for action classes:"
-msgstr "ステレオタイプでは、 Web Beans のためにデフォルトスコープやデフォルトデプロイメントタイプを明示することがありえます。たとえば、システムが web アプリケーションとして実行するとき、デプロイメントタイプ<literal>@WebTier</literal>がデプロイされるべき Web Beans を特定するならば、アクションクラスのために以下のデフォルトを明示するかもしれません。"
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"あるステレオタイプを持つすべての Web Beans が、デフォルトの Web Beans 名を持"
+"つようにステレオタイプを指定する事もありえます。"
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid "Of course, a particular action may still override these defaults if necessary:"
-msgstr "もちろん、特定の動作は、必要に応じてこれらのデフォルトに今まで通りオーバーライドすることがありえます。"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
+msgstr ""
+"もちろん、特定の動作は、必要に応じてこれらのデフォルトに今まで通りオーバーラ"
+"イドすることがありえます。"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "すべての動作を特定のスコープに移動したいならば、またそうすることができます。"
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "ステレオタイプによるスコープと型の制限"
+msgid "Interceptor bindings for stereotypes"
+msgstr "ステレオタイプのためのインターセプタバインディング"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
-msgid "Suppose that we wish to prevent actions from declaring certain scopes. Web Beans lets us explicitly specify the set of allowed scopes for Web Beans with a certain stereotype. For example:"
-msgstr "特定のスコープを宣言できないようにしたいと仮定します。 Web Beans では、ステレオタイプを使って Web Beans に許可されたスコープを明示的に指定できます。例を以下に示します。"
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"ステレオタイプは、そのステレオタイプですべての Web Beans によって受け継がれる"
+"ために、一組のインターセプタバインディングを明示することがありえます。"
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"これは、ビジネスコードから離れてさらに技術的関心事を理解するのを助けます。"
+
+#. Tag: title
+#: stereotypes.xml:103
 #, no-c-format
-msgid "If a particular action class attempts to specify a scope other than the Web Beans request scope, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "特定のアクションクラスが Web Beans リクエスト スコープ以外のスコープを指定しようとするならば、例外はWeb Bean マネージャによって初期化時点にスローされます。"
+msgid "Name defaulting with stereotypes"
+msgstr "ステレオタイプによる名前のデフォルティング"
 
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
-msgid "We can also force all Web Bean with a certain stereotype to implement an interface or extend a class:"
-msgstr "特定のステレオタイプをもつすべての Web Bean にインターフェースを実装するか、クラスを拡張することを強制することもできます。"
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"最後に、特定のステレオタイプによるすべての Web Beans が Web Bean の名前を持つ"
+"ことを明示することができて、 Web Bean マネージャによってデフォルトとしまし"
+"た。アクションは JSP ページでよく参照されるので、それらがこの機能の完璧なユー"
+"スケースとなっています。必要なのは、空の <literal>@Named</literal> アノテー"
+"ションを加えることだけです。"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
-msgid "If a particular action class does not extend the class <literal>AbstractAction</literal>, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "特定のアクションクラスがクラス <literal>AbstractAction</literal> を拡張しないならば、例外は Web Bean マネージャによって初期化時点にスローされます。"
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"こうして、 <literal>LoginAction</literal> は、<literal>loginAction</literal> "
+"として名前を持つようになります。"
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "ステレオタイプのためのインターセプタバインディング"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "標準ステレオタイプ"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
-msgid "A stereotype may specify a set of interceptor bindings to be inherited by all Web Beans with that stereotype."
-msgstr "ステレオタイプは、そのステレオタイプですべての Web Beans によって受け継がれるために、一組のインターセプタバインディングを明示することがありえます。"
+msgid ""
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
-msgid "This helps us get technical concerns even further away from the business code!"
-msgstr "これは、ビジネスコードから離れてさらに技術的関心事を理解するのを助けます。"
+msgid ""
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "ステレオタイプ"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "ステレオタイプによる名前のデフォルティング"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
-msgid "Finally, we can specify that all Web Beans with a certain stereotype have a Web Bean name, defaulted by the Web Bean manager. Actions are often referenced in JSP pages, so they're a perfect use case for this feature. All we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "最後に、特定のステレオタイプによるすべての Web Beans が Web Bean の名前を持つことを明示することができて、 Web Bean マネージャによってデフォルトとしました。アクションは JSP ページでよく参照されるので、それらがこの機能の完璧なユースケースとなっています。必要なのは、空の <literal>@Named</literal> アノテーションを加えることだけです。"
+msgid ""
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid "Now, <literal>LoginAction</literal> will have the name <literal>loginAction</literal>."
-msgstr "こうして、 <literal>LoginAction</literal> は、<literal>loginAction</literal> として名前を持つようになります。"
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "標準ステレオタイプ"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
-msgid "We've already met two standard stereotypes defined by the Web Beans specification: <literal>@Interceptor</literal> and <literal>@Decorator</literal>."
-msgstr "Web Beans 仕様によって定義される <literal>@Interceptor</literal> と <literal>@Decorator</literal> の二つの標準ステレオタイプをすでに経験しました。"
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
+msgstr ""
+"Web Beans 仕様によって定義される <literal>@Interceptor</literal> と "
+"<literal>@Decorator</literal> の二つの標準ステレオタイプをすでに経験しまし"
+"た。"
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Beans は、一つの更なる標準的なステレオタイプを定めます。"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -352,8 +428,133 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
-msgid "This stereotype is intended for use with JSF. Instead of using JSF managed beans, just annotate a Web Bean <literal>@Model</literal>, and use it directly in your JSF page."
-msgstr "このステレオタイプは、 JSF と一緒に使う事が意図されています。 JSF 管理 beans を使うのではなく、ただ Web Bean に <literal>@Model</literal> アノテーションを付加するだけで、 JSFページで直接それを使えるようになります。"
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
+msgid ""
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"このステレオタイプは、 JSF と一緒に使う事が意図されています。 JSF 管理 beans "
+"を使うのではなく、ただ Web Bean に <literal>@Model</literal> アノテーションを"
+"付加するだけで、 JSFページで直接それを使えるようになります。"
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "Web Beans の仕様に従って"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "デフォルトデプロイメントタイプ"
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "Web Bean スコープの制限"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr "Web Bean が特定の型を実装するか、拡張するという要件"
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr ""
+#~ "Web Bean は、無し、一つまたは複数のステレオタイプを宣言することがありま"
+#~ "す。"
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "ステレオタイプでは、 Web Beans のためにデフォルトスコープやデフォルトデプ"
+#~ "ロイメントタイプを明示することがありえます。たとえば、システムが web アプ"
+#~ "リケーションとして実行するとき、デプロイメントタイプ<literal>@WebTier</"
+#~ "literal>がデプロイされるべき Web Beans を特定するならば、アクションクラス"
+#~ "のために以下のデフォルトを明示するかもしれません。"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "すべての動作を特定のスコープに移動したいならば、またそうすることができま"
+#~ "す。"
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "ステレオタイプによるスコープと型の制限"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "特定のスコープを宣言できないようにしたいと仮定します。 Web Beans では、ス"
+#~ "テレオタイプを使って Web Beans に許可されたスコープを明示的に指定できま"
+#~ "す。例を以下に示します。"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "特定のアクションクラスが Web Beans リクエスト スコープ以外のスコープを指定"
+#~ "しようとするならば、例外はWeb Bean マネージャによって初期化時点にスローさ"
+#~ "れます。"
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "特定のステレオタイプをもつすべての Web Bean にインターフェースを実装する"
+#~ "か、クラスを拡張することを強制することもできます。"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "特定のアクションクラスがクラス <literal>AbstractAction</literal> を拡張し"
+#~ "ないならば、例外は Web Bean マネージャによって初期化時点にスローされます。"
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Beans は、一つの更なる標準的なステレオタイプを定めます。"

Modified: doc/trunk/reference/ja-JP/viewlayers.po
===================================================================
--- doc/trunk/reference/ja-JP/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-05-22 23:05+0900\n"
 "Last-Translator: TANABE Junnichi <jun at lmns.biz>\n"
 "Language-Team: none\n"
@@ -14,46 +15,80 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr "代替ビューレイヤ"
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
-msgstr "Web BeansをWicketと使用する"
+msgid "Wicket CDI integration"
+msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr "<literal>WebApplication</literal>クラス"
 
 #. Tag: para
-#: viewlayers.xml:12
-#, no-c-format
-msgid "Each wicket application must have a <literal>WebApplication</literal> subclass; Web Beans provides, for your utility, a subclass of this which sets up the Wicket/JSR-299 integration. You should subclass <literal>org.jboss.webbeans.wicket.WebBeansApplication</literal>."
-msgstr "各wicketアプリケーションは <literal>WebApplication</literal> サブクラスを保持しなければなりません。Web Beansではあなたの利便性の為に、Wicket/JSR-299統合を設定するためのサブクラスが提供されています。あなたは <literal>org.jboss.webbeans.wicket.WebBeansApplication</literal> のサブクラスを作るべきです。"
+#: viewlayers.xml:24
+#, fuzzy, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WebApplication</literal> "
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
+msgstr ""
+"各wicketアプリケーションは <literal>WebApplication</literal> サブクラスを保持"
+"しなければなりません。Web Beansではあなたの利便性の為に、Wicket/JSR-299統合を"
+"設定するためのサブクラスが提供されています。あなたは <literal>org.jboss."
+"webbeans.wicket.WebBeansApplication</literal> のサブクラスを作るべきです。"
 
 #. Tag: para
-#: viewlayers.xml:21
-#, no-c-format
-msgid "If you would prefer not to subclass <literal>WebBeansApplication</literal>, you can manually add a (small!) number of overrides and listeners to your own <literal>WebApplication</literal> subclass. The javadocs of <literal>WebBeansApplication</literal>detail this."
-msgstr "もしあなたが <literal>WebBeansApplication</literal> のサブクラスを作成するのを好まないのであれば、あなたは <literal>WebApplication</literal> サブクラスに対してマニュアルで少数のオーバーライドとリスナを追加することもできます。 <literal>WebBeansApplication</literal> のjavadocがこれに詳しく述べています。"
+#: viewlayers.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
+msgstr ""
+"もしあなたが <literal>WebBeansApplication</literal> のサブクラスを作成するの"
+"を好まないのであれば、あなたは <literal>WebApplication</literal> サブクラスに"
+"対してマニュアルで少数のオーバーライドとリスナを追加することもできます。 "
+"<literal>WebBeansApplication</literal> のjavadocがこれに詳しく述べています。"
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr "例えば、"
 
 #. Tag: programlisting
-#: viewlayers.xml:33
-#, no-c-format
+#: viewlayers.xml:41
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -68,62 +103,137 @@
 "}]]>"
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr "Wicketを使った対話"
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
-msgid "The conversation scope can be used in Web Beans with the Apache Wicket web framework, through the <literal>webbeans-wicket</literal> module. This module takes care of:"
-msgstr "対話スコープはApache Wicket webアプリケーションを用いたWeb Beansで <literal>webbeans-wicket</literal> を通して利用可能です。このモジュールでは以下の面倒を見てくれます。"
+msgid ""
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
+msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
-msgid "Setting up the conversation context at the beginning of a Wicket request, and tearing it down afterwards"
-msgstr "Wicketリクエストの開始時に対話コンテキストを設定し、その後それを破棄すること"
+msgid ""
+"Setting up the conversation context at the beginning of a Wicket request, "
+"and tearing it down afterwards"
+msgstr ""
+"Wicketリクエストの開始時に対話コンテキストを設定し、その後それを破棄すること"
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
-msgid "Storing the id of any long-running conversation in Wicket's metadata when the page response is complete"
-msgstr "ページレスポンスが完了されたときにWicketのメタデータに長期対話のIDを保存すること"
+msgid ""
+"Storing the id of any long-running conversation in Wicket's metadata when "
+"the page response is complete"
+msgstr ""
+"ページレスポンスが完了されたときにWicketのメタデータに長期対話のIDを保存する"
+"こと"
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
-msgid "Activating the correct long-running conversation based upon which page is being accessed"
+msgid ""
+"Activating the correct long-running conversation based upon which page is "
+"being accessed"
 msgstr "ページがアクセスされているときに正しい長期対話を活性化すること"
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
-msgid "Propagating the conversation context for any long-running conversation to new pages"
+msgid ""
+"Propagating the conversation context for any long-running conversation to "
+"new pages"
 msgstr "対話コンテキストを新しいページへの長期対話に対して伝播すること"
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr "Wicketでの対話の開始と終了"
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
+msgstr ""
+"JSFアプリケーションとして、対話はリクエストごとに<emphasis>いつも</emphasis>"
+"存在するが、そのライフタイムは<emphasis>長期</emphasis>としてマークされない限"
+"りはそのリクエストの間だけになります。Wicketアプリケーションのために、これは "
+"<literal>@Current Conversation</literal> アノテーションをインジェクトし、 "
+"<literal>conversation.begin()</literal> を呼び出すことでJSPアプリケーションで"
+"の場合と同様に達成されます。同じように、対話は <literal>conversation.end()</"
+"literal> を用いて終了されます。"
+
+#. Tag: programlisting
+#: viewlayers.xml:86
 #, no-c-format
-msgid "As JSF applications, a conversation <emphasis>always</emphasis> exists for any request, but its lifetime is only that of the current request unless it is marked as <emphasis>long-running</emphasis>. For Wicket applications this is accomplished as in JSF applications, by injecting the <literal>@Current Conversation</literal> and then invoking <literal>conversation.begin()</literal>. Likewise, conversations are ended with <literal>conversation.end()</literal>"
-msgstr "JSFアプリケーションとして、対話はリクエストごとに<emphasis>いつも</emphasis>存在するが、そのライフタイムは<emphasis>長期</emphasis>としてマークされない限りはそのリクエストの間だけになります。Wicketアプリケーションのために、これは <literal>@Current Conversation</literal> アノテーションをインジェクトし、 <literal>conversation.begin()</literal> を呼び出すことでJSPアプリケーションでの場合と同様に達成されます。同じように、対話は <literal>conversation.end()</literal> を用いて終了されます。"
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr "Wicketでの長期対話の伝播"
 
 #. Tag: para
-#: viewlayers.xml:86
-#, no-c-format
-msgid "When a conversation is marked as long-running, the id of that conversation will be stored in Wicket's metadata for the current page. If a new page is created and set as the response target through <literal>setResponsePage</literal>, this new page will also participate in this conversation. This occurs for both directly instantiated pages (<literal>setResponsePage(new OtherPage())</literal>), as well as for bookmarkable pages created with <literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage.class</literal> is mounted as bookmarkable from your <literal>WebApplication</literal> subclass (or through annotations). In the latter case, because the new page instance is not created until after a redirect, the conversation id will be propagated through a request parameter, and then stored in page metadata after the redirect."
-msgstr "対話が長期としてマークされたとき、その対話のIDは今のページの為にWicketのメタデータに保存されます。新しいページが生成され <literal>setResponsePage</literal> を通してレスポンスターゲットとしてセットされたら、この新しいページも対話に参加することになるでしょう。これは直接インスタンス化されたページ(<literal>setResponsePage(new OtherPage())</literal>)の場合でも <literal>OtherPage.class</literal> があなたの <literal>WebApplication</literal> サブクラスから(あるいはアノテーションを通して)ブックマーク可能としてマウントされる <literal>setResponsePage(OtherPage.class)</literal> を使って生成されたブックマーク可能なページの場合でもなります。後者の場合、新しいページインスタンスはリダイレクトの後には生成されないので、対話のIDがリクã!
 ‚¨ã‚¹ãƒˆãƒ‘ラメータを通して伝播され、そのリダイレクトの後にページメタデータに保存されることになります。"
+#: viewlayers.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"When a conversation is marked as long-running, the id of that conversation "
+"will be stored in Wicket's metadata for the current page. If a new page is "
+"created and set as the response target through <literal>setResponsePage()</"
+"literal>, this new page will also participate in this conversation. This "
+"occurs for both directly instantiated pages (<literal>setResponsePage(new "
+"OtherPage())</literal>), as well as for bookmarkable pages created with "
+"<literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage."
+"class</literal> is mounted as bookmarkable from your "
+"<literal>WebApplication</literal> subclass (or through annotations). In the "
+"latter case, because the new page instance is not created until after a "
+"redirect, the conversation id will be propagated through a request "
+"parameter, and then stored in page metadata after the redirect."
+msgstr ""
+"対話が長期としてマークされたとき、その対話のIDは今のページの為にWicketのメタ"
+"データに保存されます。新しいページが生成され <literal>setResponsePage</"
+"literal> を通してレスポンスターゲットとしてセットされたら、この新しいページも"
+"対話に参加することになるでしょう。これは直接インスタンス化されたページ"
+"(<literal>setResponsePage(new OtherPage())</literal>)の場合でも "
+"<literal>OtherPage.class</literal> があなたの <literal>WebApplication</"
+"literal> サブクラスから(あるいはアノテーションを通して)ブックマーク可能とし"
+"てマウントされる <literal>setResponsePage(OtherPage.class)</literal> を使って"
+"生成されたブックマーク可能なページの場合でもなります。後者の場合、新しいペー"
+"ジインスタンスはリダイレクトの後には生成されないので、対話のIDがリクエストパ"
+"ラメータを通して伝播され、そのリダイレクトの後にページメタデータに保存される"
+"ことになります。"
 
+#~ msgid "Using Web Beans with Wicket"
+#~ msgstr "Web BeansをWicketと使用する"
+
+#~ msgid ""
+#~ "The conversation scope can be used in Web Beans with the Apache Wicket "
+#~ "web framework, through the <literal>webbeans-wicket</literal> module. "
+#~ "This module takes care of:"
+#~ msgstr ""
+#~ "対話スコープはApache Wicket webアプリケーションを用いたWeb Beansで "
+#~ "<literal>webbeans-wicket</literal> を通して利用可能です。このモジュールで"
+#~ "は以下の面倒を見てくれます。"

Added: doc/trunk/reference/ja-JP/weldexamples.po
===================================================================
--- doc/trunk/reference/ja-JP/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/ja-JP/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language ja-JP translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/ja-JP/xml.po
===================================================================
--- doc/trunk/reference/ja-JP/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ja-JP/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-09 19:24+0900\n"
 "Last-Translator: Keita Higashi <winnie_the_pooh at y3.dion.ne.jp>\n"
 "Language-Team: none\n"
@@ -14,93 +14,131 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "XML を使っている Web Beans を定める"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
-msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
-msgstr "これまで、アノテーションを使用して宣言される Web Beans の多くの例を見ました。しかし、Web Bean を定義するためにアノテーションを使うことができない場合があります。"
+#: xml.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"これまで、アノテーションを使用して宣言される Web Beans の多くの例を見ました。"
+"しかし、Web Bean を定義するためにアノテーションを使うことができない場合があり"
+"ます。"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr "インプリメンテーションクラスがいくつかの既存のライブラリからなるとき"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "複数の Web Beans が同じインプリメンテーションクラスでなければならないとき"
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"複数の Web Beans が同じインプリメンテーションクラスでなければならないとき"
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "これらのケースのどちらででも、 Web Beans は二つのオプションを与えます。"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "プロデューサメソッドを書きます"
+#: xml.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"Many frameworks use XML to provide metadata relating to Java classes. "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
+"class and member names as the string values of XML elements and attributes, "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"多くのフレームワークは、 Java クラスに関してメタデータを提供するために、 XML "
+"を使います。しかし、 Web Beans は大部分の他のフレームワークに Java クラス、"
+"フィールドまたはメソッドの名前を明示する非常に異なるアプローチを使います。 "
+"XML 要素と属性の文字列値としてクラスとメンバー名を書く代わりに、 Web Beans は"
+"クラスまたはメンバー名を XML 要素の名前として使うことができます。"
 
 #. Tag: para
-#: xml.xml:24
+#: xml.xml:38
 #, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "XML を使って Web Bean を宣言します"
+msgid ""
+"The advantage of this approach is that you can write an XML schema that "
+"prevents spelling errors in your XML document. It's even possible for a tool "
+"to generate the XML schema automatically from the compiled Java code. Or, an "
+"integrated development environment could perform the same validation without "
+"the need for the explicit intermediate generation step."
+msgstr ""
+"このアプローチの長所は、 XML 文書でスペルミスを防止する XML スキーマを記述す"
+"ることができるということです。ツールがコンパイルされた Java コードから自動的"
+"に XML スキーマを生み出すことさえ可能です。あるいは、統合した開発環境は、明確"
+"な中間の生成ステップを行うことなく、同じ妥当性の検証を実行することがありえま"
+"す。"
 
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
-msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
-msgstr "多くのフレームワークは、 Java クラスに関してメタデータを提供するために、 XML を使います。しかし、 Web Beans は大部分の他のフレームワークに Java クラス、フィールドまたはメソッドの名前を明示する非常に異なるアプローチを使います。 XML 要素と属性の文字列値としてクラスとメンバー名を書く代わりに、 Web Beans はクラスまたはメンバー名を XML 要素の名前として使うことができます。"
-
-#. Tag: para
-#: xml.xml:33
-#, no-c-format
-msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
-msgstr "このアプローチの長所は、 XML 文書でスペルミスを防止する XML スキーマを記述することができるということです。ツールがコンパイルされた Java コードから自動的に XML スキーマを生み出すことさえ可能です。あるいは、統合した開発環境は、明確な中間の生成ステップを行うことなく、同じ妥当性の検証を実行することがありえます。"
-
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Web Bean クラスを宣言する"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
-msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Java パッケージごとに、 Web Beans は対応する XML 名前空間を定めます。名前空間は、 Java パッケージ名前に <literal>urn:java:</literal> を前に付加することによって作られます。パッケージ <literal>com.mydomain.myapp</literal> により、 XML 名前空間は、 <literal>urn:java:com.mydomain.myapp</literal> となります。"
+#: xml.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"For each Java package, Weld defines a corresponding XML namespace. The "
+"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
+"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
+"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"Java パッケージごとに、 Web Beans は対応する XML 名前空間を定めます。名前空間"
+"は、 Java パッケージ名前に <literal>urn:java:</literal> を前に付加することに"
+"よって作られます。パッケージ <literal>com.mydomain.myapp</literal> により、 "
+"XML 名前空間は、 <literal>urn:java:com.mydomain.myapp</literal> となります。"
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
-msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
-msgstr "パッケージに属している Java 型は、パッケージと一致している名前空間で XML 要素を使用することにゆだねられます。要素の名前は、 Java 型の名前です。型のフィールドとメソッドは、同じ名前空間で子要素で明示されます。型がアノテーションであるならば、メンバーは要素の特質によって明示されます。"
+msgid ""
+"Java types belonging to a package are referred to using an XML element in "
+"the namespace corresponding to the package. The name of the element is the "
+"name of the Java type. Fields and methods of the type are specified by child "
+"elements in the same namespace. If the type is an annotation, members are "
+"specified by attributes of the element."
+msgstr ""
+"パッケージに属している Java 型は、パッケージと一致している名前空間で XML 要素"
+"を使用することにゆだねられます。要素の名前は、 Java 型の名前です。型のフィー"
+"ルドとメソッドは、同じ名前空間で子要素で明示されます。型がアノテーションであ"
+"るならば、メンバーは要素の特質によって明示されます。"
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
-msgid "For example, the element <literal>&lt;util:Date/&gt;</literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "たとえば、以下の XML 断片の要素 <literal>&lt;util:Date/&gt;</literal> は、クラス <literal>java.util.Date</literal> を参照します。"
+msgid ""
+"For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"たとえば、以下の XML 断片の要素 <literal>&lt;util:Date/&gt;</literal> は、ク"
+"ラス <literal>java.util.Date</literal> を参照します。"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -110,37 +148,47 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
-msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
-msgstr "そして、これは <literal>Date</literal> をシンプル Web Bean として宣言するためのすべてのコードです。<literal>Date</literal> のインスタンスは、現在他のどの Web Bean にも導入されることがありえます。"
+#: xml.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"And this is all the code we need to declare that <literal>Date</literal> is "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"そして、これは <literal>Date</literal> をシンプル Web Bean として宣言するため"
+"のすべてのコードです。<literal>Date</literal> のインスタンスは、現在他のどの "
+"Web Bean にも導入されることがありえます。"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Web Bean メタデータを宣言する"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
-msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
-msgstr "バインディングタイプが Web Bean 宣言の直接の子要素を使用して型を検査するスコープ、デプロイメントタイプとインタセプターを宣言することができます。"
+#: xml.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"We can declare the scope, deployment type and interceptor binding types "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"バインディングタイプが Web Bean 宣言の直接の子要素を使用して型を検査するス"
+"コープ、デプロイメントタイプとインタセプターを宣言することができます。"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -150,29 +198,30 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "名前とバインディングタイプを明示するために、正確に同じアプローチを使います。"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"名前とバインディングタイプを明示するために、正確に同じアプローチを使います。"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -192,36 +241,42 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
-msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
-msgstr "<literal>@Login</literal> と <literal>@SystemStart</literal> アノテーションタイプを結びつけているところ。"
+#: xml.xml:91
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
+"qualifier annotations types."
+msgstr ""
+"<literal>@Login</literal> と <literal>@SystemStart</literal> アノテーションタ"
+"イプを結びつけているところ。"
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
-msgstr "通常通り、 Web Bean は複数のバインディングタイプをサポートすることがありえます。"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
+msgstr ""
+"通常通り、 Web Bean は複数のバインディングタイプをサポートすることがありえま"
+"す。"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -230,18 +285,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
-msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
-msgstr "インタセプタとデコレータは単なるシンプル Web Beans であるので、それらはまるで他のシンプル Web Bean のように宣言されることがありえます。"
+#: xml.xml:101
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"インタセプタとデコレータは単なるシンプル Web Beans であるので、それらはまるで"
+"他のシンプル Web Bean のように宣言されることがありえます。"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -250,42 +309,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Web Bean メンバーを宣言する"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "やるべきこと。"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "インライン Web Beans を宣言する"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "Web Beans は、依存性注入ポイントで Web Bean を定義できます。例を以下に示します。"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"Web Beans は、依存性注入ポイントで Web Bean を定義できます。例を以下に示しま"
+"す。"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -300,50 +361,73 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
-msgid "The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
-msgstr "一組の最初のフィールド値で、 <literal>&lt;Name&gt;</literal> エレメントはスコープ <literal>@Dependent</literal> とクラス <literal>Name</literal> の単純な Web Bean を宣言します。"
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"一組の最初のフィールド値で、 <literal>&lt;Name&gt;</literal> エレメントはス"
+"コープ <literal>@Dependent</literal> とクラス <literal>Name</literal> の単純"
+"な Web Bean を宣言します。"
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
-msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
-msgstr "この単純であるが、強力な機能によって、 Java オブジェクトの全部のグラフを明示するのにWeb Beans XML フォーマットを用いることができます。それは完全なデータバインディングの解決案とは言えませんが、それにほとんど近いものです。"
+#: xml.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
+"solution, but it's close!"
+msgstr ""
+"この単純であるが、強力な機能によって、 Java オブジェクトの全部のグラフを明示"
+"するのにWeb Beans XML フォーマットを用いることができます。それは完全なデータ"
+"バインディングの解決案とは言えませんが、それにほとんど近いものです。"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "スキーマを使用する"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
-msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
-msgstr "XML 文書フォーマットに Java 開発者でない、または、コードにアクセスしない人々によって記述して欲しいならば、スキーマを提供する必要があります。 Web Beans に特有のスキーマを記述するか、記述する必要はありません。"
+#: xml.xml:141
+#, fuzzy, no-c-format
+msgid ""
+"If we want our XML document format to be authored by people who aren't Java "
+"developers, or who don't have access to our code, we need to provide a "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"XML 文書フォーマットに Java 開発者でない、または、コードにアクセスしない人々"
+"によって記述して欲しいならば、スキーマを提供する必要があります。 Web Beans に"
+"特有のスキーマを記述するか、記述する必要はありません。"
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
 "          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
 "\n"
 "    <myapp:System>\n"
 "        ...\n"
@@ -352,8 +436,23 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
-msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
-msgstr "XML スキーマを記述することは、全く退屈です。したがって、 Web Beans RI プロジェクトは、コンパイルされた Java コードから自動的に XML スキーマを生み出すツールを提供します。"
+#: xml.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"XML スキーマを記述することは、全く退屈です。したがって、 Web Beans RI プロ"
+"ジェクトは、コンパイルされた Java コードから自動的に XML スキーマを生み出す"
+"ツールを提供します。"
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr ""
+#~ "これらのケースのどちらででも、 Web Beans は二つのオプションを与えます。"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "プロデューサメソッドを書きます"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "XML を使って Web Bean を宣言します"

Modified: doc/trunk/reference/ko-KR/Author_Group.po
===================================================================
--- doc/trunk/reference/ko-KR/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 10:32+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -20,117 +20,119 @@
 "\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:8
+#, no-c-format
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red Hat "
-"Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:17
+#, no-c-format
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "이탈리아어 번역 "
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, fuzzy, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, fuzzy, no-c-format
 msgid "Spanish Translation"
 msgstr "이탈리아어 번역 "
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr ""
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, fuzzy, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, fuzzy, no-c-format
 msgid "Korean Translation"
 msgstr "이탈리아어 번역 "
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, fuzzy, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, fuzzy, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "이탈리아어 번역 "
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, fuzzy, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, fuzzy, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "이탈리아어 번역 "
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
+#~ "Hat Middleware LLC</orgname>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"

Modified: doc/trunk/reference/ko-KR/Book_Info.po
===================================================================
--- doc/trunk/reference/ko-KR/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 16:25+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -23,14 +23,15 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
+msgid "Weld - JSR-299 Reference Implementation"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
 #, fuzzy, no-c-format
 msgid ""
-"The new standard for dependency injection and contextual state management"
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr "의존성 주입 및 컨텍스트 상태 관리에 대한 새로운 Java 표준  "
 
 #~ msgid "Introduction to Web Beans"

Added: doc/trunk/reference/ko-KR/beans.po
===================================================================
--- doc/trunk/reference/ko-KR/beans.po	                        (rev 0)
+++ doc/trunk/reference/ko-KR/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language ko-KR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/ko-KR/decorators.po
===================================================================
--- doc/trunk/reference/ko-KR/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: decorators\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:19+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,60 +15,76 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "데코레이터 "
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
+#: decorators.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
-msgstr "인터셉터는 유형 시스템에 <emphasis>직교</emphasis> 되어 있는 문제를 분리하고 캡쳐하는 강력한 방법입니다. 인터셉터는 모든 Java 유형 호출을 차단할 수 있습니다. 이는 트랜젝션 관리 및 보안과 같은 기술적 문제를 해결하는데 유용합니다. 하지만, 본래 인터셉터는 차단한 이벤트의 실제적 시멘틱을 인식하지 않습니다. 따라서, 인터셉터는 비지니스 관련 문제를 분리하기 위한 도구로는 적합하지 않습니다.  "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"인터셉터는 유형 시스템에 <emphasis>직교</emphasis> 되어 있는 문제를 분리하고 "
+"캡쳐하는 강력한 방법입니다. 인터셉터는 모든 Java 유형 호출을 차단할 수 있습니"
+"다. 이는 트랜젝션 관리 및 보안과 같은 기술적 문제를 해결하는데 유용합니다. 하"
+"지만, 본래 인터셉터는 차단한 이벤트의 실제적 시멘틱을 인식하지 않습니다. 따라"
+"서, 인터셉터는 비지니스 관련 문제를 분리하기 위한 도구로는 적합하지 않습니"
+"다.  "
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
+#: decorators.xml:15
+#, fuzzy, no-c-format
 msgid ""
 "The reverse is true of <emphasis>decorators</emphasis>. A decorator "
 "intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
-msgstr "역으로 기능하는 것이 <emphasis>데코레이터</emphasis>입니다. 데코레이터는 특정 Java 인터페이스에 대해서만 호출을 차단하며, 인터페이스에 부착된 모든 시멘틱을 인식합니다. 이는 일부 비지니스 문제를 모델화하기 위해 데코레이터를 완벽한 도구로 만듭니다. 또한 데코레이터는 인터셉터의 일반적 기능을 갖지 않습니다. 데코레이터는 여러 이질적 유형을 초월하는 기술적 문제를 해결할 수 없습니다. "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"역으로 기능하는 것이 <emphasis>데코레이터</emphasis>입니다. 데코레이터는 특"
+"정 Java 인터페이스에 대해서만 호출을 차단하며, 인터페이스에 부착된 모든 시멘"
+"틱을 인식합니다. 이는 일부 비지니스 문제를 모델화하기 위해 데코레이터를 완벽"
+"한 도구로 만듭니다. 또한 데코레이터는 인터셉터의 일반적 기능을 갖지 않습니"
+"다. 데코레이터는 여러 이질적 유형을 초월하는 기술적 문제를 해결할 수 없습니"
+"다. "
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "어카운트를 나타내는 인터페이스가 있다고 가정합니다: "
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -79,49 +95,69 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
+#: decorators.xml:28
+#, fuzzy, no-c-format
 msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
-msgstr "시스템에서 여러 다른 Web Beans는 <literal>Account</literal> 인터페이스를 구현합니다. 하지만, 일반적인 법적 요구조건이 있으며, 모든 종류의 어카운트의 경우, 대용량 트랜젝션은 특정 로그로 시스템에 의해 기록되어야 합니다. 이는 데코레이터의 뛰어난 작업 기능입니다.  "
+msgstr ""
+"시스템에서 여러 다른 Web Beans는 <literal>Account</literal> 인터페이스를 구현"
+"합니다. 하지만, 일반적인 법적 요구조건이 있으며, 모든 종류의 어카운트의 경"
+"우, 대용량 트랜젝션은 특정 로그로 시스템에 의해 기록되어야 합니다. 이는 데코"
+"레이터의 뛰어난 작업 기능입니다.  "
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
+#: decorators.xml:34
+#, fuzzy, no-c-format
 msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
-msgstr "데코레이터는 심플 Web Bean으로 유형을 구현하고 <literal>@Decorator</literal>를 어노테이션합니다.   "
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"데코레이터는 심플 Web Bean으로 유형을 구현하고 <literal>@Decorator</literal>"
+"를 어노테이션합니다.   "
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -149,138 +185,238 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
+#: decorators.xml:47
+#, fuzzy, no-c-format
 msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
-msgstr "기타 다른 심플 Web Beans와 다르게, 데코레이터는 추상클래스일 수 도 있습니다. 데코레이터된 인터페이스의 특정 방식에 대해 데코레이터가 특별히 해야할 것이 없을 경우, 이 방식을 구현하실 필요가 없습니다.     "
+msgstr ""
+"기타 다른 심플 Web Beans와 다르게, 데코레이터는 추상클래스일 수 도 있습니다. "
+"데코레이터된 인터페이스의 특정 방식에 대해 데코레이터가 특별히 해야할 것이 없"
+"을 경우, 이 방식을 구현하실 필요가 없습니다.     "
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr "데코레이터를 적용하기 전 해당 방식의 인터셉터를 호출합니다. "
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "위임 속성 "
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
 msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
-msgstr "모든 데코레이터는 <emphasis>위임 속성</emphasis> 기능을 갖습니다. 위임 속성의 유형 및 바인딩 유형은 어떤 Web Beans에 데코레이터를 바운딩할 지를 결정합니다. 위임 속성 유형은 데코레이터에 의해 구현된 모든 인터페이스를 구현 또는 확장해야 합니다. "
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
-msgstr "이러한 위임 속성은 <literal>Account</literal>를 구현하는 모든 Web Beans로 바인딩하는 데코레이터를 지정합니다. "
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
-
-#. Tag: para
-#: decorators.xml:55
-#, no-c-format
 msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
-msgstr "위임 속성은 바인딩 어노테이션을 지정할 수 도 있습니다. 그 후 데코레이터는 동일한 바인딩을 사용하여 Web Beans로 바운딩되게 됩니다. "
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
-
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
 msgstr "데코레이터는 다음과 같은 사항이 있는 Web Bean으로 바인딩됩니다: "
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
 msgstr "API 유형과 같은 위임 속성 유형 "
 
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
 msgstr "위임 속성에 의해 명시된 모든 바인딩 유형     "
 
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
+#: decorators.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
-msgstr "데코레이터는 위임 속성을 호출할 수 있으며, 인터셉터에서 <literal>InvocationContext.proceed()</literal>를 호출하는 것과 동일한 영향을 미칩니다. "
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"이러한 위임 속성은 <literal>Account</literal>를 구현하는 모든 Web Beans로 바"
+"인딩하는 데코레이터를 지정합니다. "
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"위임 속성은 바인딩 어노테이션을 지정할 수 도 있습니다. 그 후 데코레이터는 동"
+"일한 바인딩을 사용하여 Web Beans로 바운딩되게 됩니다. "
+
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"데코레이터는 위임 속성을 호출할 수 있으며, 인터셉터에서 "
+"<literal>InvocationContext.proceed()</literal>를 호출하는 것과 동일한 영향을 "
+"미칩니다. "
+
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "데코레이터 활성화 "
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
 msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
-msgstr "<literal>web-beans.xml</literal>에서 데코레이터를 <emphasis>활성화</emphasis>해야 합니다. "
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
+#: decorators.xml:113
+#, fuzzy, no-c-format
 msgid ""
 "This declaration serves the same purpose for decorators that the "
-"<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "이러한 명시 사항은 데코레이터에 대해 <literal>&lt;Interceptors&gt;</literal> 명시가 인터셉터에 대해 실행하는 것과 동일한 목적을 실행합니다:  "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"이러한 명시 사항은 데코레이터에 대해 <literal>&lt;Interceptors&gt;</literal> "
+"명시가 인터셉터에 대해 실행하는 것과 동일한 목적을 실행합니다:  "
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
 "ensuring deterministic behavior, and"
-msgstr "이는 시스템에서 모든 데코레이터에 대한 전체적인 순서를 지정할 수 있도록 활성화하며, 결정적인 작업를 확인합니다 "
+msgstr ""
+"이는 시스템에서 모든 데코레이터에 대한 전체적인 순서를 지정할 수 있도록 활성"
+"화하며, 결정적인 작업를 확인합니다 "
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
 msgstr "배치시 데코레이터 클래스를 활성화 또는 비활성화하게 합니다.   "
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr "데코레이터를 적용하기 전 해당 방식의 인터셉터를 호출합니다. "
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "모든 데코레이터는 <emphasis>위임 속성</emphasis> 기능을 갖습니다. 위임 속"
+#~ "성의 유형 및 바인딩 유형은 어떤 Web Beans에 데코레이터를 바운딩할 지를 결"
+#~ "정합니다. 위임 속성 유형은 데코레이터에 의해 구현된 모든 인터페이스를 구"
+#~ "현 또는 확장해야 합니다. "
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "<literal>web-beans.xml</literal>에서 데코레이터를 <emphasis>활성화</"
+#~ "emphasis>해야 합니다. "

Added: doc/trunk/reference/ko-KR/dependencies.po
===================================================================
--- doc/trunk/reference/ko-KR/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/ko-KR/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language ko-KR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/ko-KR/ee.po
===================================================================
--- doc/trunk/reference/ko-KR/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ee\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 02:17+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,10 +15,11 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
 #: ee.xml:4
@@ -28,43 +29,92 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
-msgstr "Web Beans는 Java EE 환경으로 완전 통합됩니다. Web Beans는 Java EE 리소스 및 JPA 지속성 컨텍스트로 액세스합니다. 이는 JSF 및 JSP 페이지에서 Unified EL 표현식으로 사용될 수 있습니다. 이는 Web Beans가 아닌 Servlets 및  Message-Driven Beans와 같은 일부 객체로 삽입될 수 도 있습니다. "
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Web Beans는 Java EE 환경으로 완전 통합됩니다. Web Beans는 Java EE 리소스 및 "
+"JPA 지속성 컨텍스트로 액세스합니다. 이는 JSF 및 JSP 페이지에서 Unified EL 표"
+"현식으로 사용될 수 있습니다. 이는 Web Beans가 아닌 Servlets 및  Message-"
+"Driven Beans와 같은 일부 객체로 삽입될 수 도 있습니다. "
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Java EE 리소스를 Web Bean으로 삽입 "
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
 msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:22
+#, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
+msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Java EE 리소스를 Web Bean으로 삽입 "
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
 "examples of this, though we didn't pay much attention at the time:"
-msgstr "모든 엔터프라이즈 Web Beans는 <literal>@Resource</literal>, <literal>@EJB</literal>, <literal>@PersistenceContext</literal>를 사용하여 Java EE 의존성 삽입의 장점을 취할 수 있습니다. 이미 이에 대한 몇몇 예를 살펴보았습니다: "
+msgstr ""
+"모든 엔터프라이즈 Web Beans는 <literal>@Resource</literal>, <literal>@EJB</"
+"literal>, <literal>@PersistenceContext</literal>를 사용하여 Java EE 의존성 삽"
+"입의 장점을 취할 수 있습니다. 이미 이에 대한 몇몇 예를 살펴보았습니다: "
 
 #. Tag: programlisting
-#: ee.xml:19
-#, no-c-format
+#: ee.xml:56
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -78,17 +128,14 @@
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -102,64 +149,67 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
+#: ee.xml:60
+#, fuzzy, no-c-format
 msgid ""
 "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
-msgstr "Java EE <literal>@PostConstruct</literal> 및 <literal>@PreDestroy</literal> 콜백은 모든 엔터프라이즈 Web Beans에 대해 지원됩니다. <emphasis>모든</emphasis> 삽입이 실행된 후 <literal>@PostConstruct</literal> 방식이 호출됩니다. "
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"Java EE <literal>@PostConstruct</literal> 및 <literal>@PreDestroy</literal> "
+"콜백은 모든 엔터프라이즈 Web Beans에 대해 지원됩니다. <emphasis>모든</"
+"emphasis> 삽입이 실행된 후 <literal>@PostConstruct</literal> 방식이 호출됩니"
+"다. "
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
 msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
 msgstr ""
-"여기서 유의해야 할 한 가지 제한 사항이 있습니다: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal>는 단순한 Web Beans에 대해 지원되지 않습니다. "
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Servlet에서 Web Bean 호출 "
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
+#: ee.xml:76
+#, fuzzy, no-c-format
 msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
-msgstr "Java EE 6에 있는 Servlet에서 Web Bean을 사용하기가 쉽습니다. Web Beans 영역 또는 초기화 방식 삽입을 사용하여 Web Bean을 삽입합니다. "
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"Java EE 6에 있는 Servlet에서 Web Bean을 사용하기가 쉽습니다. Web Beans 영역 "
+"또는 초기화 방식 삽입을 사용하여 Web Bean을 삽입합니다. "
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse "
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
 "response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -184,52 +234,53 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
+#: ee.xml:83
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
-msgstr "Web Beans 클라이언트 프록시는 Servlet에서 현재 요청 및 메소드 HTTP 세션의 올바른 <literal>Credentials</literal> 및 <literal>Login</literal> 인스턴스로 호출을 라우팅을 처리합니다.  "
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Web Beans 클라이언트 프록시는 Servlet에서 현재 요청 및 메소드 HTTP 세션의 올"
+"바른 <literal>Credentials</literal> 및 <literal>Login</literal> 인스턴스로 호"
+"출을 라우팅을 처리합니다.  "
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Message-Driven Bean에서 Web Bean 호출 "
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
 msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
-msgstr "Web Beans 삽입은 모든 EJB에 적용되며, Web Bean 관리자 제어 하에 있지 않을 경우에도 (예들 들어, JNDI lookup에 의해 획득되었거나 <literal>@EJB</literal>를 사용하여 삽입되었을 경우) 적용됩니다. 특히, Message-Driven Beans에서 Web Beans 삽입을 사용할 수 있으며, 이를 삽입할 수 없기 때문에 이는 Web Beans를 고려하지 않습니다. "
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Message-Driven Beans에 대한 Web Beans 인터셉터 바인딩을 사용할 수 있습니다.  "
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Message-Driven Beans에 대한 Web Beans 인터셉터 바인딩을 사용할 수 있습니다.  "
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -244,31 +295,33 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
+#: ee.xml:103
+#, fuzzy, no-c-format
 msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
 msgstr ""
-"따라서, Web Beans 환경에서 메세지를 받는 것은 초간편합니다. 하지만 메세지가 Message-Driven Bean으로 전달될 때 사용할 수 있는 세션 또는 대화 컨텍스트가 없음에 유의하시기 바랍니다. <literal>@RequestScoped</"
-"literal> 및 <literal>@ApplicationScoped</literal> Web Beans 만을 사용할 수 있습니다. "
+"따라서, Web Beans 환경에서 메세지를 받는 것은 초간편합니다. 하지만 메세지가 "
+"Message-Driven Bean으로 전달될 때 사용할 수 있는 세션 또는 대화 컨텍스트가 없"
+"음에 유의하시기 바랍니다. <literal>@RequestScoped</literal> 및 "
+"<literal>@ApplicationScoped</literal> Web Beans 만을 사용할 수 있습니다. "
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "또한 Web Beans를 사용하여 메세지를 전송하기 쉽습니다.  "
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "JMS 엔드포인트  "
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
 msgid ""
 "Sending messages using JMS can be quite complex, because of the number of "
@@ -281,85 +334,95 @@
 "literal>. Each of these objects has its own lifecycle and threading model "
 "that we need to worry about."
 msgstr ""
-"JMS를 사용하여 메세지를 전송하는 것은 다소 복잡할 수 있습니다. 이는 다수의 다른 개체를 처리해야 하기 때문입니다. 큐의 경우 <literal>Queue</"
-"literal>, <literal>QueueConnectionFactory</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> <literal>QueueSender</literal>를 갖습니다. 토픽의 경우 <literal>Topic</literal>, "
+"JMS를 사용하여 메세지를 전송하는 것은 다소 복잡할 수 있습니다. 이는 다수의 다"
+"른 개체를 처리해야 하기 때문입니다. 큐의 경우 <literal>Queue</literal>, "
+"<literal>QueueConnectionFactory</literal>, <literal>QueueConnection</"
+"literal>, <literal>QueueSession</literal> <literal>QueueSender</literal>를 갖"
+"습니다. 토픽의 경우 <literal>Topic</literal>, "
 "<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
-"literal>, <literal>TopicSession</literal>, <literal>TopicPublisher</literal>를 갖습니다. 이러한 각각의 객체는 자체적으로 수명 주기 및 스레딩 모델을 갖고 있습니다.   "
+"literal>, <literal>TopicSession</literal>, <literal>TopicPublisher</literal>"
+"를 갖습니다. 이러한 각각의 객체는 자체적으로 수명 주기 및 스레딩 모델을 갖고 "
+"있습니다.   "
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
 msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
-msgstr "Web Beans는 이러한 모든 것을 처리합니다. 여기서 처리해야 할 사항은 <literal>web-beans.xml</literal>에 있는 큐 또는 토픽을 명명하고 관련된 바인딩 유형 및 연결 팩토리를 지정하는 것입니다.  "
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
-msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
 msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
 msgstr ""
-"이제 큐의 경우  <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal>, "
-"<literal>QueueSender</literal>를 삽입할 수 있고, 토픽의 경우 <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> "
-"<literal>TopicPublisher</literal>를 삽입할 수 있습니다. "
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -370,59 +433,142 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
-msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-
 #. Tag: para
-#: ee.xml:100
-#, no-c-format
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
 "The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
-msgstr "삽입된 JMS 객체의 수명주기는 Web Bean 관리자에 의해 전적으로 관리됩니다. "
+"container."
+msgstr ""
+"삽입된 JMS 객체의 수명주기는 Web Bean 관리자에 의해 전적으로 관리됩니다. "
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "패키징 및 배포 "
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
+#: ee.xml:153
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
 msgstr ""
-"Web Beans는 특정 배포 아카이브를 지정하지 않습니다. JAR, EJB-JAR 또는 WAR에 있는 Web Beans  &#151;  애플리케이션 classpath에 있는 배포 위치를 패키지화할 수 있습니다. 하지만 Web Beans이 있는 각각의 아카이브에는  <literal>META-INF</literal> 또는 <literal>WEB-INF</literal> 디렉토리에 있는 <literal>web-beans.xml</literal>라는 파일이 들어 있어야 합니다. 파일은 비어 있을 수 도 있습니다. <literal>web-beans."
-"xml</literal> 파일이 없는 아카이브에 배포된 Web Beans는 애플리케이션에서 사용할 수 없습니다. "
+"Web Beans는 특정 배포 아카이브를 지정하지 않습니다. JAR, EJB-JAR 또는 WAR에 "
+"있는 Web Beans  &#151;  애플리케이션 classpath에 있는 배포 위치를 패키지화할 "
+"수 있습니다. 하지만 Web Beans이 있는 각각의 아카이브에는  <literal>META-INF</"
+"literal> 또는 <literal>WEB-INF</literal> 디렉토리에 있는 <literal>web-beans."
+"xml</literal>라는 파일이 들어 있어야 합니다. 파일은 비어 있을 수 도 있습니"
+"다. <literal>web-beans.xml</literal> 파일이 없는 아카이브에 배포된 Web Beans"
+"는 애플리케이션에서 사용할 수 없습니다. "
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
+#: ee.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Java SE 실행의 경우, 임베드 가능한 EJB Lite 컨테이너에 의해 실행용 EJB를 배포할 수 있는 위치에 Web Beans를 배포할 수 있습니다. 각 위치에서는 <literal>web-beans.xml</literal> 파일이 들어 있어야 합니다.     "
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Java SE 실행의 경우, 임베드 가능한 EJB Lite 컨테이너에 의해 실행용 EJB를 배포"
+"할 수 있는 위치에 Web Beans를 배포할 수 있습니다. 각 위치에서는 <literal>web-"
+"beans.xml</literal> 파일이 들어 있어야 합니다.     "
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "여기서 유의해야 할 한 가지 제한 사항이 있습니다: "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal>는 단순한 Web Beans"
+#~ "에 대해 지원되지 않습니다. "
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Web Beans 삽입은 모든 EJB에 적용되며, Web Bean 관리자 제어 하에 있지 않을 "
+#~ "경우에도 (예들 들어, JNDI lookup에 의해 획득되었거나 <literal>@EJB</"
+#~ "literal>를 사용하여 삽입되었을 경우) 적용됩니다. 특히, Message-Driven "
+#~ "Beans에서 Web Beans 삽입을 사용할 수 있으며, 이를 삽입할 수 없기 때문에 이"
+#~ "는 Web Beans를 고려하지 않습니다. "
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "또한 Web Beans를 사용하여 메세지를 전송하기 쉽습니다.  "
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Web Beans는 이러한 모든 것을 처리합니다. 여기서 처리해야 할 사항은 "
+#~ "<literal>web-beans.xml</literal>에 있는 큐 또는 토픽을 명명하고 관련된 바"
+#~ "인딩 유형 및 연결 팩토리를 지정하는 것입니다.  "
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "이제 큐의 경우  <literal>Queue</literal>, <literal>QueueConnection</"
+#~ "literal>, <literal>QueueSession</literal>, <literal>QueueSender</literal>"
+#~ "를 삽입할 수 있고, 토픽의 경우 <literal>Topic</literal>, "
+#~ "<literal>TopicConnection</literal>, <literal>TopicSession</literal> "
+#~ "<literal>TopicPublisher</literal>를 삽입할 수 있습니다. "
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/ko-KR/environments.po
===================================================================
--- doc/trunk/reference/ko-KR/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/ko-KR/events.po
===================================================================
--- doc/trunk/reference/ko-KR/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:16+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
@@ -27,6 +27,7 @@
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
 #: events.xml:4
@@ -38,96 +39,141 @@
 #: events.xml:6
 #, no-c-format
 msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
-msgstr "Web Beans 이벤트 통지 기능은 Web Beans가 완전 연결 해제 방식으로 상호 작용하게 합니다. 이벤트 <emphasis>생산자</emphasis>는 이벤트를 제기한 후 Web Bean 관리자에 의해 이벤트 <emphasis>옵저버</emphasis>로 전달합니다. 이러한 기본적인 스키마는 옵저버/옵저버 패턴과 유사하게 들이지만, 몇 가지 다른 부분이 있습니다:  "
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
 msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:18
+#, no-c-format
+msgid ""
 "not only are event producers decoupled from observers; observers are "
 "completely decoupled from producers,"
-msgstr "이벤트 생산자만 옵저버에서 연결 해제되는 것이 아니라; 옵저버도 생산자에서 완전하게 연결 해제됩니다. "
+msgstr ""
+"이벤트 생산자만 옵저버에서 연결 해제되는 것이 아니라; 옵저버도 생산자에서 완"
+"전하게 연결 해제됩니다. "
 
 #. Tag: para
-#: events.xml:18
+#: events.xml:22
 #, no-c-format
 msgid ""
 "observers can specify a combination of \"selectors\" to narrow the set of "
 "event notifications they will receive, and"
-msgstr "옵저버는 \"선택자\" 조합을 지정하여 이벤트 통지 모음의 범위를 좁힙니다. "
+msgstr ""
+"옵저버는 \"선택자\" 조합을 지정하여 이벤트 통지 모음의 범위를 좁힙니다. "
 
 #. Tag: para
-#: events.xml:22
-#, no-c-format
+#: events.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
-msgstr "옵저버는 바로 통지하거나 또는 현재 트랜젝션이 끝날때 까지 이벤트 전송이 지연되도록 지정할 수 있습니다.  "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"옵저버는 바로 통지하거나 또는 현재 트랜젝션이 끝날때 까지 이벤트 전송이 지연"
+"되도록 지정할 수 있습니다.  "
 
-#. Tag: title
-#: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "이벤트 옵저버 "
-
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
 msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
-msgstr "<emphasis>옵저버 방식</emphasis>은 매개변수 어노테이션 <literal>@Observes</literal>를 사용하는 Web Bean 방식입니다. "
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "이벤트 생산자 "
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
 msgstr ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
 msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "어노테이션된 매개 변수는 <emphasis>이벤트 매개 변수</emphasis>라고 부릅니다. 이벤트 매개 변수의 유형은 옵저버된 <emphasis>이벤트 유형</emphasis>입니다. 옵저버 방식은  Web Beans 바인딩 유형의 인스터스인 \"선택자\"를 지정할 수 있습니다. 바인딩 유형이 이벤트 선택자로 사용될 경우, 이를 <emphasis>이벤트 바인딩 유형</emphasis>이라고 부릅니다.  "
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
+#. Tag: title
+#: events.xml:57
+#, no-c-format
+msgid "Event observers"
+msgstr "이벤트 옵저버 "
+
 #. Tag: para
-#: events.xml:43
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"<emphasis>옵저버 방식</emphasis>은 매개변수 어노테이션 <literal>@Observes</"
+"literal>를 사용하는 Web Bean 방식입니다. "
+
+#. Tag: programlisting
+#: events.xml:64
 #, no-c-format
 msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
-msgstr "이벤트 매개 변수를 어노테이션하여 옵저버 방식의 이벤트 바인딩을 지정합니다:  "
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
+#. Tag: para
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"어노테이션된 매개 변수는 <emphasis>이벤트 매개 변수</emphasis>라고 부릅니다. "
+"이벤트 매개 변수의 유형은 옵저버된 <emphasis>이벤트 유형</emphasis>입니다. 옵"
+"저버 방식은  Web Beans 바인딩 유형의 인스터스인 \"선택자\"를 지정할 수 있습니"
+"다. 바인딩 유형이 이벤트 선택자로 사용될 경우, 이를 <emphasis>이벤트 바인딩 "
+"유형</emphasis>이라고 부릅니다.  "
+
 #. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:72 events.xml:240
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -137,25 +183,31 @@
 "document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:48
-#, no-c-format
+#: events.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"An observer method need not specify any event bindings &#151; in this case it "
-"is interested in <emphasis>all</emphasis> events of a particular type. If it "
-"does specify event bindings, it is only interested in events which also have "
-"those event bindings."
-msgstr "옵저버 방식은 어떤 이벤트 바인딩도 지정할 필요가 없습니다 &#151; 이러한 경우 특정 유형의 <emphasis>모든</emphasis> 이벤트에 관심을 갖게 됩니다. 이벤트 바인딩을 지정하지 않을 경우, 이러한 이벤트 바인딩이 있는 이벤트에만 관심을 갖게 됩니다.  "
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"옵저버 방식은 어떤 이벤트 바인딩도 지정할 필요가 없습니다 &#151; 이러한 경우 "
+"특정 유형의 <emphasis>모든</emphasis> 이벤트에 관심을 갖게 됩니다. 이벤트 바"
+"인딩을 지정하지 않을 경우, 이러한 이벤트 바인딩이 있는 이벤트에만 관심을 갖"
+"게 됩니다.  "
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
+#: events.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
-msgstr "옵저버 방식은 추가 매개 변수를 갖을 수 있으며, 이는 일반적인 Web Beans 방식 매개 변수 삽입 시멘틱에 따라 삽입됩니다: "
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"옵저버 방식은 추가 매개 변수를 갖을 수 있으며, 이는 일반적인 Web Beans 방식 "
+"매개 변수 삽입 시멘틱에 따라 삽입됩니다: "
 
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -165,228 +217,230 @@
 "document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "이벤트 생산자 "
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
 msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
-msgstr "이벤트 생산자는 삽입을 통해 <emphasis>이벤트 통지</emphasis> 객체를 갖을 수 있습니다: "
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
+#: events.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
-msgstr "<literal>@Observable</literal> 어노테이션은 <literal>@Dependent</literal> 범위 및 <literal>@Standard</literal> 배치 유형, Web Bean 관리자에 의해 제공되는 구현으로 Web Bean을 정의합니다.   "
-
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid ""
 "A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
-msgstr "생산자는 <literal>Event</literal> 인터페이스의 <literal>fire()</literal> 방식을 호출하여 이벤트를 제기하고, <emphasis>이벤트 객체</emphasis>를 전달합니다: "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"생산자는 <literal>Event</literal> 인터페이스의 <literal>fire()</literal> 방식"
+"을 호출하여 이벤트를 제기하고, <emphasis>이벤트 객체</emphasis>를 전달합니"
+"다: "
 
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
-msgstr "이벤트 객체는 와일드카드 유형 매개변수나 또는 유형 변수가 없는 Java 클래스의 인스턴스가 될 수 도 있습니다. 이벤트는 다음과 같은 사항을 갖는 모든 옵저버 방식에 전달됩니다:     "
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "이벤트는 모든 옵저버 방식으로 전달됩니다: "
 
 #. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "이벤트 객체를 할당할 수 있는 이벤트 매개 변수를 갖습니다, "
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "이벤트 바인딩 없음을 지정합니다. "
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
+#: events.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Web Bean 관리자는 모든 옵저버 방식을 호출하여, 이벤트 매개 변수 값으로 이벤트 객체를 전달합니다. 옵저버 방식이 예외 처리를 넘기게 될 경우, Web Bean 관리자는 옵저버 방식 호출을 중단하고 예외 처리는 <literal>fire()</literal> 방식에 의해 다시 넘기게 됩니다. "
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Web Bean 관리자는 모든 옵저버 방식을 호출하여, 이벤트 매개 변수 값으로 이벤"
+"트 객체를 전달합니다. 옵저버 방식이 예외 처리를 넘기게 될 경우, Web Bean 관리"
+"자는 옵저버 방식 호출을 중단하고 예외 처리는 <literal>fire()</literal> 방식"
+"에 의해 다시 넘기게 됩니다. "
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
-msgstr "\"선택자\"를 지정하려면, 이벤트 생산자가 이벤트 바인딩 유형을 <literal>fire()</literal> 방식에 전달해야 합니다: "
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
 msgstr ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
 msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
-msgstr "Java에서 실행하기 어려웠던 도우미 클래스 <literal>AnnotationLiteral</literal>은 바인딩 유형 인라인을 인스턴스화할 수 있게 합니다. "
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "이벤트는 모든 옵저버 방식으로 전달됩니다: "
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
+#: events.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
-msgstr "이는 <literal>fire()</literal>에 전달된 이벤트 바인딩에 대한 모든 이벤트 바인딩 <emphasis>예외 사항</emphasis>을 지정하지 않습니다. "
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"이러한 <literal>Event</literal> 인스턴스를 통해 해제된 모든 이벤트는 어노테이"
+"션된 이벤트 바인딩을 갖습니다. 이벤트는 모든 옵저버 방식에 전달됩니다:   "
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "이벤트 객체를 할당할 수 있는 이벤트 매개 변수를 갖습니다, "
+
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
-msgstr "다른 방법으로 이벤트 바인딩은 이벤트 통지 삽입 지점을 어노테이션하여 지정될 수 도 있습니다:  "
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"이는 <literal>fire()</literal>에 전달된 이벤트 바인딩에 대한 모든 이벤트 바인"
+"딩 <emphasis>예외 사항</emphasis>을 지정하지 않습니다. "
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
 msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
-msgstr "이러한 <literal>Event</literal> 인스턴스를 통해 해제된 모든 이벤트는 어노테이션된 이벤트 바인딩을 갖습니다. 이벤트는 모든 옵저버 방식에 전달됩니다:   "
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
 msgstr ""
-"이는 이벤트 통지 삽입 지점의 어노트에션된 이벤트 바인딩이나 또는 <literal>fire()</literal>에 전달된 이벤트 바인딩에 대한 모든 이벤트 바인딩 "
-"<emphasis>예외 사항</emphasis>을 지정하지 않습니다.  "
 
 #. Tag: title
-#: events.xml:138
-#, no-c-format
-msgid "Registering observers dynamically"
-msgstr "옵저버를 동적으로 등록 "
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "트랜잭션 옵저버 "
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:180
 #, no-c-format
 msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
-msgstr "종종 이벤트 옵저버를 동적으로 등록하는 것이 유용합니다. 애플리케이션은 <literal>Observer</literal> 인터페이스를 구현하고 <literal>observe()</literal> 방식을 호출하여 이벤트 통지와 함께 인스턴스를 등록할 수 있습니다. "
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:144
+#. Tag: para
+#: events.xml:186
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
 
-#. Tag: para
-#: events.xml:146
-#, no-c-format
+#. Tag: programlisting
+#: events.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
 msgstr ""
-"이벤트 바인딩 유형은 인벤트 통지 삽입 지점에 의해 지정되거나 <literal>observe()</"
-"literal> 방식에 이벤트 바인딩 유형 인스턴스를 전달하여 지정할 수 있습니다:  "
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
-#. Tag: programlisting
-#: events.xml:149
+#. Tag: para
+#: events.xml:193
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "멤버와 이벤트 바인딩    "
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "이벤트 바인딩 유형은 어노테이션 멤버를 갖을 수 있습니다:  "
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -397,13 +451,14 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
 msgstr "멤버 값은 옵저버에게 전달되는 메세지의 범위를 좁히는데 사용됩니다:  "
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
 msgid ""
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
@@ -413,78 +468,86 @@
 "{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
+#: events.xml:210
+#, fuzzy, no-c-format
 msgid ""
-"Event binding type members may be specified statically by the event "
+"Event qualifier type members may be specified statically by the event "
 "producer, via annotations at the event notifier injection point:"
-msgstr "이벤트 바인딩 유형 멤버는 이벤트 통지 삽입 지점에 있는 어노테이션을 통해 이벤트 생산자에의해 정적으로 지정될 수 있습니다:  "
+msgstr ""
+"이벤트 바인딩 유형 멤버는 이벤트 통지 삽입 지점에 있는 어노테이션을 통해 이벤"
+"트 생산자에의해 정적으로 지정될 수 있습니다:  "
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
+#: events.xml:217
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
-msgstr "다른 방법으로, 이벤트 바인딩 유형 멤버 값은 이벤트 생산자에 의해 동적으로 지정될 수 있습니다. <literal>AnnotationLiteral</literal>의 추상화 하부클래스를 작성하여 시작합니다: "
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"다른 방법으로, 이벤트 바인딩 유형 멤버 값은 이벤트 생산자에 의해 동적으로 지"
+"정될 수 있습니다. <literal>AnnotationLiteral</literal>의 추상화 하부클래스를 "
+"작성하여 시작합니다: "
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
+#: events.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
+"The event producer passes an instance of this class to <literal>select()</"
 "literal>:"
-msgstr "이벤트 생산자는 이러한 클래스의 인스턴스를 <literal>fire()</literal>로 전달합니다:  "
+msgstr ""
+"이벤트 생산자는 이러한 클래스의 인스턴스를 <literal>fire()</literal>로 전달합"
+"니다:  "
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
+#: events.xml:226
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
 msgstr ""
 "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
 "() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "여러 이벤트 바인딩 "
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "이벤트 바인딩 유형은 통합할 수 있습니다, 예: "
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
@@ -492,15 +555,16 @@
 "AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
 msgid ""
 "When this event occurs, all of the following observer methods will be "
 "notified:"
-msgstr "이러한 이벤트가 발생하면, 다음과 같은 옵저버 방식 모두가 통지되게 됩니다: "
+msgstr ""
+"이러한 이벤트가 발생하면, 다음과 같은 옵저버 방식 모두가 통지되게 됩니다: "
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
@@ -510,7 +574,7 @@
 "document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
@@ -520,7 +584,7 @@
 "{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
@@ -530,13 +594,13 @@
 "{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "트랜잭션 옵저버 "
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
 msgid ""
 "Transactional observers receive their event notifications during the before "
@@ -544,93 +608,114 @@
 "For example, the following observer method needs to refresh a query result "
 "set that is cached in the application context, but only when transactions "
 "that update the <literal>Category</literal> tree succeed:"
-msgstr "트랜잭션 옵저버는 이벤크가 제기된 트랜잭션의 완료 단계 이전 또는 이후 동안 이벤트 통지를 받습니다. 예를 들어, 다음과 같은 옵저버 방식은 트랜잭션이 <literal>Category</literal> 크리를 성공적으로 업데이트했을 경우에만 애플리케이션 컨텍스트에서 캐시된 쿼리 결과 모음을 새로고침해야 합니다:  "
+msgstr ""
+"트랜잭션 옵저버는 이벤크가 제기된 트랜잭션의 완료 단계 이전 또는 이후 동안 이"
+"벤트 통지를 받습니다. 예를 들어, 다음과 같은 옵저버 방식은 트랜잭션이 "
+"<literal>Category</literal> 크리를 성공적으로 업데이트했을 경우에만 애플리케"
+"이션 컨텍스트에서 캐시된 쿼리 결과 모음을 새로고침해야 합니다:  "
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
+#: events.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
 "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
 "CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "세 가지 종류의 트랜잭션 옵저버가 있습니다:  "
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
-msgstr "트랜잭션의 완료 단계 이후 동안 트랜잭션이 성공적으로 완료했을 경우에만, <literal>@AfterTransactionSuccess</literal> 옵저버를 호출합니다.        "
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
+#: events.xml:265
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
-msgstr "트랜잭션의 완료 단계 이후 동안 트랜잭션이 성공적으로 완료하지 않을 경우에만, <literal>@AfterTransactionFailure</literal> 옵저버를 호출합니다.   "
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"트랜잭션의 완료 단계 이후 동안 트랜잭션이 성공적으로 완료했을 경우에만, "
+"<literal>@AfterTransactionSuccess</literal> 옵저버를 호출합니다.        "
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
+#: events.xml:271
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
-msgstr "트랜잭션의 완료 단계 이후 동안 <literal>@AfterTransactionCompletion</literal> 옵저버를 호출합니다  "
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"트랜잭션의 완료 단계 이후 동안 트랜잭션이 성공적으로 완료하지 않을 경우에만, "
+"<literal>@AfterTransactionFailure</literal> 옵저버를 호출합니다.   "
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
+#: events.xml:277
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
-msgstr "트랜잭션의 완료 단계 이전 동안 <literal>@BeforeTransactionCompletion</literal> 옵저버를 호출합니다 "
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"트랜잭션의 완료 단계 이후 동안 <literal>@AfterTransactionCompletion</"
+"literal> 옵저버를 호출합니다  "
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
+#: events.xml:283
+#, fuzzy, no-c-format
 msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
-msgstr "트랜잭션 옵저버는 Web Beans와 같은 상태 유지 객체 모델에서 아주 중요합니다. 이는 단일 원자성 트랜잭션보다 오래 지속되기 때문입니다.    "
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"트랜잭션의 완료 단계 이전 동안 <literal>@BeforeTransactionCompletion</"
+"literal> 옵저버를 호출합니다 "
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"트랜잭션 옵저버는 Web Beans와 같은 상태 유지 객체 모델에서 아주 중요합니다. "
+"이는 단일 원자성 트랜잭션보다 오래 지속되기 때문입니다.    "
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
 msgstr "애플리케이션 범위에 있는 JPA 쿼리 결과 모음을 캐시했다고 가정합니다:  "
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -654,45 +739,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
 msgid ""
 "From time to time, a <literal>Product</literal> is created or deleted. When "
 "this occurs, we need to refresh the <literal>Product</literal> catalog. But "
 "we should wait until <emphasis>after</emphasis> the transaction completes "
 "successfully before performing this refresh!"
-msgstr "때때로 <literal>Product</literal>는 생성 또는 삭제됩니다. 이러한 상황이 발생하면, <literal>Product</literal> 카탈로그를 새로고침해야 합니다. 하지만, 이러한 새로 고침을 실행하기 전 트랜젝션이 성공적으로 <emphasis>완료할 때</emphasis> 까지 기다리셔야 합니다! "
+msgstr ""
+"때때로 <literal>Product</literal>는 생성 또는 삭제됩니다. 이러한 상황이 발생"
+"하면, <literal>Product</literal> 카탈로그를 새로고침해야 합니다. 하지만, 이러"
+"한 새로 고침을 실행하기 전 트랜젝션이 성공적으로 <emphasis>완료할 때</"
+"emphasis> 까지 기다리셔야 합니다! "
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
+#: events.xml:305
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
-msgstr "<literal>Product</literal>를 생성 및 삭제하는 Web Bean은 이벤트를 제기할 수 있습니다, 예:  "
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"<literal>Product</literal>를 생성 및 삭제하는 Web Bean은 이벤트를 제기할 수 "
+"있습니다, 예:  "
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -716,32 +806,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
 msgid ""
 "And now <literal>Catalog</literal> can observe the events after successful "
 "completion of the transaction:"
-msgstr "<literal>Catalog</literal>는 트랜잭션을 성공적으로 완료한 후에 이벤트를 옵저버할 수 있습니다: "
+msgstr ""
+"<literal>Catalog</literal>는 트랜잭션을 성공적으로 완료한 후에 이벤트를 옵저"
+"버할 수 있습니다: "
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
 "product) {\n"
-"        products.add(product);\n"
-"    }\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
 "product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -761,3 +850,120 @@
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Web Beans 이벤트 통지 기능은 Web Beans가 완전 연결 해제 방식으로 상호 작용"
+#~ "하게 합니다. 이벤트 <emphasis>생산자</emphasis>는 이벤트를 제기한 후 Web "
+#~ "Bean 관리자에 의해 이벤트 <emphasis>옵저버</emphasis>로 전달합니다. 이러"
+#~ "한 기본적인 스키마는 옵저버/옵저버 패턴과 유사하게 들이지만, 몇 가지 다른 "
+#~ "부분이 있습니다:  "
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "이벤트 매개 변수를 어노테이션하여 옵저버 방식의 이벤트 바인딩을 지정합니"
+#~ "다:  "
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "이벤트 생산자는 삽입을 통해 <emphasis>이벤트 통지</emphasis> 객체를 갖을 "
+#~ "수 있습니다: "
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "<literal>@Observable</literal> 어노테이션은 <literal>@Dependent</literal> "
+#~ "범위 및 <literal>@Standard</literal> 배치 유형, Web Bean 관리자에 의해 제"
+#~ "공되는 구현으로 Web Bean을 정의합니다.   "
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "이벤트 객체는 와일드카드 유형 매개변수나 또는 유형 변수가 없는 Java 클래스"
+#~ "의 인스턴스가 될 수 도 있습니다. 이벤트는 다음과 같은 사항을 갖는 모든 옵"
+#~ "저버 방식에 전달됩니다:     "
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "\"선택자\"를 지정하려면, 이벤트 생산자가 이벤트 바인딩 유형을 "
+#~ "<literal>fire()</literal> 방식에 전달해야 합니다: "
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "Java에서 실행하기 어려웠던 도우미 클래스 <literal>AnnotationLiteral</"
+#~ "literal>은 바인딩 유형 인라인을 인스턴스화할 수 있게 합니다. "
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "다른 방법으로 이벤트 바인딩은 이벤트 통지 삽입 지점을 어노테이션하여 지정"
+#~ "될 수 도 있습니다:  "
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "이는 이벤트 통지 삽입 지점의 어노트에션된 이벤트 바인딩이나 또는 "
+#~ "<literal>fire()</literal>에 전달된 이벤트 바인딩에 대한 모든 이벤트 바인"
+#~ "딩 <emphasis>예외 사항</emphasis>을 지정하지 않습니다.  "
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "옵저버를 동적으로 등록 "
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "종종 이벤트 옵저버를 동적으로 등록하는 것이 유용합니다. 애플리케이션은 "
+#~ "<literal>Observer</literal> 인터페이스를 구현하고 <literal>observe()</"
+#~ "literal> 방식을 호출하여 이벤트 통지와 함께 인스턴스를 등록할 수 있습니"
+#~ "다. "
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "이벤트 바인딩 유형은 인벤트 통지 삽입 지점에 의해 지정되거나 "
+#~ "<literal>observe()</literal> 방식에 이벤트 바인딩 유형 인스턴스를 전달하"
+#~ "여 지정할 수 있습니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/ko-KR/example.po
===================================================================
--- doc/trunk/reference/ko-KR/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-14 15:00+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,11 +15,12 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
 #: example.xml:4
@@ -29,20 +30,22 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Let's illustrate these ideas with a full example. We're going to implement "
 "user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
-msgstr "이러한 웹 애플리케이션의 예를 살펴봅시다. JSF를 사용하는 애플리케이션의 사용자 로그인/로그아웃을 구현할 것입니다. 먼저, 로그인시 입력한 사용자 이름 및 암호를 보유하기 위해 Web Bean을 정의합니다: "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"이러한 웹 애플리케이션의 예를 살펴봅시다. JSF를 사용하는 애플리케이션의 사용"
+"자 로그인/로그아웃을 구현할 것입니다. 먼저, 로그인시 입력한 사용자 이름 및 암"
+"호를 보유하기 위해 Web Bean을 정의합니다: "
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -51,7 +54,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -70,24 +72,24 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
 msgstr "Web Bean은 다음과 같은 JSF 형식에서 로그인 프롬프트로 바운딩됩니다: "
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
 "login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
@@ -106,51 +108,54 @@
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
-msgstr "현재 로그인 사용자에 관한 정보를 관리하는 Web Bean 세션 범위에 의해 실제 작업이 완료되어 다른 Web Beans에 <literal>User</literal> 엔티티를 노출시킵니다:  "
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"현재 로그인 사용자에 관한 정보를 관리하는 Web Bean 세션 범위에 의해 실제 작업"
+"이 완료되어 다른 Web Beans에 <literal>User</literal> 엔티티를 노출시킵니다:  "
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -192,19 +197,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "<literal>@LoggedIn</literal>은 바인딩 어노테이션입니다: "
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -212,26 +233,43 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "기타 다른 Web Bean은 현재 사용자를 쉽게 삽입할 수 있습니다:  "
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr "기타 다른 Web Bean은 현재 사용자를 쉽게 삽입할 수 있습니다:  "
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -248,11 +286,29 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
 msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
-msgstr "이러한 예가 Web Bean 프로그래밍 모델의 맛을 보는 계기가 되었으면 합니다. 다음 부분에서는 Web Beans 의존성 삽입에 대해 자세히 살펴보겠습니다. "
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
 
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"이러한 예가 Web Bean 프로그래밍 모델의 맛을 보는 계기가 되었으면 합니다. 다"
+"음 부분에서는 Web Beans 의존성 삽입에 대해 자세히 살펴보겠습니다. "
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr "<literal>@LoggedIn</literal>은 바인딩 어노테이션입니다: "

Modified: doc/trunk/reference/ko-KR/extend.po
===================================================================
--- doc/trunk/reference/ko-KR/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: extend\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:05+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,38 +15,42 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Web Beans 확장 "
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
+#: extend.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
-msgstr "Web Beans는 다른 기술과의 통합, 확장, 프레임워크에 대한 플랫폼이 되기 위한 것입니다. 따라서, Web Beans는 Web Beans로의 휴대용 확장에 대한 개발자의 사용을 위해 SPI 모음을 노출합니다. 예를 들어, 다음과 같은 종류의 확장은 Web Beans 개발자에 의해 구상되었습니다. "
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beans는 다른 기술과의 통합, 확장, 프레임워크에 대한 플랫폼이 되기 위한 것"
+"입니다. 따라서, Web Beans는 Web Beans로의 휴대용 확장에 대한 개발자의 사용을 "
+"위해 SPI 모음을 노출합니다. 예를 들어, 다음과 같은 종류의 확장은 Web Beans 개"
+"발자에 의해 구상되었습니다. "
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "비지니스 프로세스 관리 엔진과의 통합 "
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
 msgid ""
 "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
@@ -54,282 +58,245 @@
 msgstr " Spring, Seam, GWT, Wicket과 같은 제삼자 프레임워크와의 통합 "
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "Web Beans 프로그래밍 모델을 기반으로 하는 새로운 기술 "
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
 msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
 "object."
 msgstr "Web Beans 확장의 중심은 <literal>Manager</literal> 객체입니다.  "
 
 #. Tag: title
-#: extend.xml:29
-#, no-c-format
-msgid "The <literal>Manager</literal> object"
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
 msgstr "<literal>Manager</literal> 객체 "
 
 #. Tag: para
-#: extend.xml:31
-#, no-c-format
+#: extend.xml:64
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "<literal>Manager</literal> 인터페이스는 Web Beans, 인터셉터, 데코레이터, 옵저버 및 컨텍스트를 프로그램적으로 획득하여 등록할 수 있게 합니다. "
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"<literal>Manager</literal> 인터페이스는 Web Beans, 인터셉터, 데코레이터, 옵저"
+"버 및 컨텍스트를 프로그램적으로 획득하여 등록할 수 있게 합니다. "
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
 msgstr "삽입을 통해 <literal>Manager</literal> 인스턴스를 얻을 수 있습니다: "
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "<literal>Bean</literal> 클래스 "
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
+#: extend.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
-msgstr "<literal>Bean</literal> 추상 클래스의 인스턴스는 Web Beans를 나타냅니다. 애플리케이션에 있는 모든 Web Bean에 해당하는 <literal>Manager</literal> 객체로 등록된 <literal>Bean</literal> 인스턴스가 있습니다.  "
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr "Web Beans 확장의 중심은 <literal>Manager</literal> 객체입니다.  "
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "<literal>Context</literal> 인터페이스 "
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"<literal>Bean</literal> 추상 클래스의 인스턴스는 Web Beans를 나타냅니다. 애플"
+"리케이션에 있는 모든 Web Bean에 해당하는 <literal>Manager</literal> 객체로 등"
+"록된 <literal>Bean</literal> 인스턴스가 있습니다.  "
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
+#: extend.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
-msgstr "Web Beans 사양 (심플 Web Beans 및 엔터프라이즈 Web Beans, 생산자 방식 및 JMS 엔드포인트)에 의해 정의된 것 이상으로 새로운 종류의 Web Beans을 지원하기 위해 <literal>Bean</literal> 클래스를 확장하고 <literal>Manager.addBean()</literal>를 호출하여 인스턴스를 등록할 수 있습니다. 예를 들어, <literal>Bean</literal> 클래스를 사용하여 Web Beans에 주입된 다른 프레임워크에 의해 관리되는 객체를 허용하게 할 수 있습니다. "
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"Web Beans 사양 (심플 Web Beans 및 엔터프라이즈 Web Beans, 생산자 방식 및 JMS "
+"엔드포인트)에 의해 정의된 것 이상으로 새로운 종류의 Web Beans을 지원하기 위"
+"해 <literal>Bean</literal> 클래스를 확장하고 <literal>Manager.addBean()</"
+"literal>를 호출하여 인스턴스를 등록할 수 있습니다. 예를 들어, <literal>Bean</"
+"literal> 클래스를 사용하여 Web Beans에 주입된 다른 프레임워크에 의해 관리되"
+"는 객체를 허용하게 할 수 있습니다. "
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
+#: extend.xml:104
+#, fuzzy, no-c-format
 msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
 "specification: <literal>Interceptor</literal> and <literal>Decorator</"
 "literal>."
-msgstr "Web Beans 사양에 의해 정의되는 두 개의 <literal>Bean</literal> 하부 클래스가 있습니다: <literal>Interceptor</literal> 및 <literal>Decorator</literal>. "
+msgstr ""
+"Web Beans 사양에 의해 정의되는 두 개의 <literal>Bean</literal> 하부 클래스가 "
+"있습니다: <literal>Interceptor</literal> 및 <literal>Decorator</literal>. "
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "<literal>Context</literal> 인터페이스 "
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
+#: extend.xml:114
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
-msgstr "<literal>Context</literal> 인터페이스는 Web Beans에 새로운 범위를 추가로 지원하거나 새로운 환경에 내장된 범위를 확장 지원합니다.  "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"<literal>Context</literal> 인터페이스는 Web Beans에 새로운 범위를 추가로 지원"
+"하거나 새로운 환경에 내장된 범위를 확장 지원합니다.  "
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -342,11 +309,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
+#: extend.xml:121
+#, fuzzy, no-c-format
 msgid ""
 "For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
-msgstr "예를 들어, Web Beans에 비지니스 프로세스 범위를 추가하거나 또는 Wicket을 사용하는 애플리케이션에 컨버세이션 범위에 대한 지원을 추가하기 위해 <literal>Context</literal>를 구현할 수 있습니다. "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"예를 들어, Web Beans에 비지니스 프로세스 범위를 추가하거나 또는 Wicket을 사용"
+"하는 애플리케이션에 컨버세이션 범위에 대한 지원을 추가하기 위해 "
+"<literal>Context</literal>를 구현할 수 있습니다. "
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Web Beans 확장 "
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "<literal>Bean</literal> 클래스 "
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/ko-KR/extensions.po
===================================================================
--- doc/trunk/reference/ko-KR/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/ko-KR/gettingstarted.po
===================================================================
--- doc/trunk/reference/ko-KR/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:14+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -26,2221 +26,2141 @@
 "\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
-#, fuzzy, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "Web Beans 참조 구현 "
-
-#. Tag: para
-#: gettingstarted.xml:6
-#, fuzzy, no-c-format
-msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+#: gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Weld"
 msgstr ""
-"Web Beans 참조 구현 (Web Beans Reference Implementation)은 <ulink url="
-"\"http://seamframework.org/WebBeans\">Seam 프로젝트</ulink>에서 개발되고 있습"
-"니다. <ulink url=\"http://seamframework.org/Download\">다운로드 페이지</"
-"ulink>에서 최신 개발자 릴리즈를 다운로드하실 수 있습니다.   "
 
 #. Tag: para
-#: gettingstarted.xml:13
-#, fuzzy, no-c-format
+#: gettingstarted.xml:7
+#, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
-"Web Beans RI는 배치 가능한 두 가지 애플리케이션 예로 되어 있습니다: war 예에"
-"는 심플 beans 만이 들어 있는 <literal>webbeans-numberguess</literal>가 있고 "
-"ear 예에는 엔터프라이즈 beans가 들어 있는 <literal>webbeans-translator</"
-"literal>가 있습니다. 예를 실행하려면, 다음 사항이 필요합니다:           "
 
 #. Tag: para
-#: gettingstarted.xml:25
-#, fuzzy, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "최신 Web Beans RI 릴리즈 "
-
-#. Tag: para
-#: gettingstarted.xml:28
-#, fuzzy, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.0.GA, 및 "
-
-#. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:16
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid ""
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:34
-#, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0."
-
 #. Tag: title
-#: gettingstarted.xml:39
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid "Prerequisites"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
-#, fuzzy, no-c-format
+#: gettingstarted.xml:24
+#, no-c-format
 msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
 msgstr ""
-"현재, Web Beans RI는 JBoss Application Server 5에서만 실행됩니다. <ulink url="
-"\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>에서 JBoss AS "
-"5.0.0.GA를 다운로드하여 압축 풀기를 합니다. 예:   "
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:30
 #, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
+msgid "the latest release of Weld, which contains the examples"
+msgstr "최신 Web Beans RI 릴리즈 "
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
-#, fuzzy, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+#: gettingstarted.xml:33
+#, no-c-format
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
-"다음으로 <ulink url=\"http://seamframework.org/Download\">seamframework.org</"
-"ulink>에서 Web Beans RI를 다운로드하여 압축 풀기를 합니다. 예: "
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+#. Tag: para
+#: gettingstarted.xml:36
+#, no-c-format
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
-"다음으로, JBoss가 위치해 있는 곳을 Web Beans에게 알려야 합니다. "
-"<literal>jboss-as/build.properties</literal>를 편집하고 <literal>jboss.home</"
-"literal> 속성을 설정합니다. 예: "
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, fuzzy, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
-#, fuzzy, no-c-format
-msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+#: gettingstarted.xml:42
+#, no-c-format
+msgid "GlassFish 3.0,"
 msgstr ""
-"업데이트를 설치하려면, Ant 1.7.0을 설치하고 <literal>ANT_HOME</literal> 환경 "
-"변수 모음을 설치합니다. 예:  "
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:45
 #, no-c-format
-msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
-#, fuzzy, no-c-format
+#: gettingstarted.xml:53
+#, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"그 다음 업데이트를 설치하실 수 있습니다. 업데이트 스크립트는 Maven을 사용하"
-"여 Web Beans 및 EJB3를 자동으로 다운로드합니다. "
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, fuzzy, no-c-format
-msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
-msgstr ""
-"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
-"$ ant update"
-
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:58
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "이제, 첫번째 예제를 배치할 준비가 되었습니다!      "
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, fuzzy, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
-"예제 용 작성 스크립트는 여러 대상을 제공합니다. 이에는 다음과 같은 것이 있습"
-"니다:   "
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:64
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid ""
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
-"<literal>ant restart</literal> - exploded 형식으로 예제를 배치합니다      "
 
 #. Tag: para
-#: gettingstarted.xml:104
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
-"<literal>ant explode</literal> - 배치 버전을 다시 시작하지 않고 exploded 예제"
-"를 업데이트합니다     "
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:76
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
-"<literal>ant deploy</literal> - 압축된 jar 포맷으로 예제를 배치합니다   "
 
-#. Tag: para
-#: gettingstarted.xml:115
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - 서버에서 예제를 제거합니다 "
+msgid "Deploying to JBoss AS"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:120
+#: gettingstarted.xml:83
 #, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - 예제를 지웁니다 "
+msgid ""
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "numberguess 예제를 배치하려면:    "
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"$ cd examples/numberguess\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:108
 #, fuzzy, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr ""
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "이제, 첫번째 예제를 배치할 준비가 되었습니다!      "
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
 msgstr ""
-"애플리케이션이 배치되면 <ulink url=\"http://localhost:8080/webbeans-"
-"numberguess\"></ulink>에서 살펴보시기 바랍니다!   "
 
-#. Tag: para
-#: gettingstarted.xml:150
+#. Tag: programlisting
+#: gettingstarted.xml:119
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
-"Web Beans RI에는 텍스트를 라틴어로 번역하는 두 번째 예제가 있습니다. "
-"numberguess 예제는 war 예제로 심플 beans 만을 사용합니다; 번역 예제는 ear 예"
-"제로 엔터프라이즈 beans에 포함되어 EJB 모듈에 패키지되어 있습니다. 이를 꺼내"
-"려면 다음을 실행합니다:      "
+"$ cd examples/numberguess\n"
+"ant deploy"
 
+#. Tag: para
+#: gettingstarted.xml:121
+#, no-c-format
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
+
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:125
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+msgid "a Windows command window:"
 msgstr ""
-"애플리케이션이 배치되면 <ulink url=\"http://localhost:8080/webbeans-"
-"translator\"></ulink>에 가보십시오!   "
 
-#. Tag: title
-#: gettingstarted.xml:167
+#. Tag: programlisting
+#: gettingstarted.xml:131
 #, no-c-format
-msgid "Using Apache Tomcat 6.0"
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:169
-#, fuzzy, no-c-format
-msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
+#: gettingstarted.xml:133 gettingstarted.xml:375
+#, no-c-format
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
-"다음으로 <ulink url=\"http://seamframework.org/Download\">seamframework.org</"
-"ulink>에서 Web Beans RI를 다운로드하여 압축 풀기를 합니다. 예: "
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
-#, fuzzy, no-c-format
+#. Tag: para
+#: gettingstarted.xml:138
+#, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:185
-#, fuzzy, no-c-format
+#: gettingstarted.xml:145
+#, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
-"다음으로, JBoss가 위치해 있는 곳을 Web Beans에게 알려야 합니다. "
-"<literal>jboss-as/build.properties</literal>를 편집하고 <literal>jboss.home</"
-"literal> 속성을 설정합니다. 예: "
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
-#, fuzzy, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:194
-#, fuzzy, no-c-format
+#: gettingstarted.xml:152
+#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
-"예제 용 작성 스크립트는 여러 대상을 제공합니다. 이에는 다음과 같은 것이 있습"
-"니다:   "
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:158
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
 "<literal>ant restart</literal> - exploded 형식으로 예제를 배치합니다      "
 
 #. Tag: para
-#: gettingstarted.xml:206
-#, fuzzy, no-c-format
+#: gettingstarted.xml:163
+#, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"<literal>ant explode</literal> - update an exploded example, without "
 "restarting the deployment"
 msgstr ""
 "<literal>ant explode</literal> - 배치 버전을 다시 시작하지 않고 exploded 예제"
 "를 업데이트합니다     "
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
 "<literal>ant deploy</literal> - 압축된 jar 포맷으로 예제를 배치합니다   "
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
-msgstr ""
-"<literal>ant deploy</literal> - 압축된 jar 포맷으로 예제를 배치합니다   "
-
-#. Tag: para
-#: gettingstarted.xml:222
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr "<literal>ant undeploy</literal> - 서버에서 예제를 제거합니다 "
 
 #. Tag: para
-#: gettingstarted.xml:227
-#, fuzzy, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#: gettingstarted.xml:178
+#, no-c-format
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr "<literal>ant clean</literal> - 예제를 지웁니다 "
 
 #. Tag: para
-#: gettingstarted.xml:234
-#, fuzzy, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "numberguess 예제를 배치하려면:    "
+#: gettingstarted.xml:185
+#, no-c-format
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
+#: gettingstarted.xml:191
 #, fuzzy, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/translator\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "Start Tomcat:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
+#. Tag: para
+#: gettingstarted.xml:200
 #, fuzzy, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
+msgstr ""
+"url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
+"localhost:8080/webbeans-translator</ulink>)을 제공하는 컨텍스트 경로를 설정합"
+"니다.  "
 
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:206
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:260
+#: gettingstarted.xml:213
 #, no-c-format
-msgid "Using GlassFish"
+msgid "Deploying to GlassFish"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:215
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr "numberguess 예제 "
-
 #. Tag: para
-#: gettingstarted.xml:268
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
-"numberguess 애플리케이션에서 1에서 100사이의 숫자를 알아내기 위해 주어진 10 "
-"번을 시도하게 됩니다. 각각 시도한 후 숫자가 너무 높은지 또는 너무 낮은지를 알"
-"려주게 됩니다. "
 
-#. Tag: para
-#: gettingstarted.xml:274
+#. Tag: programlisting
+#: gettingstarted.xml:231
 #, no-c-format
 msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"numberguess 예제는 여러 Web Beans, 설정 파일, Facelet JSF 페이지로 구성되어 "
-"있으며, war로 패키지되어 있습니다 설정 파일부터 시작합시다. "
 
 #. Tag: para
-#: gettingstarted.xml:280
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
-"예제에 해당하는 모든 설정 파일은 <literal>WEB-INF/</literal>에 위치해 있으"
-"며, 이는 소스 트리에 있는 <literal>WebContent</literal>에 저장되어 있습니다. "
-"먼저, <literal>faces-config.xml</literal>을 사용하여, Facelets를 사용할 JSF"
-"를 알려주게 됩니다:   "
 
-#. Tag: programlisting
-#: gettingstarted.xml:288
+#. Tag: para
+#: gettingstarted.xml:240
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
-#. Tag: para
-#: gettingstarted.xml:290
+#. Tag: programlisting
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"여기에는 빈 <literal>web-beans.xml</literal> 파일이 있어, 이는 Web Beans 애플"
-"리케이션으로 애플리케이션을 표시합니다. "
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:248
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "마지막으로, <literal>web.xml</literal> 파일이 있습니다:  "
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, fuzzy, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
-"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"the Web Beans RI with any Servlet based web framework. </para> </note> "
-"<para> Let's take a look at the Facelet view: </para> <programlistingco> "
-"<areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords="
-"\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords="
-"\"25\"/> <area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords="
-"\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//"
-"W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/"
-"xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
 
 #. Tag: para
-#: gettingstarted.xml:399
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
-"예제에는 4 개의 클래스가 존재합니다, 첫 번째 두 개는 바인딩 유형입니다. 먼"
-"저, 임의의 숫자를 삽입하기 위해 사용되는 <literal>@Random</literal> 바인딩 유"
-"형이 있습니다:      "
 
 #. Tag: programlisting
-#: gettingstarted.xml:405
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
-"삽입될 수 있는 최대 번호 삽입하기 위해 사용되는 <literal>@MaxNumber</"
-"literal> 바인딩 유형도 있습니다:       "
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"<literal>Generator</literal> 클래스는 생산자 방식을 통해 임의의 숫자를 생성해"
-"야 할 책임이 있습니다. 또한 이는 생산자 방식을 통하여 가능한 최대 숫자를 나타"
-"냅니다:  "
 
-#. Tag: programlisting
-#: gettingstarted.xml:420
+#. Tag: title
+#: gettingstarted.xml:285
 #, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+msgid "Deploying to Apache Tomcat"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:287
 #, no-c-format
 msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
-"<literal>Generator</literal>는 애플리케이션 범위로 되어 있음을 발견하실 것입"
-"니다; 따라서 매번 다른 임의 숫자를 갖지 않게 됩니다. "
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
-"애플리케이션에 있는 마지막 Web Bean은 <literal>Game</literal> 범위 세션입니"
-"다. "
 
 #. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
 msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
-"<literal>@Named</literal> 어노테이션이 사용되므로 JSF 페이지에서 EL을 통해 "
-"bean을 사용할 수 있음을 인지하실 것입니다. 마지막으로 생성자 삽입을 사용하여 "
-"임의의 숫자로 게임을 초기화합니다. 물론, 게임 플레이어에게 언제 게임에어 이겼"
-"는지를 알려주어야 하므로, <literal>FacesMessage</literal>로 피드백을 제공합니"
-"다.       "
+"다음으로 <ulink url=\"http://seamframework.org/Download\">seamframework.org</"
+"ulink>에서 Web Beans RI를 다운로드하여 압축 풀기를 합니다. 예: "
 
 #. Tag: programlisting
-#: gettingstarted.xml:440
-#, no-c-format
-msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+#: gettingstarted.xml:302
+#, fuzzy, no-c-format
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
-#. Tag: title
-#: gettingstarted.xml:443
-#, fuzzy, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "numberguess 예제 "
-
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:454
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
-#, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
-msgstr ""
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
-#. Tag: title
-#: gettingstarted.xml:472
+#. Tag: para
+#: gettingstarted.xml:323
 #, fuzzy, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "numberguess 예제 "
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "numberguess 예제를 배치하려면:    "
 
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:482
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
+"<literal>ant restart</literal> - exploded 형식으로 예제를 배치합니다      "
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:507
-#, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
+#: gettingstarted.xml:346
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
+"<literal>ant explode</literal> - 배치 버전을 다시 시작하지 않고 exploded 예제"
+"를 업데이트합니다     "
 
 #. Tag: para
-#: gettingstarted.xml:513
-#, no-c-format
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
+"<literal>ant deploy</literal> - 압축된 jar 포맷으로 예제를 배치합니다   "
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
+#. Tag: para
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - 서버에서 예제를 제거합니다 "
 
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+#. Tag: programlisting
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "Understanding the code"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:576
+#: gettingstarted.xml:396
 #, no-c-format
 msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:403
 #, no-c-format
-msgid "Differences are:"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:586
-#, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:599
-#, no-c-format
-msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:605
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:612
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
-#, fuzzy, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "numberguess 예제 "
-
-#. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+msgid "Deploying to Jetty"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
-#, fuzzy, no-c-format
-msgid "To run this example:"
-msgstr "번역 예제  "
-
-#. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:457
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:679
+#: gettingstarted.xml:464
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid ""
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:470
 #, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:690
+#: gettingstarted.xml:479
 #, no-c-format
-msgid "execute the following command"
+msgid ""
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:693
+#: gettingstarted.xml:485
 #, no-c-format
-msgid "mvn -Drun"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:699
-#, fuzzy, no-c-format
 msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
-"여기에는 빈 <literal>web-beans.xml</literal> 파일이 있어, 이는 Web Beans 애플"
-"리케이션으로 애플리케이션을 표시합니다. "
 
 #. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
-#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "번역 예제  "
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
-msgstr "번역 예제는 입력하신 아무 문장을 가져가 이를 라틴어로 번역합니다. "
-
-#. Tag: para
-#: gettingstarted.xml:924
-#, no-c-format
-msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"번역 예제는 ear로 작성되며, EJB가 들어있게 됩니다. 따라서, 문장 구조가 "
-"numberguess 예보다 훨씬 복잡합니다.  "
 
-#. Tag: para
-#: gettingstarted.xml:930
+#. Tag: programlisting
+#: gettingstarted.xml:501
 #, no-c-format
-msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
-"EJB 3.1 및 Jave EE 6는 EJB를 war로 패키지하게 하여, 이러한 문장을 보다 간단하"
-"게 만들게 됩니다! "
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"먼저, <literal>webbeans-translator-ear</literal> 모듈에 있는 ear aggregator"
-"를 살펴봅시다. Maven은 자동으로 <literal>application.xml</literal>을 생성합니"
-"다:  "
 
-#. Tag: programlisting
-#: gettingstarted.xml:942
-#, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
-
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
-"url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
-"localhost:8080/webbeans-translator</ulink>)을 제공하는 컨텍스트 경로를 설정합"
-"니다.  "
 
 #. Tag: para
-#: gettingstarted.xml:950
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+msgid "First, initialize the Eclipse project:"
 msgstr ""
-"Maven을 사용하여 이러한 파일을 생성할 경우, <literal>META-INF/application."
-"xml</literal>이 필요합니다:  "
 
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:520
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"<![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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
-#, fuzzy, no-c-format
-msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr ""
-"다음으로, war를 살펴봅시다. numberguess 예제와 같이, <literal>WebContent/WEB-"
-"INF</literal>에 있는 <literal>faces-config.xml</literal> (Facelets를 활성화) "
-"및 <literal>web.xml</literal> (JSF를 활성화)을 갖습니다. "
-
-#. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:522
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
-"텍스트를 번역하데 facelet이 사용됩니다. numberguess 예제에서와 같이 양식으로"
-"된 템플릿이 있습니다 (간결하게 하기 위해 여기서는 생략됨): "
 
 #. Tag: programlisting
-#: gettingstarted.xml:971
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
-"사용자는 왼쪽 텍스트 부분에 텍스트를 입력할 수 있으며, 번역하기 버튼을 누르"
-"면 오른쪽에 번역 결과가 나타나게 됩니다.   "
 
 #. Tag: para
-#: gettingstarted.xml:978
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"마지막으로, ejb 모듈인 <literal>webbeans-translator-ejb</literal>를 살펴봅시"
-"다. <literal>src/main/resources/META-INF</literal>에는 Web Beans가 들어 있는 "
-"것으로 아카이브를 표시하기 위해 사용되는 빈 <literal>web-beans.xml</literal>"
-"이 있습니다. "
 
-#. Tag: para
-#: gettingstarted.xml:986
-#, no-c-format
-msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
-msgstr ""
-"가장 흥미로운 코드 부분은 마지막을 위해 남겨두겠습니다! 프로젝트에는 두 개의 "
-"심플 beans인 <literal>SentenceParser</literal> 및 <literal>TextTranslator</"
-"literal>와 두 개의 엔터프라이즈 beans인 <literal>TranslatorControllerBean</"
-"literal> 및 <literal>SentenceTranslator</literal>가 있습니다. 이제 Web Bean"
-"에 관해 보다 많이 알고 계실 것이므로, 가장 중요한 부분만 여기서 다루겠습니"
-"다.    "
+#, fuzzy
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "Web Beans 참조 구현 "
 
-#. Tag: para
-#: gettingstarted.xml:996
-#, no-c-format
-msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
-msgstr ""
-"<literal>SentenceParser</literal> 및 <literal>TextTranslator</literal>는 "
-"beans에 의존하며, <literal>TextTranslator</literal>는 생성자 초기화를 사용합"
-"니다: "
+#, fuzzy
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "Web Beans 참조 구현 (Web Beans Reference Implementation)은 <ulink url="
+#~ "\"http://seamframework.org/WebBeans\">Seam 프로젝트</ulink>에서 개발되고 "
+#~ "있습니다. <ulink url=\"http://seamframework.org/Download\">다운로드 페이지"
+#~ "</ulink>에서 최신 개발자 릴리즈를 다운로드하실 수 있습니다.   "
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "Web Beans RI는 배치 가능한 두 가지 애플리케이션 예로 되어 있습니다: war 예"
+#~ "에는 심플 beans 만이 들어 있는 <literal>webbeans-numberguess</literal>가 "
+#~ "있고 ear 예에는 엔터프라이즈 beans가 들어 있는 <literal>webbeans-"
+#~ "translator</literal>가 있습니다. 예를 실행하려면, 다음 사항이 필요합니"
+#~ "다:           "
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
-msgstr ""
-"<literal>TextTranslator</literal>는 무상태 세션빈으로 (로컬 비지니스 인터페이"
-"스와 함께), 완전한 번역기를 개발할 수는 없지만, 잘 작동하고 있습니다! "
+#, fuzzy
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.0.GA, 및 "
 
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
-msgstr ""
-"마지막으로, UI 기반 제어기가 있어, 이는 사용자로 부터 텍스트를 수집하여 번역"
-"기에 이를 보냅니다. 이는 요청 범위, 이름, 상태 유지 세션빈으로 번역기에 삽입"
-"되어 있습니다.  "
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0."
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "현재, Web Beans RI는 JBoss Application Server 5에서만 실행됩니다. <ulink "
+#~ "url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>에서 "
+#~ "JBoss AS 5.0.0.GA를 다운로드하여 압축 풀기를 합니다. 예:   "
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr "bean은 페이지에 있는 모든 영역에 대해 getter 및 setter를 갖습니다. "
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr "이는 상태 유지 세션 빈이므로, 제거 방식을 갖고 있어야 합니다:  "
+#, fuzzy
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "다음으로 <ulink url=\"http://seamframework.org/Download\">seamframework."
+#~ "org</ulink>에서 Web Beans RI를 다운로드하여 압축 풀기를 합니다. 예: "
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
-msgstr ""
-"Web Beans 관리자는 bean이 삭제될 때 제거 방식을 호출하게 됩니다; 이러한 경우 "
-"요청 마지막에 호출하게 됩니다. "
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "다음으로, JBoss가 위치해 있는 곳을 Web Beans에게 알려야 합니다. "
+#~ "<literal>jboss-as/build.properties</literal>를 편집하고 <literal>jboss."
+#~ "home</literal> 속성을 설정합니다. 예: "
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, fuzzy, no-c-format
-msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
-msgstr ""
-"이제 Web Beans RI 예제의 짧은 여정을 마칩니다. RI에 관한 보다 자세한 내용은 "
-"<ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www."
-"seamframework.org/WebBeans/Development</ulink>에서 살펴보시기 바랍니다.  "
+#, fuzzy
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "업데이트를 설치하려면, Ant 1.7.0을 설치하고 <literal>ANT_HOME</literal> 환"
+#~ "경 변수 모음을 설치합니다. 예:  "
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""
-"버그 수정, 새로운 기능 작성, 예세 작성, 참조 가이드 번역과 같이 모든 영역에"
-"서 도움이 필요합니다. "
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #, fuzzy
 #~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "그 다음 업데이트를 설치하실 수 있습니다. 업데이트 스크립트는 Maven을 사용"
+#~ "하여 Web Beans 및 EJB3를 자동으로 다운로드합니다. "
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+#~ "$ ant update"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "예제 용 작성 스크립트는 여러 대상을 제공합니다. 이에는 다음과 같은 것이 있"
+#~ "습니다:   "
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "numberguess 예제를 배치하려면:    "
+
+#, fuzzy
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "애플리케이션이 배치되면 <ulink url=\"http://localhost:8080/webbeans-"
+#~ "numberguess\"></ulink>에서 살펴보시기 바랍니다!   "
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Web Beans RI에는 텍스트를 라틴어로 번역하는 두 번째 예제가 있습니다. "
+#~ "numberguess 예제는 war 예제로 심플 beans 만을 사용합니다; 번역 예제는 ear "
+#~ "예제로 엔터프라이즈 beans에 포함되어 EJB 모듈에 패키지되어 있습니다. 이를 "
+#~ "꺼내려면 다음을 실행합니다:      "
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "애플리케이션이 배치되면 <ulink url=\"http://localhost:8080/webbeans-"
+#~ "translator\"></ulink>에 가보십시오!   "
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "다음으로, JBoss가 위치해 있는 곳을 Web Beans에게 알려야 합니다. "
+#~ "<literal>jboss-as/build.properties</literal>를 편집하고 <literal>jboss."
+#~ "home</literal> 속성을 설정합니다. 예: "
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "예제 용 작성 스크립트는 여러 대상을 제공합니다. 이에는 다음과 같은 것이 있"
+#~ "습니다:   "
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant deploy</literal> - 압축된 jar 포맷으로 예제를 배치합니다   "
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr "<literal>ant undeploy</literal> - 서버에서 예제를 제거합니다 "
+
+#, fuzzy
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant clean</literal> - 예제를 지웁니다 "
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/translator\n"
+#~ "ant deploy"
+
+#~ msgid "The numberguess example"
+#~ msgstr "numberguess 예제 "
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "numberguess 애플리케이션에서 1에서 100사이의 숫자를 알아내기 위해 주어진 "
+#~ "10 번을 시도하게 됩니다. 각각 시도한 후 숫자가 너무 높은지 또는 너무 낮은"
+#~ "지를 알려주게 됩니다. "
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "numberguess 예제는 여러 Web Beans, 설정 파일, Facelet JSF 페이지로 구성되"
+#~ "어 있으며, war로 패키지되어 있습니다 설정 파일부터 시작합시다. "
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "예제에 해당하는 모든 설정 파일은 <literal>WEB-INF/</literal>에 위치해 있으"
+#~ "며, 이는 소스 트리에 있는 <literal>WebContent</literal>에 저장되어 있습니"
+#~ "다. 먼저, <literal>faces-config.xml</literal>을 사용하여, Facelets를 사용"
+#~ "할 JSF를 알려주게 됩니다:   "
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "여기에는 빈 <literal>web-beans.xml</literal> 파일이 있어, 이는 Web Beans "
+#~ "애플리케이션으로 애플리케이션을 표시합니다. "
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "마지막으로, <literal>web.xml</literal> 파일이 있습니다:  "
+
+#, fuzzy
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.jsf</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use the Web Beans RI with any Servlet based web framework. "
+#~ "</para> </note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> "
+#~ "<area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/> "
+#~ "<area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "예제에는 4 개의 클래스가 존재합니다, 첫 번째 두 개는 바인딩 유형입니다. 먼"
+#~ "저, 임의의 숫자를 삽입하기 위해 사용되는 <literal>@Random</literal> 바인"
+#~ "딩 유형이 있습니다:      "
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "삽입될 수 있는 최대 번호 삽입하기 위해 사용되는 <literal>@MaxNumber</"
+#~ "literal> 바인딩 유형도 있습니다:       "
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "<literal>Generator</literal> 클래스는 생산자 방식을 통해 임의의 숫자를 생"
+#~ "성해야 할 책임이 있습니다. 또한 이는 생산자 방식을 통하여 가능한 최대 숫자"
+#~ "를 나타냅니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "<literal>Generator</literal>는 애플리케이션 범위로 되어 있음을 발견하실 것"
+#~ "입니다; 따라서 매번 다른 임의 숫자를 갖지 않게 됩니다. "
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "애플리케이션에 있는 마지막 Web Bean은 <literal>Game</literal> 범위 세션입"
+#~ "니다. "
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "<literal>@Named</literal> 어노테이션이 사용되므로 JSF 페이지에서 EL을 통"
+#~ "해 bean을 사용할 수 있음을 인지하실 것입니다. 마지막으로 생성자 삽입을 사"
+#~ "용하여 임의의 숫자로 게임을 초기화합니다. 물론, 게임 플레이어에게 언제 게"
+#~ "임에어 이겼는지를 알려주어야 하므로, <literal>FacesMessage</literal>로 피"
+#~ "드백을 제공합니다.       "
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "numberguess 예제 "
+
+#, fuzzy
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "numberguess 예제 "
+
+#, fuzzy
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "numberguess 예제 "
+
+#, fuzzy
+#~ msgid "To run this example:"
+#~ msgstr "번역 예제  "
+
+#, fuzzy
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "여기에는 빈 <literal>web-beans.xml</literal> 파일이 있어, 이는 Web Beans "
+#~ "애플리케이션으로 애플리케이션을 표시합니다. "
+
+#~ msgid "The translator example"
+#~ msgstr "번역 예제  "
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr "번역 예제는 입력하신 아무 문장을 가져가 이를 라틴어로 번역합니다. "
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "번역 예제는 ear로 작성되며, EJB가 들어있게 됩니다. 따라서, 문장 구조가 "
+#~ "numberguess 예보다 훨씬 복잡합니다.  "
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 및 Jave EE 6는 EJB를 war로 패키지하게 하여, 이러한 문장을 보다 간"
+#~ "단하게 만들게 됩니다! "
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "먼저, <literal>webbeans-translator-ear</literal> 모듈에 있는 ear "
+#~ "aggregator를 살펴봅시다. Maven은 자동으로 <literal>application.xml</"
+#~ "literal>을 생성합니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "Maven을 사용하여 이러한 파일을 생성할 경우, <literal>META-INF/application."
+#~ "xml</literal>이 필요합니다:  "
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "다음으로, war를 살펴봅시다. numberguess 예제와 같이, <literal>WebContent/"
+#~ "WEB-INF</literal>에 있는 <literal>faces-config.xml</literal> (Facelets를 "
+#~ "활성화) 및 <literal>web.xml</literal> (JSF를 활성화)을 갖습니다. "
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "텍스트를 번역하데 facelet이 사용됩니다. numberguess 예제에서와 같이 양식으"
+#~ "로된 템플릿이 있습니다 (간결하게 하기 위해 여기서는 생략됨): "
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "사용자는 왼쪽 텍스트 부분에 텍스트를 입력할 수 있으며, 번역하기 버튼을 누"
+#~ "르면 오른쪽에 번역 결과가 나타나게 됩니다.   "
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "마지막으로, ejb 모듈인 <literal>webbeans-translator-ejb</literal>를 살펴봅"
+#~ "시다. <literal>src/main/resources/META-INF</literal>에는 Web Beans가 들어 "
+#~ "있는 것으로 아카이브를 표시하기 위해 사용되는 빈 <literal>web-beans.xml</"
+#~ "literal>이 있습니다. "
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "가장 흥미로운 코드 부분은 마지막을 위해 남겨두겠습니다! 프로젝트에는 두 개"
+#~ "의 심플 beans인 <literal>SentenceParser</literal> 및 "
+#~ "<literal>TextTranslator</literal>와 두 개의 엔터프라이즈 beans인 "
+#~ "<literal>TranslatorControllerBean</literal> 및 "
+#~ "<literal>SentenceTranslator</literal>가 있습니다. 이제 Web Bean에 관해 보"
+#~ "다 많이 알고 계실 것이므로, 가장 중요한 부분만 여기서 다루겠습니다.    "
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "<literal>SentenceParser</literal> 및 <literal>TextTranslator</literal>는 "
+#~ "beans에 의존하며, <literal>TextTranslator</literal>는 생성자 초기화를 사용"
+#~ "합니다: "
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal>는 무상태 세션빈으로 (로컬 비지니스 인터"
+#~ "페이스와 함께), 완전한 번역기를 개발할 수는 없지만, 잘 작동하고 있습니다! "
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "마지막으로, UI 기반 제어기가 있어, 이는 사용자로 부터 텍스트를 수집하여 번"
+#~ "역기에 이를 보냅니다. 이는 요청 범위, 이름, 상태 유지 세션빈으로 번역기에 "
+#~ "삽입되어 있습니다.  "
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr "bean은 페이지에 있는 모든 영역에 대해 getter 및 setter를 갖습니다. "
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr "이는 상태 유지 세션 빈이므로, 제거 방식을 갖고 있어야 합니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "Web Beans 관리자는 bean이 삭제될 때 제거 방식을 호출하게 됩니다; 이러한 경"
+#~ "우 요청 마지막에 호출하게 됩니다. "
+
+#, fuzzy
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "이제 Web Beans RI 예제의 짧은 여정을 마칩니다. RI에 관한 보다 자세한 내용"
+#~ "은 <ulink url=\"http://www.seamframework.org/WebBeans/Development"
+#~ "\">http://www.seamframework.org/WebBeans/Development</ulink>에서 살펴보시"
+#~ "기 바랍니다.  "
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "버그 수정, 새로운 기능 작성, 예세 작성, 참조 가이드 번역과 같이 모든 영역"
+#~ "에서 도움이 필요합니다. "
+
+#, fuzzy
+#~ msgid ""
 #~ "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss "
 #~ "AS. This adds supports for Web Bean archives to JBoss AS, and allows the "
 #~ "Web Beans RI to query the EJB3 container and discover which EJBs are "

Modified: doc/trunk/reference/ko-KR/injection.po
===================================================================
--- doc/trunk/reference/ko-KR/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: injection\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 17:37+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
@@ -30,37 +30,56 @@
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "의존성 삽입 "
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans는 의존성 삽입에 대한 세 가지 주요 메카니즘을 지원합니다: "
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "생성자 매개 변수 삽입: "
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>초기화</emphasis> 방식 매개 변수 삽입: "
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -76,23 +95,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>초기화</emphasis> 방식 매개 변수 삽입: "
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -108,18 +133,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "직접적 영역 삽입: "
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -130,70 +164,87 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
-msgstr "Web Bean 인스턴스가 먼저 인스턴스화되었을 경우 의존성 삽입이 발생합니다. "
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
+#: injection.xml:56
+#, fuzzy, no-c-format
 msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
-msgstr "먼저, Web Bean 관리자는 Web Bean 생성자를 호출하여 Web Bean 인스턴스를 획득합니다.  "
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"Web Bean 인스턴스가 먼저 인스턴스화되었을 경우 의존성 삽입이 발생합니다. "
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
+#: injection.xml:63
+#, fuzzy, no-c-format
 msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
-msgstr "다음으로, Web Bean 관리자는 Web Bean의 삽입된 모든 영역의 값을 초기화합니다. "
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"먼저, Web Bean 관리자는 Web Bean 생성자를 호출하여 Web Bean 인스턴스를 획득합"
+"니다.  "
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"다음으로, Web Bean 관리자는 Web Bean의 삽입된 모든 영역의 값을 초기화합니다. "
+
+#. Tag: para
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
 msgstr "그 후, Web Bean 관리자는 Web Bean의 모든 초기화 방식을 호출합니다.  "
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
+#: injection.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
-msgstr "마지막으로 Web Bean의 <literal>@PostConstruct</literal> 방식이 호출됩니다. "
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"마지막으로 Web Bean의 <literal>@PostConstruct</literal> 방식이 호출됩니다. "
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:86
 #, no-c-format
 msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "EJB가 Web Bean 관리자가 아닌 EJB 컨테이너에 의해 인스턴스화된 이래 생성자 매개변수 삽입은 EJB beans을 지원하지 않습니다. "
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
 msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
-msgstr "기본값 바인딩 유형 <literal>@Current</literal>가 적용되었을 경우 생성자의 매개 변수 및 초기화 방식에서는 명시적으로 어노테이션할 필요가 없습니다. 하지만 삽입된 영역에는 <emphasis>반드시</emphasis> 바인딩 유형을 지정해야 하며, 언제 기본값 바인딩 유형을 적용할 지도 지정해야 합니다. 영역에 바인딩 유형이 지정되어 있지 않을 경우, 이는 삽입되지 않게 됩니다. "
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "생산자 방식은 매개 변수 삽입을 지원합니다:  "
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -205,93 +256,125 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
 msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
-msgstr "마지막으로 옵저버 방식 (<xref linkend=\"events\"/>에서 살펴보게됨), 폐지 방식 및 소멸자 방식 모두는 매개 변수 삽입을 지원합니다. "
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:58
-#, no-c-format
+#: injection.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
-"<literal>AmbiguousDependencyException</literal>."
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
 msgstr ""
-"Web Beans 사양은 <emphasis>타입 안정적 해상도 알고리즘</emphasis>이라는 절차를 정의하여, Web Bean 관리자가 삽입 지점에 삽입하기 위해 Web Bean을 인식할 때 이를 따르게 됩니다. 이러한 알고르짐은 처음에는 복잡하게 보이지만, 일단 이를 이해하면, 이는 다소 직관적입니다. 타입 안정적 해상도는 시스템 초기화시에 실행되어, 관리자는 사용자에 과한 정보를 즉각적으로 알게되며 Web Bean의 의존성에 만족하지 않을 경우, <literal>UnsatisfiedDependencyException</literal> 또는 "
-"<literal>AmbiguousDependencyException</literal>을 넘기게 됩니다.  "
+"Web Beans 사양은 <emphasis>타입 안정적 해상도 알고리즘</emphasis>이라는 절차"
+"를 정의하여, Web Bean 관리자가 삽입 지점에 삽입하기 위해 Web Bean을 인식할 "
+"때 이를 따르게 됩니다. 이러한 알고르짐은 처음에는 복잡하게 보이지만, 일단 이"
+"를 이해하면, 이는 다소 직관적입니다. 타입 안정적 해상도는 시스템 초기화시에 "
+"실행되어, 관리자는 사용자에 과한 정보를 즉각적으로 알게되며 Web Bean의 의존성"
+"에 만족하지 않을 경우, <literal>UnsatisfiedDependencyException</literal> 또"
+"는 <literal>AmbiguousDependencyException</literal>을 넘기게 됩니다.  "
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
+#: injection.xml:120
+#, fuzzy, no-c-format
 msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
-msgstr "이러한 알고리즘은 여러 Web Beans를 허용하여 동일한 API 유형을 구현하기 위한 것입니다: "
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"이러한 알고리즘은 여러 Web Beans를 허용하여 동일한 API 유형을 구현하기 위한 "
+"것입니다: "
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
+#: injection.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
-msgstr "또는 클라이언트가 <emphasis>바인딩 어노테이션</emphasis>을 사용하여 필요한 구현 사항을 선택하게 합니다, "
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"또는 클라이언트가 <emphasis>바인딩 어노테이션</emphasis>을 사용하여 필요한 구"
+"현 사항을 선택하게 합니다, "
 
 #. Tag: para
-#: injection.xml:77
-#, no-c-format
+#: injection.xml:131
+#, fuzzy, no-c-format
 msgid ""
 "allow the application deployer to select which implementation is appropriate "
 "for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
-msgstr "애플리케이션 개발자가 클라이언트로 변경하지 않고 <emphasis>배치 유형</emphasis>을 활성화 또는 비활성화하여 특정 시스템에 어떤 구헌이 적합할 지를 선택하게 합니다.   "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"애플리케이션 개발자가 클라이언트로 변경하지 않고 <emphasis>배치 유형</"
+"emphasis>을 활성화 또는 비활성화하여 특정 시스템에 어떤 구헌이 적합할 지를 선"
+"택하게 합니다.   "
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:137
 #, no-c-format
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:143
+#, no-c-format
 msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
-msgstr "하나의 API 구현이 클라이언트에 변경하지 않고 <emphasis>배치 유형 우선 순위</emphasis>를 사용하여 배치시 다른 동일한 API 구현을 덮어쓰기하게 합니다.  "
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Web Beans 관리자가 어떻게 Web Bean을 삽입할 지를 결정하는 방법에 대해 살펴봅시다. "
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "바인딩 어노테이션 "
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
+#: injection.xml:159
+#, fuzzy, no-c-format
 msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
 "<literal>PaymentProcessor</literal>:"
-msgstr "특정 API 유형을 구현하는 하나 이상의 Web Bean이 있을 경우, 삽입 지점은 바인딩 어노테이션을 사용하여 어떤 Web Bean이 삽입되어야 할 지를 지정할 수 있습니다. 예를 들어, <literal>PaymentProcessor</literal>의 두 가지 구현이 있을 수 있습니다: "
+msgstr ""
+"특정 API 유형을 구현하는 하나 이상의 Web Bean이 있을 경우, 삽입 지점은 바인"
+"딩 어노테이션을 사용하여 어떤 Web Bean이 삽입되어야 할 지를 지정할 수 있습니"
+"다. 예를 들어, <literal>PaymentProcessor</literal>의 두 가지 구현이 있을 수 "
+"있습니다: "
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -300,37 +383,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
+#: injection.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
 msgstr ""
-"여기서 <literal>@PayByCheque</literal> 및 <literal>@PayByCreditCard</"
-"literal>는 바인딩 어노테이션입니다:  "
+"여기서 <literal>@PayByCheque</literal> 및 <literal>@PayByCreditCard</literal>"
+"는 바인딩 어노테이션입니다:  "
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -338,60 +421,62 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
+#: injection.xml:177
+#, fuzzy, no-c-format
 msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
-msgstr "클라이언트 Web Bean 개발자는 바인딩 어노테이션을 사용하여 정확히 어떤 Web Bean이 삽입되어야 하는 지를 지정합니다. "
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"클라이언트 Web Bean 개발자는 바인딩 어노테이션을 사용하여 정확히 어떤 Web "
+"Bean이 삽입되어야 하는 지를 지정합니다. "
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "영역 삽입 사용: "
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "초기화 방식 삽입 사용: "
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
@@ -404,15 +489,22 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "생성자 삽입 사용: "
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
 "                @PayByCreditCard PaymentProcessor "
@@ -420,36 +512,85 @@
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor "
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
 "creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "멤버와 바인딩 어노테이션 "
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "바인딩 어노테이션은 멤버를 갖을 수 있습니다: "
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -460,807 +601,729 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "이러한 경우, 멤버 값이 중요합니다:   "
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
+#: injection.xml:232
+#, fuzzy, no-c-format
 msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
-msgstr "Web Bean 관리자에게 <literal>@NonBinding</literal> 멤버를 어노테이션하여 바인딩 어노테이션 유형 멤버를 무시하라고 말할 수 있습니다.  "
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"Web Bean 관리자에게 <literal>@NonBinding</literal> 멤버를 어노테이션하여 바인"
+"딩 어노테이션 유형 멤버를 무시하라고 말할 수 있습니다.  "
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "바인딩 어노테이션의 조합 "
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
 msgstr "삽입 지점은 여러 바인딩 어노테이션을 지정할 수 도 있습니다:  "
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
+#: injection.xml:250
+#, fuzzy, no-c-format
 msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
-msgstr "이러한 경우, <emphasis>양쪽</emphasis> 바인딩 어노테이션을 갖는 Web Bean만 삽입될 수 있습니다. "
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"이러한 경우, <emphasis>양쪽</emphasis> 바인딩 어노테이션을 갖는 Web Bean만 삽"
+"입될 수 있습니다. "
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "바인딩 어노테이션 및 생산자 방식 "
-
-#. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "생산자 방식은 바인딩 어노테이션을 지정할 수 도 있습니다: "
-
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:260
 #, no-c-format
-msgid "The default binding type"
-msgstr "기본값 바인딩 유형 "
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:262
 #, no-c-format
 msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
-msgstr "Web Beans는 명확하게 바인딩 유형을 지정하지 않은 Web Bean이나 또는 삽입 지점에 대한 기본값 바인딩 유형인 <literal>@Current</literal> 바인딩 유형을 정의합니다.  "
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:266
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: para
-#: injection.xml:168
+#: injection.xml:268
 #, no-c-format
 msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
-msgstr "<literal>@Current</literal>를 지정하기 위해 필요한 일반적인 환경이 두 가지 있습니다:      "
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:173
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
-msgstr "기본값 바인딩 유형과 함께 삽입 영역으로 이를 명시하기 위한 영역에서 "
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:177
+#: injection.xml:276
 #, no-c-format
 msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
-msgstr "기본값 바인딩 유형에 더하여 다른 바인딩 유형을 갖는 Web Bean에서 "
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "배치 유형 "
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "불만족스러운 의존성 수정 "
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
+#: injection.xml:287
+#, fuzzy, no-c-format
 msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
-msgstr "모든 Web Beans는 <emphasis>배치 유형</emphasis>을 갖습니다. 각각의 배치 유형은 시스템의 일부 배치에 조건부로 설치되어야 하는 Web Beans 모음을 인식합니다. "
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"바인딩 어노테이션 및 삽입 지점의 API 유형을 구현하는 모든 Web Beans의 배치 유"
+"형을 고려한 후, Web Bean 관리자는 삽입할 하나의 Web Bean을 인식하지 못할 경"
+"우 타입 안정적 해상도 알고리즘은 실패하게 됩니다.     "
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
-msgstr "예를 들어, <literal>@Mock</literal>라는 배치 유형을 정의할 수 있으며, 이는 시스템이 통합적인 테스트 환경 내에서 실행될 때 설치되어야 하는 Web Beans를 인식합니다:  "
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:197
+#. Tag: para
+#: injection.xml:298
 #, no-c-format
-msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
-msgstr "지불 절차를 처리하기 위한 외부적 시스템과 상호 작용하는 일부 Web Bean이 있다고 가정합시다:  "
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:309
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
-msgstr "이러한 Web Bean이 배치 유형을 명시적을 지정하지 않고 있으므로, 이는 기본값 배치 유형 <literal>@Production</literal>을 갖게 됩니다.  "
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:321
 #, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
-msgstr "통합 또는 단위 테스트를 위해 외부적 시스템은 속도가 느리거나 또는 사용 불가능합니다. 따라서 모의 객체를 생성할 수 있습니다:  "
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:332
 #, no-c-format
 msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
-msgstr "하지만 Web Bean 관리자가 특정 배치에 어떤 구현을 사용할 지를 어떻게 결정할까요?   "
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "배치 유형 활성화   "
-
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:337
 #, no-c-format
 msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
 msgstr ""
-"Web Beans는 두 개의 내장된 배치 유형을 정의합니다: <literal>@Production</"
-"literal> 및 <literal>@Standard</literal>. 시스템이 배치되면 기본값으로 내장된 배치 유형과 함께 Web Beans 만이 활성화됩니다. <literal>web-beans.xml</literal>에서 목록을 나열하여 특정 배치에서 활성화될 추가 배치 유형을 인식할 수 있습니다.    "
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
-msgstr "예제로 다시 돌아가서, 통합적 테스트를 배치할 때, 모든 <literal>@Mock</literal> 객체가 설치되기를 원합니다: "
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:350
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:358
 #, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
-msgstr "이제 Web Bean 관리자는 배치시 <literal>@Production</literal>, <literal>@Standard</literal>, <literal>@Mock</literal> 어노테이션된 모든 Web Beans를 인식 및 설치하게 됩니다.  "
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:361
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
-msgstr "<literal>@Standard</literal> 배치 유형은 Web Beans 사양에 의해 정의된 특정 Web Beans에서만 사용됩니다. 자체적 Web Beans에는 이를 사용할 수 없으며 이를 비활성화할 수 없습니다.  "
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
-#, no-c-format
+#: injection.xml:366
+#, fuzzy, no-c-format
 msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
-msgstr "<literal>@Production</literal> 배치 유형은 배치 유형을 명시하지 않은 Web Beans에 대한 기본값 배치 유형으로 비활성화될 수 있습니다.  "
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr ""
+"Web Beans에서 의존성 삽입을 사용할 때 유의하셔야 할 사항이 한 가지 더 있습니"
+"다. "
 
 #. Tag: title
-#: injection.xml:244
+#: injection.xml:373
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "배치 유형 우선 순위 "
+msgid "Client proxies"
+msgstr "클라이언트 프록시 "
 
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
+#: injection.xml:375
+#, fuzzy, no-c-format
 msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation &#151; <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider "
-"what happens when the manager encounters this injection point:"
-msgstr "관심을 기울이셨다면, Web Bean 관리자가 어떤 구현 &#151; <literal>ExternalPaymentProcessor</literal> 또는 <literal>MockPaymentProcessor</literal> &#151; 을 선택할 지를 어떻게 결정하는지에 대해 궁금해 하셨을 것입니다. 관리자기 이러한 삽입 지점에 이르렀을 때 무엇이 발생할 지를 고려합니다: "
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
+msgstr ""
+"삽입된 Web Bean 클라이언트는 Web Bean 인스턴스에 직접적인 참조를 유지하지 않"
+"습니다. "
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
+#: injection.xml:380
+#, fuzzy, no-c-format
 msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
-msgstr "<literal>PaymentProcessor</literal> 계약을 만족하는 두 개의 Web Beans가 있습니다. 삽입 지점에서 바인딩 어노테이션은 소스로 하드-코드화되어 있으므로, 명확하게 하기 위해 바인딩 어노테이션을 사용할 수 없으며, 관리자가 배치시 결정할 수 있게 하기를 원합니다!  "
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"요청 범위로 바운딩된 Web Bean으로의 직접 참조를 보유하고 있는 애플리케이션 범"
+"위에 바운딩된 Web Bean을 가정해 봅시다. 애플리케이션 범위에 바운딩된 Web Bean"
+"은 다른 많은 요청 사이에서 공유됩니다. 하지만, 각각의 요청은 요청 범위로 바운"
+"딩된 Web Bean의 다른 인스턴스를 확인해야 합니다! "
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
+#: injection.xml:386
+#, fuzzy, no-c-format
 msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
-msgstr "이러한 문제의 해결책은 각각의 배치 유형이 다른 <emphasis>우선 순위</emphasis>를 갖게 하는 것입니다. 배치 유형의 우선 순위는 <literal>web-beans.xml</literal>에 나타나는 순서에 의해 결정됩니다. 예에서 <literal>@Mock</literal>는 <literal>@Production</literal> 보다 나중에 나타나므로 보다 높은 우선 순위를 갖습니다. "
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"이제 애플리케이션 범위로 바운딩된 Web Bean으로의 직접 참조를 보유하고 있는 세"
+"션 범위에 바운딩된 Web Bean을 가정해 봅시다. 때때로 세션 컨텍스트는 메모리를 "
+"보다 효과적으로 사용하기 위해 디스크 순서대로 나열됩니다. 하지만, 애플리케이"
+"션 범위로 바운딩된 Web Bean 인스턴스는 세션 범위로 바운딩된 Web Bean과 함께 "
+"나열되어서는 안됩니다! "
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
+#: injection.xml:393
+#, fuzzy, no-c-format
 msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
-msgstr "하나 이상의 Web Bean이 삽입 지점에 의해 지정된 계약 (API 유형 및 바인딩 어노테이션)에 만족할 수 있음을 관리자가 발견할 때 마다, 이는 Web Beans의 관련된 우선 순위를 고려합니다. 하나의 Web Bean이 다른 것 보다 높은 우선 순위를 갖을 경우, 삽입될 보다 높은 우선 순위의 Web Bean을 선택합니다. 예에서, 통합 테스트 환경 (실제적으로 원하는 환경)에서 실행할 때 Web Bean 관리자는 <literal>MockPaymentProcessor</literal>를 삽입하게 됩니다.   "
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"따라서, Web Bean은 기본값 범위 <literal>@Dependent</literal>를 갖지 않는 한, "
+"Web Bean 관리자는 프록시 객체를 통해 삽입된 모든 참조를 Web Bean으로 돌려 놓"
+"아야 합니다. 이러한 <emphasis>클라이언트 프록시</emphasis>는 방식 호출을 받"
+"는 Web Bean 인스턴스가 현재 컨텍스트와 관련된 인스턴스임을 확인해야 할 책임"
+"이 있습니다. 또한 클라이언트 프록시는 Web Beans가 삽입된 다른 Web Beans를 귀"
+"납적으로 나열하지 않고 디스크 순서대로 나열한 세션 컨텍스트와 같은 컨텍스트"
+"로 바운딩되게 합니다. "
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
+#: injection.xml:401
+#, fuzzy, no-c-format
 msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
-msgstr "이러한 기능을 오늘날의 관리자 구조와 비교하는 것은 흥미로운 일입니다. 다양한 \"경량\"의 컨테이너는 classpath에 있는 클래스의 조건부 배치를 허용하지만, 배치될 클래스는 명시적, 개별적이어하며, 설정 코드나 일부 XML 설정 파일에 나열되어 있어야 합니다. Web Beans는 XML을 통한 Web Bean 정의 및 설정을 지원하지만 복잡한 설정을 필요로 하지 않는 대부분의 경우, 배치 유형은 전체 Web Beans 설정이 단일 XML 행으로 활성화되게 합니다. 동시에, 코드를 검색하는 개발자는 어떤 배치 시나리오를 Web Bean이 사용할 지를 쉽게 인식할 수 있습니다.  "
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
+"Java 언어의 한계로 인해, 일부 Java 유형은 Web Bean 관리자에 의해 프록시될 수 "
+"없습니다. 따라서, 삽입 지점 유형이 프록시될 수 없을 경우 Web Bean 관리자는 "
+"<literal>UnproxyableDependencyException</literal>을 던지게 됩니다.      "
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "배치 유형 예시 "
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "배치 유형은 모든 종류가 유용합니다, 다음에는 일부 예시가 있습니다:       "
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr "다음과 같은 Java 유형은 Web Bean 관리자에 의해 프록시될 수 없습니다:  "
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
+#: injection.xml:411
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
-msgstr "테스트 용 <literal>@Mock</literal> 및 <literal>@Staging</literal> 배치 유형 "
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "매개 변수 없는 비전용 생성자를 갖지 않는 클래스, "
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "특정 사이트 Web Beans 용 <literal>@AustralianTaxLaw</literal>  "
-
-#. Tag: para
-#: injection.xml:297
-#, no-c-format
 msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
-msgstr "Web Beans에서 작성되는 제삼자 프레임워크 용 <literal>@SeamFramework</literal>, <literal>@Guice</literal> "
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"<literal>final</literal>이라고 명시되어 있거나 또는 <literal>final</literal> "
+"방식을 갖는 클래스, "
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
-msgstr "Web Beans 사양에 의해 정의된 표준 Web Beans 용 <literal>@Standard</literal> "
+msgid "arrays and primitive types."
+msgstr "배열 및 기본 유형   "
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "더 많은 애플리케이션을 생각하실 수 있을 것입니다..."
-
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "불만족스러운 의존성 수정 "
-
-#. Tag: para
-#: injection.xml:315
-#, no-c-format
+#: injection.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
-msgstr "바인딩 어노테이션 및 삽입 지점의 API 유형을 구현하는 모든 Web Beans의 배치 유형을 고려한 후, Web Bean 관리자는 삽입할 하나의 Web Bean을 인식하지 못할 경우 타입 안정적 해상도 알고리즘은 실패하게 됩니다.     "
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"<literal>UnproxyableDependencyException</literal>을 수정하기 쉽습니다. 간단하"
+"게 삽입된 클래스에 매개 변수가 없는 생성자를 추가하고, 인터페이스를 소개하거"
+"나, 삽입된 Web Bean의 범위를 <literal>@Dependent</literal>로 변경합니다.  "
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:430
 #, no-c-format
 msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "<literal>UnsatisfiedDependencyException</literal> 또는 <literal>AmbiguousDependencyException</literal>을 수정하기가 쉽습니다. "
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:437
 #, no-c-format
 msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point &#151; or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
-msgstr "<literal>UnsatisfiedDependencyException</literal>을 수정하려면, API 유형을 구현하는 Web Bean을 제공하고 삽입 지점의 바인딩 유형을 갖거나 &#151; 또는 API 유형을 이미 구현하고 있는 Web Bean의 배치 유형을 활성화하고 바인딩 유형을 갖습니다.  "
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:442
 #, no-c-format
 msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
 msgstr ""
-"<literal>AmbiguousDependencyException</literal>을 수정하려면, 두 개의 API 유형 구현 사이에서 구별하기 위해 바인딩 유형을 소개하거나 구현 중 하나의 배치 유형을 변경하여 Web Bean 관리자가 이들 사이에서 선택하기 위해 배치 유형 우선 순위를 사용할 수 있습니다. <literal>AmbiguousDependencyException</literal>은 두 개의 Web "
-"Beans가 바인딩 유형을 공유하여 동일한 배치 유형을 갖고 있을 때에만 발생할 수 있습니다.  "
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:448
 #, no-c-format
-msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
-msgstr "Web Beans에서 의존성 삽입을 사용할 때 유의하셔야 할 사항이 한 가지 더 있습니다. "
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "클라이언트 프록시 "
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "프로그램적 lookup에 의해 Web Bean 획득 "
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
 msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
-msgstr "삽입된 Web Bean 클라이언트는 Web Bean 인스턴스에 직접적인 참조를 유지하지 않습니다. "
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
-msgstr "요청 범위로 바운딩된 Web Bean으로의 직접 참조를 보유하고 있는 애플리케이션 범위에 바운딩된 Web Bean을 가정해 봅시다. 애플리케이션 범위에 바운딩된 Web Bean은 다른 많은 요청 사이에서 공유됩니다. 하지만, 각각의 요청은 요청 범위로 바운딩된 Web Bean의 다른 인스턴스를 확인해야 합니다! "
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
 msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
-msgstr "이제 애플리케이션 범위로 바운딩된 Web Bean으로의 직접 참조를 보유하고 있는 세션 범위에 바운딩된 Web Bean을 가정해 봅시다. 때때로 세션 컨텍스트는 메모리를 보다 효과적으로 사용하기 위해 디스크 순서대로 나열됩니다. 하지만, 애플리케이션 범위로 바운딩된 Web Bean 인스턴스는 세션 범위로 바운딩된 Web Bean과 함께 나열되어서는 안됩니다! "
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
-msgstr "따라서, Web Bean은 기본값 범위 <literal>@Dependent</literal>를 갖지 않는 한, Web Bean 관리자는 프록시 객체를 통해 삽입된 모든 참조를 Web Bean으로 돌려 놓아야 합니다. 이러한 <emphasis>클라이언트 프록시</emphasis>는 방식 호출을 받는 Web Bean 인스턴스가 현재 컨텍스트와 관련된 인스턴스임을 확인해야 할 책임이 있습니다. 또한 클라이언트 프록시는 Web Beans가 삽입된 다른 Web Beans를 귀납적으로 나열하지 않고 디스크 순서대로 나열한 세션 컨텍스트와 같은 컨텍스트로 바운딩되게 합니다. "
+msgid "we would like to iterate over all beans of a certain type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
+#: injection.xml:482
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
-msgstr "Java 언어의 한계로 인해, 일부 Java 유형은 Web Bean 관리자에 의해 프록시될 수 없습니다. 따라서, 삽입 지점 유형이 프록시될 수 없을 경우 Web Bean 관리자는 <literal>UnproxyableDependencyException</literal>을 던지게 됩니다.      "
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"애플리케이션은 삽입에 의해 <literal>Manager</literal> 인터페이스의 인스턴스"
+"를 획득할 수 있습니다:  "
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "다음과 같은 Java 유형은 Web Bean 관리자에 의해 프록시될 수 없습니다:  "
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
+#: injection.xml:489
+#, fuzzy, no-c-format
 msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
-msgstr "<literal>final</literal>이라고 명시되어 있거나 또는 <literal>final</literal> 방식을 갖는 클래스, "
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"테스트 용 <literal>@Mock</literal> 및 <literal>@Staging</literal> 배치 유형 "
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "매개 변수 없는 비전용 생성자를 갖지 않는 클래스, "
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "배열 및 기본 유형   "
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
+#: injection.xml:504
+#, fuzzy, no-c-format
 msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
-msgstr "<literal>UnproxyableDependencyException</literal>을 수정하기 쉽습니다. 간단하게 삽입된 클래스에 매개 변수가 없는 생성자를 추가하고, 인터페이스를 소개하거나, 삽입된 Web Bean의 범위를 <literal>@Dependent</literal>로 변경합니다.  "
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
+"심플 Web Beans는 <literal>@PostConstruct</literal> 및 <literal>@PreDestroy</"
+"literal> 콜백 기능만을 지원합니다.    "
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "프로그램적 lookup에 의해 Web Bean 획득 "
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
-msgstr "애플리케이션은 삽입에 의해 <literal>Manager</literal> 인터페이스의 인스턴스를 획득할 수 있습니다:  "
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
-msgstr "<literal>Manager</literal> 객체는 프로그램적으로 Web Bean 인스턴스의 획득을 위한 방식 모음을 제공합니다. "
-
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
 msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
-msgstr "바인딩 어노테이션은 <literal>AnnotationLiteral</literal> 도우미 클래스를 하부클래스화하여 지정될 수 있으며, 그렇지 않으면 Java에서 어노테이션 유형을 인스턴스화하기 어렵습니다.  "
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to "
-"create a named subclass:"
-msgstr "바인딩 유형이 어노테이션 멤버를 갖을 경우, <literal>AnnotationLiteral</literal>의 임의의 하부클래스를 사용할 수 없습니다 &#151; 대신 named 하부 클래스를 생성해야 합니다:  "
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
 "class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
-msgstr "수명 주기 콜백, <literal>@Resource</literal>, <literal>@EJB</literal> 및 <literal>@PersistenceContext</literal> "
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
 msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
-"Enterprise Web Beans는 EJB 사양에 의해 정의된 모든 수명 주기 콜백을 지원합니다: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> 및 <literal>@PostActivate</"
-"literal>. "
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
 msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
 msgstr ""
-"심플 Web Beans는 <literal>@PostConstruct</literal> 및 "
-"<literal>@PreDestroy</literal> 콜백 기능만을 지원합니다.    "
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
 msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
-msgstr "엔터프라이즈 및 심플 Web Beans는 Java EE 리소스 삽입, EJB 및 JPA 영구적 컨텍스에 대해 <literal>@Resource</literal>, <literal>@EJB</literal> 및 <literal>@PersistenceContext</literal>의 사용을 각각 지원합니다. 심플 Web Beans는 <literal>@PersistenceContext(type=EXTENDED)</literal>의 사용을 지원하지 않습니다.    "
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
+msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
-msgstr "<literal>@PostConstruct</literal> 콜백은 모든 의존성이 삽입된 후에 나타납니다. "
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "<literal>InjectionPoint</literal> 객체 "
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
+#: injection.xml:558
+#, fuzzy, no-c-format
 msgid ""
-"There are certain kinds of dependent objects &#151; Web Beans with scope "
-"<literal>@Dependent</literal> &#151; that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
-msgstr "특정 종류의 의존성 객체가 있습니다 &#151; <literal>@Dependent</literal> 범위와 함께 Web Beans &#151; 객체 또는 이는 실행 가능하게 되기 위해 삽입되는 삽입 지점에 관해 알아야 합니다. 예:  "
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"특정 종류의 의존성 객체가 있습니다 &#151; <literal>@Dependent</literal> 범위"
+"와 함께 Web Beans &#151; 객체 또는 이는 실행 가능하게 되기 위해 삽입되는 삽"
+"입 지점에 관해 알아야 합니다. 예:  "
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
 msgid ""
 "The log category for a <literal>Logger</literal> depends upon the class of "
 "the object that owns it."
-msgstr "<literal>Logger</literal> 용 로그 카테고리는 소유하고 있는 객체 클래스에 의존합니다.  "
+msgstr ""
+"<literal>Logger</literal> 용 로그 카테고리는 소유하고 있는 객체 클래스에 의존"
+"합니다.  "
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
 msgid ""
 "Injection of a HTTP parameter or header value depends upon what parameter or "
 "header name was specified at the injection point."
-msgstr "헤더 값이나 HTTP 매개 변수 삽입은 삽입 지점에서 어떤 매개 변수 또는 헤더 이름을 지정하였는가에 의존합니다. "
+msgstr ""
+"헤더 값이나 HTTP 매개 변수 삽입은 삽입 지점에서 어떤 매개 변수 또는 헤더 이름"
+"을 지정하였는가에 의존합니다. "
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
 msgid ""
 "Injection of the result of an EL expression evaluation depends upon the "
 "expression that was specified at the injection point."
-msgstr "EL 표현식 평가 (expression evaluation) 평가의 삽입은 삽입 지점에서 지정된 표현식에 의존합니다.  "
+msgstr ""
+"EL 표현식 평가 (expression evaluation) 평가의 삽입은 삽입 지점에서 지정된 표"
+"현식에 의존합니다.  "
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
+#: injection.xml:577
+#, fuzzy, no-c-format
 msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
 "injection point to which it belongs."
-msgstr "<literal>@Dependent</literal> 범위와 함께 Web Bean은 <literal>InjectionPoint</literal> 인스턴스를 삽입하고 해당 삽입 지점에 관련된 메타데이트를 액세스합니다. "
+msgstr ""
+"<literal>@Dependent</literal> 범위와 함께 Web Bean은 "
+"<literal>InjectionPoint</literal> 인스턴스를 삽입하고 해당 삽입 지점에 관련"
+"된 메타데이트를 액세스합니다. "
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
 msgid ""
 "Let's look at an example. The following code is verbose, and vulnerable to "
 "refactoring problems:"
-msgstr "다음 예를 살펴봅시다. 다음과 같은 코드는 프로그램을 리팩토링하기에 취약하고 장황합니다: "
+msgstr ""
+"다음 예를 살펴봅시다. 다음과 같은 코드는 프로그램을 리팩토링하기에 취약하고 "
+"장황합니다: "
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
 msgid ""
 "This clever little producer method lets you inject a JDK <literal>Logger</"
 "literal> without explicitly specifying the log category:"
-msgstr "이와 같이 현명한 생산자 방식은 로그 범주를 명시적으로 지정하지 않고 JDK <literal>Logger</literal>를 삽입하게 합니다:  "
+msgstr ""
+"이와 같이 현명한 생산자 방식은 로그 범주를 명시적으로 지정하지 않고 JDK "
+"<literal>Logger</literal>를 삽입하게 합니다:  "
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
@@ -1282,27 +1345,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "이제 다음을 작성할 수 있습니다:  "
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
+#: injection.xml:595
+#, fuzzy, no-c-format
 msgid ""
 "Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
-msgstr "확신하시지 않습니까? 그러시다면 여기에 두 번째 예제가 있습니다. HTTP 매개 변수를 삽입하려면, 바인딩 유형을 정의해야 합니다:  "
+"need to define a qualifier type:"
+msgstr ""
+"확신하시지 않습니까? 그러시다면 여기에 두 번째 예제가 있습니다. HTTP 매개 변"
+"수를 삽입하려면, 바인딩 유형을 정의해야 합니다:  "
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1320,13 +1385,13 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr "다음과 같이 삽입 지점에서 이러한 바인딩 유형을 사용할 수 있습니다:  "
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1336,13 +1401,13 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "다음의 생산자 방식은 다음과 같이 작업합니다:  "
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
@@ -1366,24 +1431,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
+#: injection.xml:608
+#, fuzzy, no-c-format
 msgid ""
 "(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
+"literal> annotation is ignored by the container since it is annotated "
 "<literal>@NonBinding.</literal>)"
-msgstr "<literal>HttpParam</literal> 어노테이션의 <literal>value()</literal> 멤버는<literal>@NonBinding.</literal>을 어노테이션하므로 Web Bean 관리자에 의해 무시됨에 유의하시기 바랍니다.   "
+msgstr ""
+"<literal>HttpParam</literal> 어노테이션의 <literal>value()</literal> 멤버는"
+"<literal>@NonBinding.</literal>을 어노테이션하므로 Web Bean 관리자에 의해 무"
+"시됨에 유의하시기 바랍니다.   "
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
+#: injection.xml:611
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
+"The container provides a built-in bean that implements the "
 "<literal>InjectionPoint</literal> interface:"
-msgstr "Web Bean 관리자는 <literal>InjectionPoint</literal> 인터페이스를 구현하는 내장된 Web Bean을 제공합니다:  "
+msgstr ""
+"Web Bean 관리자는 <literal>InjectionPoint</literal> 인터페이스를 구현하는 내"
+"장된 Web Bean을 제공합니다:  "
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1402,3 +1472,542 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr "Web Beans는 의존성 삽입에 대한 세 가지 주요 메카니즘을 지원합니다: "
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "생성자 매개 변수 삽입: "
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "EJB가 Web Bean 관리자가 아닌 EJB 컨테이너에 의해 인스턴스화된 이래 생성자 "
+#~ "매개변수 삽입은 EJB beans을 지원하지 않습니다. "
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "기본값 바인딩 유형 <literal>@Current</literal>가 적용되었을 경우 생성자의 "
+#~ "매개 변수 및 초기화 방식에서는 명시적으로 어노테이션할 필요가 없습니다. 하"
+#~ "지만 삽입된 영역에는 <emphasis>반드시</emphasis> 바인딩 유형을 지정해야 하"
+#~ "며, 언제 기본값 바인딩 유형을 적용할 지도 지정해야 합니다. 영역에 바인딩 "
+#~ "유형이 지정되어 있지 않을 경우, 이는 삽입되지 않게 됩니다. "
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "생산자 방식은 매개 변수 삽입을 지원합니다:  "
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "마지막으로 옵저버 방식 (<xref linkend=\"events\"/>에서 살펴보게됨), 폐지 "
+#~ "방식 및 소멸자 방식 모두는 매개 변수 삽입을 지원합니다. "
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "하나의 API 구현이 클라이언트에 변경하지 않고 <emphasis>배치 유형 우선 순위"
+#~ "</emphasis>를 사용하여 배치시 다른 동일한 API 구현을 덮어쓰기하게 합니"
+#~ "다.  "
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Web Beans 관리자가 어떻게 Web Bean을 삽입할 지를 결정하는 방법에 대해 살펴"
+#~ "봅시다. "
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "멤버와 바인딩 어노테이션 "
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "바인딩 어노테이션은 멤버를 갖을 수 있습니다: "
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "이러한 경우, 멤버 값이 중요합니다:   "
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "바인딩 어노테이션의 조합 "
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "바인딩 어노테이션 및 생산자 방식 "
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "생산자 방식은 바인딩 어노테이션을 지정할 수 도 있습니다: "
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "기본값 바인딩 유형 "
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beans는 명확하게 바인딩 유형을 지정하지 않은 Web Bean이나 또는 삽입 지"
+#~ "점에 대한 기본값 바인딩 유형인 <literal>@Current</literal> 바인딩 유형을 "
+#~ "정의합니다.  "
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "<literal>@Current</literal>를 지정하기 위해 필요한 일반적인 환경이 두 가"
+#~ "지 있습니다:      "
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "기본값 바인딩 유형과 함께 삽입 영역으로 이를 명시하기 위한 영역에서 "
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr "기본값 바인딩 유형에 더하여 다른 바인딩 유형을 갖는 Web Bean에서 "
+
+#~ msgid "Deployment types"
+#~ msgstr "배치 유형 "
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "모든 Web Beans는 <emphasis>배치 유형</emphasis>을 갖습니다. 각각의 배치 유"
+#~ "형은 시스템의 일부 배치에 조건부로 설치되어야 하는 Web Beans 모음을 인식합"
+#~ "니다. "
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "예를 들어, <literal>@Mock</literal>라는 배치 유형을 정의할 수 있으며, 이"
+#~ "는 시스템이 통합적인 테스트 환경 내에서 실행될 때 설치되어야 하는 Web "
+#~ "Beans를 인식합니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "지불 절차를 처리하기 위한 외부적 시스템과 상호 작용하는 일부 Web Bean이 있"
+#~ "다고 가정합시다:  "
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "이러한 Web Bean이 배치 유형을 명시적을 지정하지 않고 있으므로, 이는 기본"
+#~ "값 배치 유형 <literal>@Production</literal>을 갖게 됩니다.  "
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "통합 또는 단위 테스트를 위해 외부적 시스템은 속도가 느리거나 또는 사용 불"
+#~ "가능합니다. 따라서 모의 객체를 생성할 수 있습니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr ""
+#~ "하지만 Web Bean 관리자가 특정 배치에 어떤 구현을 사용할 지를 어떻게 결정할"
+#~ "까요?   "
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "배치 유형 활성화   "
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beans는 두 개의 내장된 배치 유형을 정의합니다: <literal>@Production</"
+#~ "literal> 및 <literal>@Standard</literal>. 시스템이 배치되면 기본값으로 내"
+#~ "장된 배치 유형과 함께 Web Beans 만이 활성화됩니다. <literal>web-beans."
+#~ "xml</literal>에서 목록을 나열하여 특정 배치에서 활성화될 추가 배치 유형을 "
+#~ "인식할 수 있습니다.    "
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "예제로 다시 돌아가서, 통합적 테스트를 배치할 때, 모든 <literal>@Mock</"
+#~ "literal> 객체가 설치되기를 원합니다: "
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "이제 Web Bean 관리자는 배치시 <literal>@Production</literal>, "
+#~ "<literal>@Standard</literal>, <literal>@Mock</literal> 어노테이션된 모든 "
+#~ "Web Beans를 인식 및 설치하게 됩니다.  "
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "<literal>@Standard</literal> 배치 유형은 Web Beans 사양에 의해 정의된 특"
+#~ "정 Web Beans에서만 사용됩니다. 자체적 Web Beans에는 이를 사용할 수 없으며 "
+#~ "이를 비활성화할 수 없습니다.  "
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "<literal>@Production</literal> 배치 유형은 배치 유형을 명시하지 않은 Web "
+#~ "Beans에 대한 기본값 배치 유형으로 비활성화될 수 있습니다.  "
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "배치 유형 우선 순위 "
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "관심을 기울이셨다면, Web Bean 관리자가 어떤 구현 &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> 또는 "
+#~ "<literal>MockPaymentProcessor</literal> &#151; 을 선택할 지를 어떻게 결정"
+#~ "하는지에 대해 궁금해 하셨을 것입니다. 관리자기 이러한 삽입 지점에 이르렀"
+#~ "을 때 무엇이 발생할 지를 고려합니다: "
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "<literal>PaymentProcessor</literal> 계약을 만족하는 두 개의 Web Beans가 있"
+#~ "습니다. 삽입 지점에서 바인딩 어노테이션은 소스로 하드-코드화되어 있으므"
+#~ "로, 명확하게 하기 위해 바인딩 어노테이션을 사용할 수 없으며, 관리자가 배치"
+#~ "시 결정할 수 있게 하기를 원합니다!  "
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "이러한 문제의 해결책은 각각의 배치 유형이 다른 <emphasis>우선 순위</"
+#~ "emphasis>를 갖게 하는 것입니다. 배치 유형의 우선 순위는 <literal>web-"
+#~ "beans.xml</literal>에 나타나는 순서에 의해 결정됩니다. 예에서 "
+#~ "<literal>@Mock</literal>는 <literal>@Production</literal> 보다 나중에 나타"
+#~ "나므로 보다 높은 우선 순위를 갖습니다. "
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "하나 이상의 Web Bean이 삽입 지점에 의해 지정된 계약 (API 유형 및 바인딩 어"
+#~ "노테이션)에 만족할 수 있음을 관리자가 발견할 때 마다, 이는 Web Beans의 관"
+#~ "련된 우선 순위를 고려합니다. 하나의 Web Bean이 다른 것 보다 높은 우선 순위"
+#~ "를 갖을 경우, 삽입될 보다 높은 우선 순위의 Web Bean을 선택합니다. 예에서, "
+#~ "통합 테스트 환경 (실제적으로 원하는 환경)에서 실행할 때 Web Bean 관리자는 "
+#~ "<literal>MockPaymentProcessor</literal>를 삽입하게 됩니다.   "
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "이러한 기능을 오늘날의 관리자 구조와 비교하는 것은 흥미로운 일입니다. 다양"
+#~ "한 \"경량\"의 컨테이너는 classpath에 있는 클래스의 조건부 배치를 허용하지"
+#~ "만, 배치될 클래스는 명시적, 개별적이어하며, 설정 코드나 일부 XML 설정 파일"
+#~ "에 나열되어 있어야 합니다. Web Beans는 XML을 통한 Web Bean 정의 및 설정을 "
+#~ "지원하지만 복잡한 설정을 필요로 하지 않는 대부분의 경우, 배치 유형은 전체 "
+#~ "Web Beans 설정이 단일 XML 행으로 활성화되게 합니다. 동시에, 코드를 검색하"
+#~ "는 개발자는 어떤 배치 시나리오를 Web Bean이 사용할 지를 쉽게 인식할 수 있"
+#~ "습니다.  "
+
+#~ msgid "Example deployment types"
+#~ msgstr "배치 유형 예시 "
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr ""
+#~ "배치 유형은 모든 종류가 유용합니다, 다음에는 일부 예시가 있습니다:       "
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr "특정 사이트 Web Beans 용 <literal>@AustralianTaxLaw</literal>  "
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "Web Beans에서 작성되는 제삼자 프레임워크 용 <literal>@SeamFramework</"
+#~ "literal>, <literal>@Guice</literal> "
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "Web Beans 사양에 의해 정의된 표준 Web Beans 용 <literal>@Standard</"
+#~ "literal> "
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "더 많은 애플리케이션을 생각하실 수 있을 것입니다..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "<literal>UnsatisfiedDependencyException</literal> 또는 "
+#~ "<literal>AmbiguousDependencyException</literal>을 수정하기가 쉽습니다. "
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "<literal>UnsatisfiedDependencyException</literal>을 수정하려면, API 유형"
+#~ "을 구현하는 Web Bean을 제공하고 삽입 지점의 바인딩 유형을 갖거나 &#151; 또"
+#~ "는 API 유형을 이미 구현하고 있는 Web Bean의 배치 유형을 활성화하고 바인딩 "
+#~ "유형을 갖습니다.  "
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "<literal>AmbiguousDependencyException</literal>을 수정하려면, 두 개의 API "
+#~ "유형 구현 사이에서 구별하기 위해 바인딩 유형을 소개하거나 구현 중 하나의 "
+#~ "배치 유형을 변경하여 Web Bean 관리자가 이들 사이에서 선택하기 위해 배치 유"
+#~ "형 우선 순위를 사용할 수 있습니다. <literal>AmbiguousDependencyException</"
+#~ "literal>은 두 개의 Web Beans가 바인딩 유형을 공유하여 동일한 배치 유형을 "
+#~ "갖고 있을 때에만 발생할 수 있습니다.  "
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "<literal>Manager</literal> 객체는 프로그램적으로 Web Bean 인스턴스의 획득"
+#~ "을 위한 방식 모음을 제공합니다. "
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "바인딩 어노테이션은 <literal>AnnotationLiteral</literal> 도우미 클래스를 "
+#~ "하부클래스화하여 지정될 수 있으며, 그렇지 않으면 Java에서 어노테이션 유형"
+#~ "을 인스턴스화하기 어렵습니다.  "
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "바인딩 유형이 어노테이션 멤버를 갖을 경우, <literal>AnnotationLiteral</"
+#~ "literal>의 임의의 하부클래스를 사용할 수 없습니다 &#151; 대신 named 하부 "
+#~ "클래스를 생성해야 합니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "수명 주기 콜백, <literal>@Resource</literal>, <literal>@EJB</literal> 및 "
+#~ "<literal>@PersistenceContext</literal> "
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "Enterprise Web Beans는 EJB 사양에 의해 정의된 모든 수명 주기 콜백을 지원합"
+#~ "니다: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, "
+#~ "<literal>@PrePassivate</literal> 및 <literal>@PostActivate</literal>. "
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "엔터프라이즈 및 심플 Web Beans는 Java EE 리소스 삽입, EJB 및 JPA 영구적 컨"
+#~ "텍스에 대해 <literal>@Resource</literal>, <literal>@EJB</literal> 및 "
+#~ "<literal>@PersistenceContext</literal>의 사용을 각각 지원합니다. 심플 Web "
+#~ "Beans는 <literal>@PersistenceContext(type=EXTENDED)</literal>의 사용을 지"
+#~ "원하지 않습니다.    "
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "<literal>@PostConstruct</literal> 콜백은 모든 의존성이 삽입된 후에 나타납"
+#~ "니다. "

Modified: doc/trunk/reference/ko-KR/interceptors.po
===================================================================
--- doc/trunk/reference/ko-KR/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: interceptors\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:10+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,72 +15,72 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "인터셉터 "
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
+#: interceptors.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
-msgstr "Web Beans는 EJB 3.0의 기본 인터셉터 구조를 재사용하여, 두 가지 방향으로 기능을 확장합니다: "
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web Beans는 Web Beans에 인터셉터를 바인딩하기 위해 보다 복잡한 어노테이션 기"
+"반 방식을 특징으로 합니다. "
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "Web Bean에는 세션 beans 만이 아니라 인터셉터도 있을 수 있습니다. "
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
+#: interceptors.xml:12
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
-msgstr "Web Beans는 Web Beans에 인터셉터를 바인딩하기 위해 보다 복잡한 어노테이션 기반 방식을 특징으로 합니다. "
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "EJB 사양은 두 종류의 인터셉션 지점을 정의합니다:  "
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "비지니스 방식 인터셉터 "
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "수명주기 콜백 인터셉터 "
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "EJB 사양은 두 종류의 인터셉션 지점을 정의합니다:  "
+
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
-msgstr "<emphasis>비지니스 방식 인터셉터</emphasis>는 Web Bean 클라이언트에 의해 Web Bean 방식 호출에 적용됩니다: "
+"methods of the bean by clients of the bean:"
+msgstr ""
+"<emphasis>비지니스 방식 인터셉터</emphasis>는 Web Bean 클라이언트에 의해 Web "
+"Bean 방식 호출에 적용됩니다: "
 
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -90,20 +90,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
 "of lifecycle callbacks by the container:"
-msgstr "<emphasis>수명 주기 콜백 인터셉터</emphasis>는 컨테이너에 의해 수명 주기 콜백 호출에 적용됩니다:  "
+msgstr ""
+"<emphasis>수명 주기 콜백 인터셉터</emphasis>는 컨테이너에 의해 수명 주기 콜"
+"백 호출에 적용됩니다:  "
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
@@ -117,28 +119,57 @@
 msgid ""
 "An interceptor class may intercept both lifecycle callbacks and business "
 "methods."
-msgstr "인터셉터 클래스는 수명 주기 콜백 및 비지니스 방식 모두를 차단할 수 있습니다. "
+msgstr ""
+"인터셉터 클래스는 수명 주기 콜백 및 비지니스 방식 모두를 차단할 수 있습니다. "
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"<emphasis>수명 주기 콜백 인터셉터</emphasis>는 컨테이너에 의해 수명 주기 콜"
+"백 호출에 적용됩니다:  "
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "인터셉터 바인딩 "
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
+#: interceptors.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "Web Beans의 일부는 트랜젝션할 수 있음을 명시하고자 한다고 가정합니다. 처음으로 해야할 것은 어떤 Web Beans에 관심이 있는 지를 지정하기 위해 <emphasis>인터셉터 바인딩 어노테이션</emphasis>을 합니다:  "
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"Web Beans의 일부는 트랜젝션할 수 있음을 명시하고자 한다고 가정합니다. 처음으"
+"로 해야할 것은 어떤 Web Beans에 관심이 있는 지를 지정하기 위해 <emphasis>인터"
+"셉터 바인딩 어노테이션</emphasis>을 합니다:  "
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -149,15 +180,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
 "transactional object:"
-msgstr "<literal>ShoppingCart</literal>가 트랜젝션 객체임을 쉽게 지정할 수 있습니다:  "
+msgstr ""
+"<literal>ShoppingCart</literal>가 트랜젝션 객체임을 쉽게 지정할 수 있습니"
+"다:  "
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -167,17 +200,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr "원하실 경우, 하나의 방식 만이 트랙젝션 가능하도록 지정할 수 있습니다: "
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -185,28 +218,33 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "인터셉터 구현 "
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
+#: interceptors.xml:81
+#, fuzzy, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "행을 따라 어딘가에 이러한 트랜젝션 관리 측면을 제공하기 위해 실제적으로 인터셉터를 구현해야 합니다. 해야 할 작업은 표준 EJB 인터셉터를 생성하고 이를 <literal>@Interceptor</literal> 및 <literal>@Transactional</literal>로 어노테이션하는 것입니다.  "
+msgstr ""
+"행을 따라 어딘가에 이러한 트랜젝션 관리 측면을 제공하기 위해 실제적으로 인터"
+"셉터를 구현해야 합니다. 해야 할 작업은 표준 EJB 인터셉터를 생성하고 이를 "
+"<literal>@Interceptor</literal> 및 <literal>@Transactional</literal>로 어노테"
+"이션하는 것입니다.  "
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -217,23 +255,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
-msgstr "모든 Web Beans 인터셉터는 심플 Web Beans으로, 의존성 삽입및 컨텍스트 수명 주기 관리의 장점을 취할 수 있습니다.    "
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
@@ -249,114 +286,132 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr "여러 인터셉터는 동일한 인터셉터 바인딩 유형을 사용할 수 있습니다.  "
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "인터셉터 활성화 "
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
-msgstr "마지막으로 <literal>web-beans.xml</literal>에서 인터셉터를 <emphasis>활성화</emphasis>해야 합니다.  "
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "왜 각진 괄호를 써야 합니까? "
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "XML 선언으로 두 가지 문제를 해결합니다:  "
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
 "system, ensuring deterministic behavior, and"
-msgstr "이는 시스템에서 모든 인터셉터에 대한 전체적인 순서를 지정할 수 있도록 활성화하며, 결정적인 작업를 확인합니다  "
+msgstr ""
+"이는 시스템에서 모든 인터셉터에 대한 전체적인 순서를 지정할 수 있도록 활성화"
+"하며, 결정적인 작업를 확인합니다  "
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr "배치시 인터셉터 클래스를 활성화 또는 비활성화하게 합니다.    "
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
+#: interceptors.xml:130
+#, fuzzy, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
-msgstr "예를 들어, <literal>TransactionInterceptor</literal> 이전에 보안 인터셉터를 실행하도록 지정할 수 있습니다.  "
+"transaction interceptor."
+msgstr ""
+"예를 들어, <literal>TransactionInterceptor</literal> 이전에 보안 인터셉터를 "
+"실행하도록 지정할 수 있습니다.  "
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "또는 테스트 환경에서 두 가지 모두를 비활성화시킬 수 있습니다!  "
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "멤버와 인터셉터 바인딩  "
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
 "<literal>@Transactional</literal> annotation:"
-msgstr "<literal>@Transactional</literal> 어노테이션에 정보를 추가하고자 한다고 가정합시다: "
+msgstr ""
+"<literal>@Transactional</literal> 어노테이션에 정보를 추가하고자 한다고 가정"
+"합시다: "
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -367,21 +422,25 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
+#: interceptors.xml:150
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beans는 <literal>requiresNew</literal> 값을 사용하여 두 개의 다른 인터셉터 <literal>TransactionInterceptor</literal>와 <literal>RequiresNewTransactionInterceptor</literal> 중에서 선택하게 됩니다. "
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beans는 <literal>requiresNew</literal> 값을 사용하여 두 개의 다른 인터셉"
+"터 <literal>TransactionInterceptor</literal>와 "
+"<literal>RequiresNewTransactionInterceptor</literal> 중에서 선택하게 됩니다. "
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -392,41 +451,47 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
 "this:"
-msgstr "다음과 같이 <literal>RequiresNewTransactionInterceptor</literal>를 사용할 수 있습니다:  "
+msgstr ""
+"다음과 같이 <literal>RequiresNewTransactionInterceptor</literal>를 사용할 수 "
+"있습니다:  "
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
+#: interceptors.xml:163
+#, fuzzy, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
-msgstr "한 개의 인터샙터만이 있고 인터셉터를 바인딩할 때 <literal>requiresNew</literal> 값을 무시하기 위한 관리자를 원할 경우에는 <literal>@NonBinding</literal> 어노테이션을 사용할 수 있습니다:  "
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"한 개의 인터샙터만이 있고 인터셉터를 바인딩할 때 <literal>requiresNew</"
+"literal> 값을 무시하기 위한 관리자를 원할 경우에는 <literal>@NonBinding</"
+"literal> 어노테이션을 사용할 수 있습니다:  "
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -437,25 +502,27 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "여러개의 인터셉터 바인딩 어노테이션  "
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
+#: interceptors.xml:176
+#, fuzzy, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
 msgstr ""
-"일반적으로 여러개의 인터셉터를 Web Bean에 바인딩하기 위해 인터셉터 바인딩 유형의 조합을 사용합니다. 예를 들어, 다음과 같은 명시를 사용하여 동일한 Web Bean에 <literal>TransactionInterceptor</literal> 및 "
+"일반적으로 여러개의 인터셉터를 Web Bean에 바인딩하기 위해 인터셉터 바인딩 유"
+"형의 조합을 사용합니다. 예를 들어, 다음과 같은 명시를 사용하여 동일한 Web "
+"Bean에 <literal>TransactionInterceptor</literal> 및 "
 "<literal>SecurityInterceptor</literal>를 바인딩할 수 있습니다: "
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -465,15 +532,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
 "combination of interceptor binding types:"
-msgstr "하지만 매우 복잡한 경우 인터셉터 자체가 인터셉터 바인딩 유형의 조합을 일부 지정할 수 있습니다:  "
+msgstr ""
+"하지만 매우 복잡한 경우 인터셉터 자체가 인터셉터 바인딩 유형의 조합을 일부 지"
+"정할 수 있습니다:  "
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -483,19 +552,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
 "method using any one of the following combinations:"
-msgstr "그 후 이러한 인터셉터는 다음과 같은 조합 중 하나를 사용하여 <literal>checkout()</literal> 방식에 바운딩될 수 있습니다: "
+msgstr ""
+"그 후 이러한 인터셉터는 다음과 같은 조합 중 하나를 사용하여 <literal>checkout"
+"()</literal> 방식에 바운딩될 수 있습니다: "
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -503,12 +574,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -517,12 +588,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -531,12 +602,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -545,43 +616,51 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "인터셉터 바인딩 유형 상속 "
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
 "annotation inheritance. Really, annotations should have reuse built in, to "
 "allow this kind of thing to work:"
-msgstr "어노테이션에 대한 Java 언어 지원 한계는 어노테이션 상속의 결여입니다. 실제로 어노테이션은 재사용 기능이 내장되어 있어 이러한 기능이 작동하게 해야 합니다: "
+msgstr ""
+"어노테이션에 대한 Java 언어 지원 한계는 어노테이션 상속의 결여입니다. 실제로 "
+"어노테이션은 재사용 기능이 내장되어 있어 이러한 기능이 작동하게 해야 합니다: "
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
+#: interceptors.xml:216
+#, fuzzy, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "다행히도 Web Beans는 이러한 생략된 Java의 기능을 해결하여 하나의 인터셉터 바인딩 유형을 다른 인터셉터 바인딩 유형과 어노테이션할 수 있습니다. 인터셉터 바인딩은 트렌젝션 가능하여  &#151;  첫번째 인터셉터 바인딩이 있는 Web Bean은 메타 어노테이션으로 명시된 인터셉터 바인딩을 상속할 수 있습니다. "
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"다행히도 Web Beans는 이러한 생략된 Java의 기능을 해결하여 하나의 인터셉터 바"
+"인딩 유형을 다른 인터셉터 바인딩 유형과 어노테이션할 수 있습니다. 인터셉터 바"
+"인딩은 트렌젝션 가능하여  &#151;  첫번째 인터셉터 바인딩이 있는 Web Bean은 메"
+"타 어노테이션으로 명시된 인터셉터 바인딩을 상속할 수 있습니다. "
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -593,38 +672,44 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
+#: interceptors.xml:225
+#, fuzzy, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
-msgstr "<literal>@Action</literal>으로 어노테이션된 Web Bean은 <literal>TransactionInterceptor</literal> 및 <literal>SecurityInterceptor</literal>로 바운딩됩니다. (<literal>TransactionalSecureInterceptor</literal>이 있을 경우 이것으로 바운딩됩니다.) "
+msgstr ""
+"<literal>@Action</literal>으로 어노테이션된 Web Bean은 "
+"<literal>TransactionInterceptor</literal> 및 <literal>SecurityInterceptor</"
+"literal>로 바운딩됩니다. (<literal>TransactionalSecureInterceptor</literal>"
+"이 있을 경우 이것으로 바운딩됩니다.) "
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "<literal>@Interceptors</literal> 사용 "
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
+#: interceptors.xml:236
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
-msgstr "EJB 사양에 의해 정의된 <literal>@Interceptors</literal> 어노테이션은 엔터프라이즈 및 심플 Web Beans 모두를 지원합니다. 예:   "
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"EJB 사양에 의해 정의된 <literal>@Interceptors</literal> 어노테이션은 엔터프라"
+"이즈 및 심플 Web Beans 모두를 지원합니다. 예:   "
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
@@ -634,34 +719,82 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "하지만, 이러한 방식은 다음과 같은 결점을 갖습니다: "
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr "인터셉터 구현은 비지니스 코드에서 하드코어되어 있습니다 "
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr "인터셉터는 배치시 쉽게 비활성화할 수 없습니다, "
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
+#: interceptors.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "인터셉터 순서는 비전역적입니다 &#151; 이는 클래스 레벨로 열거된 인터셉터 순서에 의해 결정됩니다. "
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"인터셉터 순서는 비전역적입니다 &#151; 이는 클래스 레벨로 열거된 인터셉터 순서"
+"에 의해 결정됩니다. "
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr "따라서 Web Beans 형식 인터셉터 바인딩을 사용할 것을 권장합니다.  "
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans는 EJB 3.0의 기본 인터셉터 구조를 재사용하여, 두 가지 방향으로 기"
+#~ "능을 확장합니다: "
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr "Web Bean에는 세션 beans 만이 아니라 인터셉터도 있을 수 있습니다. "
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "모든 Web Beans 인터셉터는 심플 Web Beans으로, 의존성 삽입및 컨텍스트 수명 "
+#~ "주기 관리의 장점을 취할 수 있습니다.    "
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "마지막으로 <literal>web-beans.xml</literal>에서 인터셉터를 <emphasis>활성"
+#~ "화</emphasis>해야 합니다.  "
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "또는 테스트 환경에서 두 가지 모두를 비활성화시킬 수 있습니다!  "

Modified: doc/trunk/reference/ko-KR/intro.po
===================================================================
--- doc/trunk/reference/ko-KR/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: intro\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-29 14:49+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
@@ -28,60 +28,129 @@
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Web Beans로 시작하기 "
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
-msgstr "첫 번째 Web Bean 작성을 시작해 보시겠습니까? 혹은 어떤 종류의 Web Beans 사양을 통해 도약하게 될 지를 의아해 하거나 의심하고 계실 수 도 있겠군요! 한 가지 좋은 정보는 여러분은 이미 수백개의 혹은 수천개의 Web Beans을 이미 작성 및 사용하고 계셨다는 것입니다. 아마 여러분은 처음으로 작성하신 Web Beans를 기억하지 못하고 계실 수 도 있습니다.  "
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"첫 번째 Web Bean 작성을 시작해 보시겠습니까? 혹은 어떤 종류의 Web Beans 사양"
+"을 통해 도약하게 될 지를 의아해 하거나 의심하고 계실 수 도 있겠군요! 한 가지 "
+"좋은 정보는 여러분은 이미 수백개의 혹은 수천개의 Web Beans을 이미 작성 및 사"
+"용하고 계셨다는 것입니다. 아마 여러분은 처음으로 작성하신 Web Beans를 기억하"
+"지 못하고 계실 수 도 있습니다.  "
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "첫 번째 Web Bean "
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "Web Bean은 무엇인가요?  "
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
-msgstr "특정한 예외 상항에서 매개 변수가 없는 것을 허용하는 생성자와 함께하는 모든 Java 클래스는 Web Bean으로 이에는 모든 JavaBean이 포함됩니다. 이에 더하여 모든 EJB 3-스타일 세션 빈도 Web Bean입니다. 물론 매일 작성하셨던 JavaBeans 및 EJB는 Web Beans 사양에 의해 정의된 새로운 서비스의 장점을 취할 수 없지만, Web Beans으로서 기존 코드를 변경하지 않고 이 모든 것을 사용하실 수 있습니다 &#151; 기타 다른 Web Beans로의 삽입, Web Beans XML 설정 기능을 통한 설정, 인터셉터 및 데코레이터 추가 등&#151;    "
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:27
+#, no-c-format
+msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
 "years in various applications. The first class parses a string into a list "
 "of sentences:"
-msgstr "다양한 애플리케이션에서 오랫동안 사용해 온 두 개의 Java 클래스를 갖고 있다고 가정합시다. 첫 번째 클래스는 문자열을 문장 목록으로 구문 분석합니다:    "
+msgstr ""
+"다양한 애플리케이션에서 오랫동안 사용해 온 두 개의 Java 클래스를 갖고 있다고 "
+"가정합시다. 첫 번째 클래스는 문자열을 문장 목록으로 구문 분석합니다:    "
 
 #. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
+#: intro.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -89,21 +158,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
 msgid ""
 "The second existing class is a stateless session bean front-end for an "
 "external system that is able to translate sentences from one language to "
 "another:"
-msgstr "두 번째 클래스는 하나의 언어에서 다른 언어로 문장을 번역할 수 있는 외부 시스템에 대한 무상태 세션 빈 프론트엔드입니다:   "
+msgstr ""
+"두 번째 클래스는 하나의 언어에서 다른 언어로 문장을 번역할 수 있는 외부 시스"
+"템에 대한 무상태 세션 빈 프론트엔드입니다:   "
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -112,18 +183,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "여기서 <literal>Translator</literal>는 로컬 인터페이스입니다:  "
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -132,37 +203,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
+#: intro.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
-msgstr "불행하게도 전체 텍스트 문서를 번역하는 기존 클래스가 없으므로, 이러한 작업을 실행하는 Web Bean을 작성합시다:  "
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"불행하게도 전체 텍스트 문서를 번역하는 기존 클래스가 없으므로, 이러한 작업을 "
+"실행하는 Web Bean을 작성합시다:  "
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
 "sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -188,998 +259,976 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
+#: intro.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr "인스턴스를 Web Bean, Servlet 또는 EJB로 삽입하여 <literal>TextTranslator</literal> 인스턴스를 얻을 수 있습니다:  "
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
+msgstr ""
+"하지만 잠시 기다려주십시오: <literal>TextTranslator</literal>는 매개 변수 없"
+"는 생성자를 갖지 않습니다! 그래도 이것이 Web Bean입니까? 클래스가 "
+"<literal>@Initializer</literal>라고 어노테이션된 생성자를 갖고 있을 경우 매"
+"개 변수 없이 생성자를 갖지 않는 클래스는 Web Bean이 될 수 있습니다.  "
 
-#. Tag: programlisting
-#: intro.xml:49
+#. Tag: para
+#: intro.xml:93
+#, fuzzy, no-c-format
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
+msgstr ""
+"예상하셨듯이, <literal>@Initializer</literal> 어노테이션은 의존성 삽입을 사용"
+"하여 실행하기 위한 무엇인가를 갖고 있습니다! <literal>@Initializer</literal>"
+"는 생성자 또는 Web Bean 방식에 적용될 수 있으며, Web Bean을 인스턴스화할 때 "
+"Web Bean 관리자에게 생성자 또는 Web Bean 방식을 호출할 것을 지시합니다. Web "
+"Bean 관리자는 기타 다른 Web Beans를 생성자 또는 방식의 매개 변수에 삽입하게 "
+"됩니다.  "
+
+#. Tag: para
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr "다른 방법으로 Web Beans 관리자 방식을 직접 호출하여 인스턴스를 획득할 수 있습니다: "
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
+msgstr ""
 
 #. Tag: programlisting
-#: intro.xml:54
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
 
 #. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr "하지만 잠시 기다려주십시오: <literal>TextTranslator</literal>는 매개 변수 없는 생성자를 갖지 않습니다! 그래도 이것이 Web Bean입니까? 클래스가 <literal>@Initializer</literal>라고 어노테이션된 생성자를 갖고 있을 경우 매개 변수 없이 생성자를 갖지 않는 클래스는 Web Bean이 될 수 있습니다.  "
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "여기서 <literal>Translator</literal>는 로컬 인터페이스입니다:  "
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
-"예상하셨듯이, <literal>@Initializer</literal> 어노테이션은 의존성 삽입을 사용하여 실행하기 위한 무엇인가를 갖고 있습니다! <literal>@Initializer</literal>는 생성자 또는 Web Bean 방식에 적용될 수 있으며, Web Bean을 인스턴스화할 때 Web Bean 관리자에게 생성자 또는 Web Bean 방식을 호출할 것을 지시합니다. Web Bean 관리자는 기타 다른 Web "
-"Beans를 생성자 또는 방식의 매개 변수에 삽입하게 됩니다.  "
 
 #. Tag: para
-#: intro.xml:68
-#, no-c-format
+#: intro.xml:135
+#, fuzzy, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> "
-"available &#151; if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed &#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "시스템 초기화시 Web Bean 관리자는 각각의 삽입 지점을 만족시키는 하나의 Web Bean이 존재하도록 이를 유효화해야 합니다. 예에서 사용 가능한 <literal>Translator</literal> 구현이 없을 경우 &#151; <literal>SentenceTranslator</literal> EJB가 배치되지 않는 다면 &#151; Web Bean 관리자는 <literal>UnsatisfiedDependencyException</literal>을 넘기게 됩니다. 하나 이상의 <literal>Translator</literal>를 구현할 수 있을 경우, Web Bean 관리자는 <literal>AmbiguousDependencyException</literal>을 넘기게 됩니다.  "
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"인스턴스를 Web Bean, Servlet 또는 EJB로 삽입하여 <literal>TextTranslator</"
+"literal> 인스턴스를 얻을 수 있습니다:  "
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "Web Bean은 무엇인가요?  "
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:142
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "<emphasis>정확하게</emphasis> Web Bean은 무엇인가요?"
-
-#. Tag: para
-#: intro.xml:84
-#, no-c-format
 msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "Web Bean은 비지니스 로직이 들어 있는 애플리케이션 클래스입니다. Web Bean은 Java 코드에서 직접 불러오거나 또는 Unified EL을 통해 불러올 수 있습니다. Web Bean은 트랜젝션 리소스에 액세스할 수 있습니다. Web Beans 사이에서의 종속성은 Web Bean 관리자에 의해 자동으로 관리됩니다. 대부분의 Web Beans은 <emphasis>상태 유지 (stateful)</emphasis> 및 <emphasis>컨텍스트</emphasis> 기반입니다. Web Bean 수명 주기는 항상 Web Bean 관리자에 의해 관리됩니다.  "
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:91
-#, no-c-format
+#: intro.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
-msgstr "두 번째 내용으로 돌아가 봅시다. \"컨텍스트화\"된다는 의미는 정확하게 무엇입니까? Web Beans가 상태 유지 세션 빈이면, 보유하고 있는것이 <emphasis>어떤</emphasis> 빈 인스턴스인가가 문제입니다. 무상태 구성 요소 모델 이나 (예: 무상태 세션 빈) 또는 singleton 구성요소 모델 (예: ervlets 또는 singleton 빈)과는 다르게 Web Bean의 다른 클라이언트는 다른 상태에 있는 Web Bean을 보게 됩니다. 클라이언트-가시성 상태는 클라이언트가 참조하고 있는 Web Bean의 인스턴스가 무엇인가에 의존합니다. "
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"시스템 초기화시 Web Bean 관리자는 각각의 삽입 지점을 만족시키는 하나의 Web "
+"Bean이 존재하도록 이를 유효화해야 합니다. 예에서 사용 가능한 "
+"<literal>Translator</literal> 구현이 없을 경우 &#151; "
+"<literal>SentenceTranslator</literal> EJB가 배치되지 않는 다면 &#151; Web "
+"Bean 관리자는 <literal>UnsatisfiedDependencyException</literal>을 넘기게 됩니"
+"다. 하나 이상의 <literal>Translator</literal>를 구현할 수 있을 경우, Web "
+"Bean 관리자는 <literal>AmbiguousDependencyException</literal>을 넘기게 됩니"
+"다.  "
 
 #. Tag: para
-#: intro.xml:98
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""
-"하지만, 무상태 또는 싱글턴 모델과 같으나 상태 유지 세션 빈 과는 <emphasis>다르게</"
-"emphasis>, 클라이언트는 인스턴스의 수명 주기를 명시적으로 생성 또는 파괴하여 제어하지 못합니다. 대신, Web Bean의 <emphasis>범위는</emphasis> 다음 사항을 결정합니다:  "
 
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "각각의 Web Bean 인스턴스의 수명 주기 "
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Web Beans로 시작하기 "
 
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "어떤 클라이언트가 특정 Web Bean 인스턴스의 참조를 공유할 것인지 "
+#~ msgid "Your first Web Bean"
+#~ msgstr "첫 번째 Web Bean "
 
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
-msgstr "Web Beans 애플리케이션에 있는 주어진 스레드의 경우, Web Bean 범위와 관련된 <emphasis>활성 컨텍스트</emphasis>가 있을 수 있습니다. 이러한 컨텍스트는 스레드에서 유일하거나 (예: 요청 범위일 경우) 또는 특정한 다른 스레드와 공유될 수 있거나 (예: Web Bean이 세션 범위일 경우) 또는 기타 다른 모든 스레드일 수 있습니다 (Web Bean이 애플리케이션 범위일 경우). "
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "특정한 예외 상항에서 매개 변수가 없는 것을 허용하는 생성자와 함께하는 모"
+#~ "든 Java 클래스는 Web Bean으로 이에는 모든 JavaBean이 포함됩니다. 이에 더하"
+#~ "여 모든 EJB 3-스타일 세션 빈도 Web Bean입니다. 물론 매일 작성하셨던 "
+#~ "JavaBeans 및 EJB는 Web Beans 사양에 의해 정의된 새로운 서비스의 장점을 취"
+#~ "할 수 없지만, Web Beans으로서 기존 코드를 변경하지 않고 이 모든 것을 사용"
+#~ "하실 수 있습니다 &#151; 기타 다른 Web Beans로의 삽입, Web Beans XML 설정 "
+#~ "기능을 통한 설정, 인터셉터 및 데코레이터 추가 등&#151;    "
 
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr "동일한 컨텍스트에서 실행되는 클라이언트 (예: 기타 다른 Web Bean)는 동일한 Web Bean의 인스턴스를 보게 됩니다. 하지만 다른 컨텍스트에서 실행되는 클라이언트는 다른 인스턴스를 보게 됩니다. "
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "다른 방법으로 Web Beans 관리자 방식을 직접 호출하여 인스턴스를 획득할 수 "
+#~ "있습니다: "
 
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
-msgstr "컨텍스트 모델의 큰 장점 중 하나는 상태 유지 Web Beans가 서비스처럼 다루어지게 하는 것입니다! 클라이언트는 사용되는 Web Bean의 수명 주기 관리 자체를 고려하거나, 또는 <emphasis>수명 주기가 무엇인지를 알 필요가 없습니다.</emphasis> Web Beans는 메세지를 전달하여 상호작용하고 Web Bean 구현은 자신의 상태에 따른 수명 주기를 정의합니다. Web Beans는 다음과 같은 이유로 느슨하게 연결되어 있습니다:  "
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "잘 정의된 공개 API를 통해 상호 작용하므로 "
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "<emphasis>정확하게</emphasis> Web Bean은 무엇인가요?"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "수명 주기는 완전하게 연결 해제되므로 "
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Web Bean은 비지니스 로직이 들어 있는 애플리케이션 클래스입니다. Web Bean"
+#~ "은 Java 코드에서 직접 불러오거나 또는 Unified EL을 통해 불러올 수 있습니"
+#~ "다. Web Bean은 트랜젝션 리소스에 액세스할 수 있습니다. Web Beans 사이에서"
+#~ "의 종속성은 Web Bean 관리자에 의해 자동으로 관리됩니다. 대부분의 Web Beans"
+#~ "은 <emphasis>상태 유지 (stateful)</emphasis> 및 <emphasis>컨텍스트</"
+#~ "emphasis> 기반입니다. Web Bean 수명 주기는 항상 Web Bean 관리자에 의해 관"
+#~ "리됩니다.  "
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "하나의 Web Bean을 동일한 API를 구현하고 다른 Web Bean 구현에 영향을 미치지 않고 다른 수명 주기 (다른 범위)를 갖는 다른 Web Bean으로 대체할 수 있습니다. 사실, <xref linkend=\"deploymenttypes\"/>에서 살펴보실 수 있듯이 Web Beans는 배치시 Web Bean 구현을 덮어쓰기하기 위한 정교한 기능을 정의합니다.   "
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "두 번째 내용으로 돌아가 봅시다. \"컨텍스트화\"된다는 의미는 정확하게 무엇"
+#~ "입니까? Web Beans가 상태 유지 세션 빈이면, 보유하고 있는것이 <emphasis>어"
+#~ "떤</emphasis> 빈 인스턴스인가가 문제입니다. 무상태 구성 요소 모델 이나 "
+#~ "(예: 무상태 세션 빈) 또는 singleton 구성요소 모델 (예: ervlets 또는 "
+#~ "singleton 빈)과는 다르게 Web Bean의 다른 클라이언트는 다른 상태에 있는 "
+#~ "Web Bean을 보게 됩니다. 클라이언트-가시성 상태는 클라이언트가 참조하고 있"
+#~ "는 Web Bean의 인스턴스가 무엇인가에 의존합니다. "
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "모든 Web Bean 클라이언트가 Web Beans가 될 수 없음에 유의합니다. Servlets 또는 Message-Driven Beans와 같은 &#151; 본래 삽입 가능한 컨텍스트 객체가 아닌 &#151; 객체는 삽입에 의해 Web Beans에 참조를 획득할 수 있습니다. "
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "하지만, 무상태 또는 싱글턴 모델과 같으나 상태 유지 세션 빈 과는 <emphasis>"
+#~ "다르게</emphasis>, 클라이언트는 인스턴스의 수명 주기를 명시적으로 생성 또"
+#~ "는 파괴하여 제어하지 못합니다. 대신, Web Bean의 <emphasis>범위는</"
+#~ "emphasis> 다음 사항을 결정합니다:  "
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "보다 공식적으로 spec에 따르면: "
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "각각의 Web Bean 인스턴스의 수명 주기 "
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Web Bean은 다음과 같은 것으로 구성되어 있습니다: "
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr "어떤 클라이언트가 특정 Web Bean 인스턴스의 참조를 공유할 것인지 "
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "(비어 있지 않은) API 유형 모음 "
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Web Beans 애플리케이션에 있는 주어진 스레드의 경우, Web Bean 범위와 관련"
+#~ "된 <emphasis>활성 컨텍스트</emphasis>가 있을 수 있습니다. 이러한 컨텍스트"
+#~ "는 스레드에서 유일하거나 (예: 요청 범위일 경우) 또는 특정한 다른 스레드와 "
+#~ "공유될 수 있거나 (예: Web Bean이 세션 범위일 경우) 또는 기타 다른 모든 스"
+#~ "레드일 수 있습니다 (Web Bean이 애플리케이션 범위일 경우). "
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "(비어 있지 않은) 바인딩 어노테이션 유형 모음 "
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "동일한 컨텍스트에서 실행되는 클라이언트 (예: 기타 다른 Web Bean)는 동일한 "
+#~ "Web Bean의 인스턴스를 보게 됩니다. 하지만 다른 컨텍스트에서 실행되는 클라"
+#~ "이언트는 다른 인스턴스를 보게 됩니다. "
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "범위 "
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "컨텍스트 모델의 큰 장점 중 하나는 상태 유지 Web Beans가 서비스처럼 다루어"
+#~ "지게 하는 것입니다! 클라이언트는 사용되는 Web Bean의 수명 주기 관리 자체"
+#~ "를 고려하거나, 또는 <emphasis>수명 주기가 무엇인지를 알 필요가 없습니다.</"
+#~ "emphasis> Web Beans는 메세지를 전달하여 상호작용하고 Web Bean 구현은 자신"
+#~ "의 상태에 따른 수명 주기를 정의합니다. Web Beans는 다음과 같은 이유로 느슨"
+#~ "하게 연결되어 있습니다:  "
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "배치 유형 "
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "잘 정의된 공개 API를 통해 상호 작용하므로 "
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "Web Bean 이름 (옵션 사항) "
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "수명 주기는 완전하게 연결 해제되므로 "
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "인터셉터 바인딩 유형 모음 "
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "하나의 Web Bean을 동일한 API를 구현하고 다른 Web Bean 구현에 영향을 미치"
+#~ "지 않고 다른 수명 주기 (다른 범위)를 갖는 다른 Web Bean으로 대체할 수 있습"
+#~ "니다. 사실, <xref linkend=\"deploymenttypes\"/>에서 살펴보실 수 있듯이 "
+#~ "Web Beans는 배치시 Web Bean 구현을 덮어쓰기하기 위한 정교한 기능을 정의합"
+#~ "니다.   "
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "Web Bean 구현 "
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "모든 Web Bean 클라이언트가 Web Beans가 될 수 없음에 유의합니다. Servlets "
+#~ "또는 Message-Driven Beans와 같은 &#151; 본래 삽입 가능한 컨텍스트 객체가 "
+#~ "아닌 &#151; 객체는 삽입에 의해 Web Beans에 참조를 획득할 수 있습니다. "
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "이러한 용어가 Web Bean 개발자에게 무엇을 의미하는 살펴봅시다.  "
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "보다 공식적으로 spec에 따르면: "
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "API 유형, 바인딩 유형 및 의존성 삽입 "
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Web Bean은 다음과 같은 것으로 구성되어 있습니다: "
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr "주로 Web Beans는 의존성 삽입을 통해 다른 Web Beans에 참조를 획득합니다. 삽입된 속성은 삽입될 Web Bean을 만족시키는 \"계약\"을 지정합니다. 계약에는 다음과 같은 내용을 지정합니다: "
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "(비어 있지 않은) API 유형 모음 "
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "API 유형 "
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "(비어 있지 않은) 바인딩 어노테이션 유형 모음 "
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "바인딩 유형 모음 "
+#~ msgid "A scope"
+#~ msgstr "범위 "
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr "API는 사용자 정의 클래스 또는 인터페이스입니다. (Web Bean이 EJB 세션 빈일 경우, API 유형은 <literal>@Local</literal> 인터페이스이거나 또는 bean-class 로컬 보기입니다.) 바인딩 유형은 클라이언트-가시성 시멘틱을 나타내는 것으로 API의 일부 구현에 의해 만족됩니다. "
+#~ msgid "A deployment type"
+#~ msgstr "배치 유형 "
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr "바인딩 유형은 <literal>@BindingType</literal>으로 어노테이션된 사용자 정의 어노테이션에 의해 나타납니다. 예를 들어, 다음과 같은 삽입 지점은 <literal>PaymentProcessor</literal> API 유형 및 <literal>@CreditCard</literal> 바인딩 유형을 갖습니다:  "
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "Web Bean 이름 (옵션 사항) "
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "인터셉터 바인딩 유형 모음 "
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
-msgstr "바인딩 유형이 삽입 지점에 명확하게 지정되어 있지 않을 경우, 기본값 바인딩 유형<literal>@Current</literal>가 사용됩니다.  "
+#~ msgid "A Web Bean implementation"
+#~ msgstr "Web Bean 구현 "
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
-msgstr "각각의 삽입 지점의 경우, Web Bean 관리자는 계약을 만족시키는 (API를 구현하고 모든 바인딩 유형을 갖는) Web Bean을 검색하여 이를 삽입합니다. "
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr "이러한 용어가 Web Bean 개발자에게 무엇을 의미하는 살펴봅시다.  "
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr "다음과 같은 Web Bean은 <literal>@CreditCard</literal> 바인딩 유형을 갖고 <literal>PaymentProcessor</literal> API 유형을 구현합니다. 따라서 이는 예시 삽입 지점에 삽입될 수 있습니다:        "
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "API 유형, 바인딩 유형 및 의존성 삽입 "
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "주로 Web Beans는 의존성 삽입을 통해 다른 Web Beans에 참조를 획득합니다. 삽"
+#~ "입된 속성은 삽입될 Web Bean을 만족시키는 \"계약\"을 지정합니다. 계약에는 "
+#~ "다음과 같은 내용을 지정합니다: "
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
-msgstr "Web Bean이 바인딩 유형 모음을 명확히 지정하지 않을 경우, 이는 기본값 바인딩 유형인 <literal>@Current</literal>라는 하나의 바인딩 유형을 갖습니다. "
+#~ msgid "an API type, together with"
+#~ msgstr "API 유형 "
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr "Web Beans는 정교하지만 직관적인 <emphasis>해상도 알고리즘</emphasis>을 정의하여 특정 계약을 만족시키는 하나 이상의 Web Bean이 있을 경우 컨테이너가 무엇을 해야할 지를 결정하는 것을 돕습니다. 보다 자세한 내용은 <xref linkend=\"injection\"/>에서 다루겠습니다. "
+#~ msgid "a set of binding types."
+#~ msgstr "바인딩 유형 모음 "
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "배치 유형 "
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "API는 사용자 정의 클래스 또는 인터페이스입니다. (Web Bean이 EJB 세션 빈일 "
+#~ "경우, API 유형은 <literal>@Local</literal> 인터페이스이거나 또는 bean-"
+#~ "class 로컬 보기입니다.) 바인딩 유형은 클라이언트-가시성 시멘틱을 나타내는 "
+#~ "것으로 API의 일부 구현에 의해 만족됩니다. "
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr "<emphasis>배치 유형</emphasis>은 배치 시나리오에 의해 Web Beans을 구분하게 합니다. 배치 유형은 특정 배치 시나리오를 나타네는 어노테이션으로, 예를 들어 <literal>@Mock</literal>, <literal>@Staging</literal>, <literal>@AustralianTaxLaw</literal>가 있습니다. 시나리오에 배치되어야 할 Web Beans에 어노테이션을 적용합니다. 배치 유형은 단일 설정행을 사용하여 전체 Web Beans 모음이 상황에 따라 배치되게 합니다.  "
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "바인딩 유형은 <literal>@BindingType</literal>으로 어노테이션된 사용자 정"
+#~ "의 어노테이션에 의해 나타납니다. 예를 들어, 다음과 같은 삽입 지점은 "
+#~ "<literal>PaymentProcessor</literal> API 유형 및 <literal>@CreditCard</"
+#~ "literal> 바인딩 유형을 갖습니다:  "
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr "다수의 Web Beans는 배기본값 배치 유형 <literal>@Production</literal>을 사용하므로, 이러한 경우 배치 유형을 명확하게 지정할 필요가 없습니다. 예에서 모든 Web Bean 트리는 <literal>@Production</literal> 배치 유형을 갖습니다. "
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "테스트 환경에서, <literal>SentenceTranslator</literal> Web Bean을 \"모의 객체\"로 교체하고자 합니다: "
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "바인딩 유형이 삽입 지점에 명확하게 지정되어 있지 않을 경우, 기본값 바인딩 "
+#~ "유형<literal>@Current</literal>가 사용됩니다.  "
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "각각의 삽입 지점의 경우, Web Bean 관리자는 계약을 만족시키는 (API를 구현하"
+#~ "고 모든 바인딩 유형을 갖는) Web Bean을 검색하여 이를 삽입합니다. "
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr " <literal>MockSentenceTranslator</literal> 및 기타 다른 Web Bean 어노테이션 <literal>@Mock</literal>을 사용해야 함을 나타내기 위해 테스트 환경에서 <literal>@Mock</literal> 배치 유형을 활성화할 수 있습니다.   "
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "다음과 같은 Web Bean은 <literal>@CreditCard</literal> 바인딩 유형을 갖고 "
+#~ "<literal>PaymentProcessor</literal> API 유형을 구현합니다. 따라서 이는 예"
+#~ "시 삽입 지점에 삽입될 수 있습니다:        "
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr "<xref linkend=\"deploymenttypes\"/>에서 이러한 유일하고 강력한 기능에 관해 자세히 살펴 보겠습니다. "
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "범위 "
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Web Bean이 바인딩 유형 모음을 명확히 지정하지 않을 경우, 이는 기본값 바인"
+#~ "딩 유형인 <literal>@Current</literal>라는 하나의 바인딩 유형을 갖습니다. "
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr "<emphasis>범위</emphasis>는 Web Bean의 수명 주기및 인스턴스의 가시성을 정의합니다. Web Beans 컨텍스트 모델은 확장 가능하고, 임의의 범위를 수용합니다. 하지만, 특정 중요 범위는 사양으로 내장되어 있으며, Web Bean 관리자가 제공합니다. 범위는 어노테이션 유형에 의해 나타납니다.  "
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Beans는 정교하지만 직관적인 <emphasis>해상도 알고리즘</emphasis>을 정"
+#~ "의하여 특정 계약을 만족시키는 하나 이상의 Web Bean이 있을 경우 컨테이너가 "
+#~ "무엇을 해야할 지를 결정하는 것을 돕습니다. 보다 자세한 내용은 <xref "
+#~ "linkend=\"injection\"/>에서 다루겠습니다. "
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr "예를 들어, 웹 애플리케어션은 <emphasis>세션 범위</emphasis> Web Beans을 갖을 수 있습니다:  "
+#~ msgid "Deployment types"
+#~ msgstr "배치 유형 "
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>배치 유형</emphasis>은 배치 시나리오에 의해 Web Beans을 구분하"
+#~ "게 합니다. 배치 유형은 특정 배치 시나리오를 나타네는 어노테이션으로, 예를 "
+#~ "들어 <literal>@Mock</literal>, <literal>@Staging</literal>, "
+#~ "<literal>@AustralianTaxLaw</literal>가 있습니다. 시나리오에 배치되어야 할 "
+#~ "Web Beans에 어노테이션을 적용합니다. 배치 유형은 단일 설정행을 사용하여 전"
+#~ "체 Web Beans 모음이 상황에 따라 배치되게 합니다.  "
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr "세션 범위 Web Bean의 인스턴스는 사용자 세션으로 바운딩되어 세션 컨텍스트에서 실행되는 모든 요청에 의해 공유됩니다.  "
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "다수의 Web Beans는 배기본값 배치 유형 <literal>@Production</literal>을 사"
+#~ "용하므로, 이러한 경우 배치 유형을 명확하게 지정할 필요가 없습니다. 예에서 "
+#~ "모든 Web Bean 트리는 <literal>@Production</literal> 배치 유형을 갖습니다. "
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr "기본값으로, Web Beans는 <emphasis>dependent pseudo-scope</emphasis>라는 특정 범위에 속합니다. 이러한 범위를 갖는 Web Beans는 삽입되어야할 객체의 순수한 의존적 객체이며 수명주기는 객체의 수명주기로 바운딩됩니다. "
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "테스트 환경에서, <literal>SentenceTranslator</literal> Web Bean을 \"모의 "
+#~ "객체\"로 교체하고자 합니다: "
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "<xref linkend=\"scopescontexts\"/>에서 범위에 대해 보다 자세하게 다루겠습니다. "
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Web Bean 이름 및 Unified EL "
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ " <literal>MockSentenceTranslator</literal> 및 기타 다른 Web Bean 어노테이"
+#~ "션 <literal>@Mock</literal>을 사용해야 함을 나타내기 위해 테스트 환경에서 "
+#~ "<literal>@Mock</literal> 배치 유형을 활성화할 수 있습니다.   "
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Web Bean은 <emphasis>이름</emphasis>을 갖을 수 있으며, Unified EL 표현식에서 사용될 수 있습니다. Web Bean의 이름을 지정하는 것은 쉽습니다: "
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "<xref linkend=\"deploymenttypes\"/>에서 이러한 유일하고 강력한 기능에 관"
+#~ "해 자세히 살펴 보겠습니다. "
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "Scope"
+#~ msgstr "범위 "
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "이제 JSF 또는 JSP 페이지에서 쉽게 Web Bean을 사용할 수 있습니다:  "
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "<emphasis>범위</emphasis>는 Web Bean의 수명 주기및 인스턴스의 가시성을 정"
+#~ "의합니다. Web Beans 컨텍스트 모델은 확장 가능하고, 임의의 범위를 수용합니"
+#~ "다. 하지만, 특정 중요 범위는 사양으로 내장되어 있으며, Web Bean 관리자가 "
+#~ "제공합니다. 범위는 어노테이션 유형에 의해 나타납니다.  "
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "예를 들어, 웹 애플리케어션은 <emphasis>세션 범위</emphasis> Web Beans을 갖"
+#~ "을 수 있습니다:  "
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "Web Bean 관리자기 이름을 기본값으로 하게 하는 것이 보다 수월합니다:  "
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "세션 범위 Web Bean의 인스턴스는 사용자 세션으로 바운딩되어 세션 컨텍스트에"
+#~ "서 실행되는 모든 요청에 의해 공유됩니다.  "
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "이러한 경우, 이름 기본값은 <literal>shoppingCart</literal>가 됩니다 &#151; 첫번째 문자가 소문자로 된 수식어가 붙지않는 클래스 이름. "
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "기본값으로, Web Beans는 <emphasis>dependent pseudo-scope</emphasis>라는 특"
+#~ "정 범위에 속합니다. 이러한 범위를 갖는 Web Beans는 삽입되어야할 객체의 순"
+#~ "수한 의존적 객체이며 수명주기는 객체의 수명주기로 바운딩됩니다. "
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "인터셉터 바인딩 유형 "
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr ""
+#~ "<xref linkend=\"scopescontexts\"/>에서 범위에 대해 보다 자세하게 다루겠습"
+#~ "니다. "
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr "Web Beans는 EJB beans 뿐 만 아니라 일반 Java 클래스에 대해 EJB 3에 의해 정의된 인터셉터 기능을 지원합니다. 이에 더하여, Web Beans는 바인딩 인터셉터, EJB beans 및 기타 다른 Web Beans에 새로운 접근 방식을 제공합니다.  "
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Web Bean 이름 및 Unified EL "
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr "<literal>@Interceptors</literal> 어노테이션의 사용을 통해 인터셉터 클래스를 직접 지정할 수 있습니다: "
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Web Bean은 <emphasis>이름</emphasis>을 갖을 수 있으며, Unified EL 표현식에"
+#~ "서 사용될 수 있습니다. Web Bean의 이름을 지정하는 것은 쉽습니다: "
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "하지만, <emphasis>인터셉터 바인딩 유형</emphasis>을 통해 인터셉터 바인딩을 돌려 놓는 것이 보다 좋습니다:    "
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr "이제 JSF 또는 JSP 페이지에서 쉽게 Web Bean을 사용할 수 있습니다:  "
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "<xref linkend=\"interceptors\"/> 및 <xref linkend=\"decorators\"/>에서 Web Beans 인터셉터 및 데코레이터에 대해 설명하겠습니다.  "
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "Web Bean 관리자기 이름을 기본값으로 하게 하는 것이 보다 수월합니다:  "
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "어떤 종류의 객체가 Web Beans가 될 수 있을까요? "
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "JavaBeans, EJB 및 기타 다른 Java 클래스가 Web Beans이 될 수 있음을 살펴보았습니다. 하지만, 정확히 어떤 종류의 객체가 Web Beans인가요? "
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "이러한 경우, 이름 기본값은 <literal>shoppingCart</literal>가 됩니다 "
+#~ "&#151; 첫번째 문자가 소문자로 된 수식어가 붙지않는 클래스 이름. "
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "심플 Web Beans  "
+#~ msgid "Interceptor binding types"
+#~ msgstr "인터셉터 바인딩 유형 "
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr "Web Beans 사양은 다음과 같을 경우 구체적 Java 클래스가 <emphasis>심플</emphasis> Web Bean이라고 말합니다:  "
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans는 EJB beans 뿐 만 아니라 일반 Java 클래스에 대해 EJB 3에 의해 정"
+#~ "의된 인터셉터 기능을 지원합니다. 이에 더하여, Web Beans는 바인딩 인터셉"
+#~ "터, EJB beans 및 기타 다른 Web Beans에 새로운 접근 방식을 제공합니다.  "
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr "EJB, Servlet 또는 JPA 엔티티와 같이 EE 컨테이너 관리 기반 구성요소가 아닐 경우, "
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "<literal>@Interceptors</literal> 어노테이션의 사용을 통해 인터셉터 클래스"
+#~ "를 직접 지정할 수 있습니다: "
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "비-정적인 내부 클래스가 아닐 경우, "
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "매개 변수화된 유형이 아닐 경우,  "
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "하지만, <emphasis>인터셉터 바인딩 유형</emphasis>을 통해 인터셉터 바인딩"
+#~ "을 돌려 놓는 것이 보다 좋습니다:    "
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr "매개 변수 없는 생성자나 또는 <literal>@Initializer</literal> 어노테이션된 생성자를 갖을 경우, "
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "따라서, 거의 모든 JavaBean은 심플 Web Bean이 됩니다.  "
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "<xref linkend=\"interceptors\"/> 및 <xref linkend=\"decorators\"/>에서 "
+#~ "Web Beans 인터셉터 및 데코레이터에 대해 설명하겠습니다.  "
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr "심플 Web Bean에 의해 직접적 또는 간접적으로 구현되는 모든 인터페이스는 API 유형의 심플 Web Bean입니다. 클래스 및 상위클래스도 API 유형이 됩니다.  "
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "어떤 종류의 객체가 Web Beans가 될 수 있을까요? "
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "엔터프라이즈 Web Beans "
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "JavaBeans, EJB 및 기타 다른 Java 클래스가 Web Beans이 될 수 있음을 살펴보"
+#~ "았습니다. 하지만, 정확히 어떤 종류의 객체가 Web Beans인가요? "
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other "
-"objects &#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr ""
-"사양에서는 모든 EJB 3 스타일 세션 및 singleton beans가 EJB 3 <emphasis>엔터프라이즈</emphasis> Web Beans라고 말합니다. Message driven beans는 Web "
-"Beans이 아닙니다 &#151; 다른 객체에 삽입되도록 되어있지 않기 때문 &#151; 하지만 이는 의존성 삽입 및 인터셉터를 포함한 대부분의 Web Beans 기능의 장점을 취할 수 있습니다. "
+#~ msgid "Simple Web Beans"
+#~ msgstr "심플 Web Beans  "
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr "와일드카드 유형 매개 변수 또는 유형 변수를 갖지 않는 엔터프라이즈 Web Bean의 모든 로컬 인터페이스 및 이의 상위인터페이스는 엔터프라이즈 Web Bean의 API 유형입니다. EJB bean이 bean 클래스 로컬 보기를 갖고 있을 경우 bean 클래스 및 이의 모든 상위 클래스도 API 유형입니다. "
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "Web Beans 사양은 다음과 같을 경우 구체적 Java 클래스가 <emphasis>심플</"
+#~ "emphasis> Web Bean이라고 말합니다:  "
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr "상태유지 세션 빈은 매개 변수가 없는 제거 방식이나 <literal>@Destructor</literal>로 어노테이션된 삭제 방식을 명시해야 합니다. Web Bean 관리자는 수명 주기의 마지막에 상태 유지 세션 빈 인스턴스를 파괴하기 위해 이러한 방식을 호출합니다. 이러한 방식은 엔터프라이즈 Web Bean의 <emphasis>파괴자</emphasis> 방식이라고 합니다.   "
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "EJB, Servlet 또는 JPA 엔티티와 같이 EE 컨테이너 관리 기반 구성요소가 아닐 "
+#~ "경우, "
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "비-정적인 내부 클래스가 아닐 경우, "
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
-msgstr "그러면 언제 심플 Web Bean 대신 엔터프라이즈 Web Bean을 사용해야 할까요? 다음과 같이 EJB에 의해 제공되는 고급 엔터프라이즈 서비스가 필요할 때 마다 사용하면 됩니다: "
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "매개 변수화된 유형이 아닐 경우,  "
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "메소드-수준 트랜젝션 관리 및 보안 "
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "매개 변수 없는 생성자나 또는 <literal>@Initializer</literal> 어노테이션된 "
+#~ "생성자를 갖을 경우, "
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "동시성 관리 "
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "따라서, 거의 모든 JavaBean은 심플 Web Bean이 됩니다.  "
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
-msgstr "상태 유지 세션 빈 용 인스턴스 레벨 수동화 및 무상태 세션 빈 용 인스턴스 풀링 "
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "심플 Web Bean에 의해 직접적 또는 간접적으로 구현되는 모든 인터페이스는 "
+#~ "API 유형의 심플 Web Bean입니다. 클래스 및 상위클래스도 API 유형이 됩니"
+#~ "다.  "
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "원격 및 웹 서비스 호출 "
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "엔터프라이즈 Web Beans "
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "타이머 및 비동기 방식 "
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "사양에서는 모든 EJB 3 스타일 세션 및 singleton beans가 EJB 3 <emphasis>엔"
+#~ "터프라이즈</emphasis> Web Beans라고 말합니다. Message driven beans는 Web "
+#~ "Beans이 아닙니다 &#151; 다른 객체에 삽입되도록 되어있지 않기 때문 &#151; "
+#~ "하지만 이는 의존성 삽입 및 인터셉터를 포함한 대부분의 Web Beans 기능의 장"
+#~ "점을 취할 수 있습니다. "
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
-msgstr "엔터프라이즈 Web Bean을 사용해야 합니다. 이러한 것이 전혀 필요하지 않을 경우, 심플 Web Bean도 잘 실행될 것입니다.  "
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "와일드카드 유형 매개 변수 또는 유형 변수를 갖지 않는 엔터프라이즈 Web Bean"
+#~ "의 모든 로컬 인터페이스 및 이의 상위인터페이스는 엔터프라이즈 Web Bean의 "
+#~ "API 유형입니다. EJB bean이 bean 클래스 로컬 보기를 갖고 있을 경우 bean 클"
+#~ "래스 및 이의 모든 상위 클래스도 API 유형입니다. "
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
-msgstr "다수의 Web Beans (세션 또는 애플리케이션 범위 Web Bean 포함)은 동시 액세스에서 사용 가능합니다. 따라서, EJB 3.1에 의해 제공되는 동시성 관리는 아주 유용합니다. 대부분의 세션 및 애플리케이션 범위 Web Beans는 EJB이어야 합니다. "
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "상태유지 세션 빈은 매개 변수가 없는 제거 방식이나 <literal>@Destructor</"
+#~ "literal>로 어노테이션된 삭제 방식을 명시해야 합니다. Web Bean 관리자는 수"
+#~ "명 주기의 마지막에 상태 유지 세션 빈 인스턴스를 파괴하기 위해 이러한 방식"
+#~ "을 호출합니다. 이러한 방식은 엔터프라이즈 Web Bean의 <emphasis>파괴자</"
+#~ "emphasis> 방식이라고 합니다.   "
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr ""
-"Web Beans는 중량의 리소스에 참조를 보유하고 있거나 EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> 모델에 의해 정의된 고급 컨테이너 관리 수명주기로 부터의 내부적 상태 장점을 수동화 및 인스턴스 풀링 지원과 함께 보유하고 있어야 합니다.    "
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr "마지막으로, 메서드-수준 트랜젝션 관리, 메서드-수준 보안, 타이머, 원격 방식 또는 비동기 방식은 명백하게 필요합니다. "
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "그러면 언제 심플 Web Bean 대신 엔터프라이즈 Web Bean을 사용해야 할까요? 다"
+#~ "음과 같이 EJB에 의해 제공되는 고급 엔터프라이즈 서비스가 필요할 때 마다 사"
+#~ "용하면 됩니다: "
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr ""
-"심플 Web Bean으로 시작하고, <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal>, <literal>@Singleton</literal> 어노테이션을 추가하여 EJB로 변환합니다. "
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "메소드-수준 트랜젝션 관리 및 보안 "
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "생산자 방식 "
+#~ msgid "concurrency management,"
+#~ msgstr "동시성 관리 "
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr "<emphasis>생산자 방식</emphasis>은 현재 컨텍스트에 인스턴스가 존재하지 않을 때 Web Bean의 인스턴스를 획득하기 위해 Web Bean 관리자에 의해 호출되는 방식입니다. 생산자 방식은 인스턴스를 Web Bean 관리자가 관리하게 두지 않고 애플리케이션이 인스턴스 절차를 완전히 제어하게 합니다. 예:  "
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "상태 유지 세션 빈 용 인스턴스 레벨 수동화 및 무상태 세션 빈 용 인스턴스 풀"
+#~ "링 "
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "원격 및 웹 서비스 호출 "
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "생산자 방식 결과는 기타 다른 Web Bean과 같이 삽입됩니다.  "
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "타이머 및 비동기 방식 "
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "엔터프라이즈 Web Bean을 사용해야 합니다. 이러한 것이 전혀 필요하지 않을 경"
+#~ "우, 심플 Web Bean도 잘 실행될 것입니다.  "
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
-msgstr "방식 반환 유형 및 직접적이나 간접적으로 확장/구현하는 모든 인터페이스 API 유형의 생산자 방식입니다. 반환 유형이 클래스일 경우 모든 상위클래스도 API 유형이 됩니다.  "
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "다수의 Web Beans (세션 또는 애플리케이션 범위 Web Bean 포함)은 동시 액세스"
+#~ "에서 사용 가능합니다. 따라서, EJB 3.1에 의해 제공되는 동시성 관리는 아주 "
+#~ "유용합니다. 대부분의 세션 및 애플리케이션 범위 Web Beans는 EJB이어야 합니"
+#~ "다. "
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "일부 생산자 방식은 명시적 파괴를 요청하는 객체를 반환합니다:  "
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "Web Beans는 중량의 리소스에 참조를 보유하고 있거나 EJB "
+#~ "<literal>@Stateless</literal>/<literal>@Stateful</literal>/"
+#~ "<literal>@Singleton</literal> 모델에 의해 정의된 고급 컨테이너 관리 수명주"
+#~ "기로 부터의 내부적 상태 장점을 수동화 및 인스턴스 풀링 지원과 함께 보유하"
+#~ "고 있어야 합니다.    "
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "마지막으로, 메서드-수준 트랜젝션 관리, 메서드-수준 보안, 타이머, 원격 방"
+#~ "식 또는 비동기 방식은 명백하게 필요합니다. "
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr "이러한 생산자 방식은 <emphasis>폐지 방식</emphasis>과 일치하게 정의될 수 있습니다:  "
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "심플 Web Bean으로 시작하고, <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal>, <literal>@Singleton</literal> 어노테이션을 "
+#~ "추가하여 EJB로 변환합니다. "
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid "Producer methods"
+#~ msgstr "생산자 방식 "
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
-msgstr "이러한 폐지 방식은 요청 마지막에 Web Bean 관리자에 의해 자동으로 호출됩니다.  "
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "<emphasis>생산자 방식</emphasis>은 현재 컨텍스트에 인스턴스가 존재하지 않"
+#~ "을 때 Web Bean의 인스턴스를 획득하기 위해 Web Bean 관리자에 의해 호출되는 "
+#~ "방식입니다. 생산자 방식은 인스턴스를 Web Bean 관리자가 관리하게 두지 않고 "
+#~ "애플리케이션이 인스턴스 절차를 완전히 제어하게 합니다. 예:  "
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
-msgstr "<xref linkend=\"producermethods\"/>에서 생산자 방식에 관해 보다 자세하게 다룹니다. "
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS 엔드포인트 "
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr "생산자 방식 결과는 기타 다른 Web Bean과 같이 삽입됩니다.  "
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
-msgstr "마지막으로, JMS 큐 또는 토픽은 Web Bean이 될 수 있습니다. Web Beans는 큐 및 토픽에 메세지를 전달하기 위해 필요한 모든 다양한 JMS 객체의 수명주기 관리에 있어서 개발자에게  단조로움을 완화시킵니다. <xref linkend=\"jms\"/>에서 JMS 엔드포인트를 다루게 됩니다. "
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "방식 반환 유형 및 직접적이나 간접적으로 확장/구현하는 모든 인터페이스 API "
+#~ "유형의 생산자 방식입니다. 반환 유형이 클래스일 경우 모든 상위클래스도 API "
+#~ "유형이 됩니다.  "
+
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr "일부 생산자 방식은 명시적 파괴를 요청하는 객체를 반환합니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "이러한 생산자 방식은 <emphasis>폐지 방식</emphasis>과 일치하게 정의될 수 "
+#~ "있습니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "이러한 폐지 방식은 요청 마지막에 Web Bean 관리자에 의해 자동으로 호출됩니"
+#~ "다.  "
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "<xref linkend=\"producermethods\"/>에서 생산자 방식에 관해 보다 자세하게 "
+#~ "다룹니다. "
+
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS 엔드포인트 "
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "마지막으로, JMS 큐 또는 토픽은 Web Bean이 될 수 있습니다. Web Beans는 큐 "
+#~ "및 토픽에 메세지를 전달하기 위해 필요한 모든 다양한 JMS 객체의 수명주기 관"
+#~ "리에 있어서 개발자에게  단조로움을 완화시킵니다. <xref linkend=\"jms\"/>에"
+#~ "서 JMS 엔드포인트를 다루게 됩니다. "

Modified: doc/trunk/reference/ko-KR/master.po
===================================================================
--- doc/trunk/reference/ko-KR/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-09 10:27+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -21,58 +21,80 @@
 "\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
 msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "컨텍스트 객체 사용  "
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "느슨하게 연결된 (loosely-coupled) 방식의 코드 개발 "
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "가장 강한 타이핑 (strong typing) 사용 "
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans 및 Java EE 에코시스템 "
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Using contextual objects"
+#~ msgstr "컨텍스트 객체 사용  "
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "느슨하게 연결된 (loosely-coupled) 방식의 코드 개발 "

Modified: doc/trunk/reference/ko-KR/next.po
===================================================================
--- doc/trunk/reference/ko-KR/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: next\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-09 11:31+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,7 +15,8 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
+"\n"
 
 #. Tag: title
 #: next.xml:4
@@ -27,28 +28,125 @@
 #: next.xml:6
 #, no-c-format
 msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
-msgstr "Web Beans는 새로운 기능이기 때문에 아직 온라인에서 사용 가능한 정보가 많지 않습니다. "
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"Web Beans Reference 구현은 <literal>http://seamframework.org/WebBeans</"
+"literal>에서 개발되고 있습니다. RI 개발팀 및 Web Beans 사양은 "
+"<literal>http://in.relation.to</literal>에 있는 블로그에 있습니다. 이러한 문"
+"서는  실질적으로 블로그에 게시된 기사의 시리즈를 기반으로 합니다.  "
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
 msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "Web Beans 사양은 자세한 Web Beans 정보가 있는 최고의 소스입니다. 이는 약 100 페이지로 된 이 문서의 두 배 길이로 대부분 읽을 수 있습니다. 이는 여기서 생략된 내용을 자세하게 다루고 있으며, <literal>http://jcp.org/en/jsr/detail?id=299</literal>에서 보실 수 있습니다.  "
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
 msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
-msgstr "Web Beans Reference 구현은 <literal>http://seamframework.org/WebBeans</literal>에서 개발되고 있습니다. RI 개발팀 및 Web Beans 사양은 <literal>http://in.relation.to</literal>에 있는 블로그에 있습니다. 이러한 문서는  실질적으로 블로그에 게시된 기사의 시리즈를 기반으로 합니다.  "
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Web Beans는 새로운 기능이기 때문에 아직 온라인에서 사용 가능한 정보가 많"
+#~ "지 않습니다. "
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "Web Beans 사양은 자세한 Web Beans 정보가 있는 최고의 소스입니다. 이는 약 "
+#~ "100 페이지로 된 이 문서의 두 배 길이로 대부분 읽을 수 있습니다. 이는 여기"
+#~ "서 생략된 내용을 자세하게 다루고 있으며, <literal>http://jcp.org/en/jsr/"
+#~ "detail?id=299</literal>에서 보실 수 있습니다.  "

Modified: doc/trunk/reference/ko-KR/part1.po
===================================================================
--- doc/trunk/reference/ko-KR/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part1\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-10 14:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-27 10:42+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,22 +15,22 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
+#: part1.xml:14
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
 msgstr ""
 "Web Beans (JSR-299) 사양은 애플리케이션을 보다 쉽게 개발하기 위한 Java EE 환"
 "경에 대한 서비스 모음을 정의합니다. Web Beans는 JavaBeans 및 Enterprise Java "
@@ -39,17 +39,17 @@
 "Web Beans는 다음과 같은 서비스를 제공합니다:  "
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
+#: part1.xml:23
+#, fuzzy, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
 msgstr ""
 "명확하게 정의된 <emphasis>컨텍스트</emphasis>에 바인딩된 상태 유지 구성 요소"
 "의 수명 주기 개선   "
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr ""
@@ -57,122 +57,229 @@
 "(typesafe) ì ‘ê·¼  "
 
 #. Tag: para
-#: part1.xml:21
-#, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr "<emphasis>이벤트 통지</emphasis> 기능을 통한 상호작용 "
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"<emphasis>데코레이터 (decorator)</emphasis> 라는 새로운 종류의 인터셉터와 함"
+"께 <emphasis>인터셉터</emphasis>를 구성요소에 바인딩하기 위해 개선된 접근으"
+"로, 비지니스 문제 해결을 위해 보다 적절하게 사용  "
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
-msgstr "<emphasis>데코레이터 (decorator)</emphasis> 라는 새로운 종류의 인터셉터와 함께 <emphasis>인터셉터</emphasis>를 구성요소에 바인딩하기 위해 개선된 접근으로, 비지니스 문제 해결을 위해 보다 적절하게 사용  "
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
 msgstr ""
+
+#. Tag: para
+#: part1.xml:61
+#, no-c-format
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:68
+#, no-c-format
+msgid "managed beans, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:71
+#, no-c-format
+msgid "EJB session beans."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:75
+#, no-c-format
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:83
+#, no-c-format
+msgid "message-driven beans,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:86
+#, no-c-format
+msgid "interceptors,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:89
+#, no-c-format
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:92
+#, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
+msgid ""
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
 "컨텍스트 수명 주기 관리와 함께 의존성 주입은 다음과 같은 질문을 묻고 대답하"
 "는 것에서 생소한 API 사용자를 보호합니다:   "
 
 #. Tag: para
-#: part1.xml:38
-#, no-c-format
-msgid "what is the lifecycle of this object?"
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
 msgstr "이러한 객체의 수명 주기는 무엇입니까? "
 
 #. Tag: para
-#: part1.xml:41
-#, no-c-format
-msgid "how many simultaneous clients can it have?"
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
 msgstr "얼마나 많은 클라이언트가 이를 동시에 갖을 수 있습니까?       "
 
 #. Tag: para
-#: part1.xml:44
-#, no-c-format
-msgid "is it multithreaded?"
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
 msgstr "이는 멀티스레드됩니까? "
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:114
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "어디서 얻을 수 있을까요?  "
+msgid "How do I get access to it from a client?"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
-#, no-c-format
-msgid "do I need to explicitly destroy it?"
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
 msgstr "이를 명시적으로 삭제해야 합니까? "
 
 #. Tag: para
-#: part1.xml:53
-#, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
 msgstr "직접 사용하지 않을 경우 참조 사항을 어디에 보관해야 합니까? "
 
 #. Tag: para
-#: part1.xml:57
-#, no-c-format
+#: part1.xml:125
+#, fuzzy, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
-msgstr "어떻게 하면 우회 계층을 추가하여, 배치시 이러한 개체 구현을 다르게 할 수 있을까요?     "
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"어떻게 하면 우회 계층을 추가하여, 배치시 이러한 개체 구현을 다르게 할 수 있을"
+"까요?     "
 
 #. Tag: para
-#: part1.xml:61
-#, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "어떻게 하면 다른 개체 사이에서 이러한 개체를 공유할 수 있을까요? "
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
 msgstr ""
-"Web Bean은 의존하는 다른 Web Beans의 유형 및 시멘틱 만을 지정합니다. 이는 의존하는 다른 Web Bean 클라이언트 또는 스레딩 모델, 실제적인 수명 주기, 구체적 "
-"구현 방식을 인식할 필요가 없습니다. 더 나아가 의존하는 Web Bean의 스레딩 모델, 수명 주기, 구체적 구현 방식은 클라이언트에게 영향을 미치지 않고 운용 방식에 따라 달라질 수 있습니다.        "
 
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
+#: part1.xml:142
+#, fuzzy, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
-msgstr "이벤트, 인터셉터 및 데코레이터는 이러한 모델에 내제된 <emphasis>느슨하게 연결하는 (loose-coupling)</emphasis> 기능을 강화합니다:  "
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Web Bean은 의존하는 다른 Web Beans의 유형 및 시멘틱 만을 지정합니다. 이는 의"
+"존하는 다른 Web Bean 클라이언트 또는 스레딩 모델, 실제적인 수명 주기, 구체적 "
+"구현 방식을 인식할 필요가 없습니다. 더 나아가 의존하는 Web Bean의 스레딩 모"
+"델, 수명 주기, 구체적 구현 방식은 클라이언트에게 영향을 미치지 않고 운용 방식"
+"에 따라 달라질 수 있습니다.        "
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"이벤트, 인터셉터 및 데코레이터는 이러한 모델에 내제된 <emphasis>느슨하게 연결"
+"하는 (loose-coupling)</emphasis> 기능을 강화합니다:  "
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
 msgid ""
 "<emphasis>event notifications</emphasis> decouple event producers from event "
 "consumers,"
-msgstr "<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로부터 이벤트 생산자를 연결 해제합니다  "
+msgstr ""
+"<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로부터 이벤트 생산자를 연결 "
+"해제합니다  "
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
 msgid ""
 "<emphasis>interceptors</emphasis> decouple technical concerns from business "
 "logic, and"
-msgstr "<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연결 해제합니다   "
+msgstr ""
+"<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연결 "
+"해제합니다   "
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
 msgid ""
 "<emphasis>decorators</emphasis> allow business concerns to be "
@@ -180,71 +287,99 @@
 msgstr "<emphasis>데코레이터</emphasis>는 비지니스 문제를 구분하게 합니다. "
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
+#: part1.xml:168
+#, fuzzy, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
-msgstr "가장 중요하게 Web Beans는 이러한 모든 기능을 <emphasis>타입 안정적 (typesafe)</emphasis> 방식으로 제공합니다. Web Beans는 협력적 객체를 갖추기 위한 방법을 결정하기 위해 문자열 기반의 식별자를 사용하지 않습니다. XML은 옵션으로 남아있어도 거의 사용되지 않습니다. 대신 Web Beans는 <emphasis>바인딩 어노테이션 (binding annotations)</emphasis>이라는 새로운 패턴과 함께 Java 객체 모델에서 이미 사용 가능한 타이핑 정보를 사용하여 Web Beans 및 Web Beans의 의존성, 인터셉터, 데코레이터 및 이벤트 소비자를 함께 묶습니다.     "
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"가장 중요하게 Web Beans는 이러한 모든 기능을 <emphasis>타입 안정적 (typesafe)"
+"</emphasis> 방식으로 제공합니다. Web Beans는 협력적 객체를 갖추기 위한 방법"
+"을 결정하기 위해 문자열 기반의 식별자를 사용하지 않습니다. XML은 옵션으로 남"
+"아있어도 거의 사용되지 않습니다. 대신 Web Beans는 <emphasis>바인딩 어노테이"
+"션 (binding annotations)</emphasis>이라는 새로운 패턴과 함께 Java 객체 모델에"
+"서 이미 사용 가능한 타이핑 정보를 사용하여 Web Beans 및 Web Beans의 의존성, "
+"인터셉터, 데코레이터 및 이벤트 소비자를 함께 묶습니다.     "
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
-msgstr "Web Beans 서비스는 일반적으로 Java EE 환경에 있는 다음과 같은 구성 요소의 유형에 적용됩니다:  "
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "모든 JavaBeans"
-
-#. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "모든 EJB "
-
-#. Tag: para
-#: part1.xml:111
-#, no-c-format
-msgid "all Servlets."
-msgstr "모든 Servlets "
-
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
+#: part1.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans는 통합 지점을 제공하여 차후 Java EE 사양이나 또는 비표준 프레임워크에 의해 지정된 다른 종류의 구성 요소가 Web Beans과 통합되어 Web Beans 서비스의 장점을 취하고 다른 종류의 Web Bean과 상호 작용합니다.        "
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans는 통합 지점을 제공하여 차후 Java EE 사양이나 또는 비표준 프레임워크"
+"에 의해 지정된 다른 종류의 구성 요소가 Web Beans과 통합되어 Web Beans 서비스"
+"의 장점을 취하고 다른 종류의 Web Bean과 상호 작용합니다.        "
 
 #. Tag: para
-#: part1.xml:120
-#, no-c-format
+#: part1.xml:189
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Beans는 Seam, Guice, Spring을 포함하여 다수의 기존 Java 프레임워크에 의해 영향을 받았지만 Web Beans은 자체적으로 다음과 같은 고유한 기능을 소유하고 있습니다: Seam 보다 더 타입 안정적, 보다 더 상태 기반적, Spring 보다 덜 XML-중심, Guice 보다 더 웹 및 엔터프라이즈-애플리케이션 사용 가능   "
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Beans는 Seam, Guice, Spring을 포함하여 다수의 기존 Java 프레임워크에 의"
+"해 영향을 받았지만 Web Beans은 자체적으로 다음과 같은 고유한 기능을 소유하고 "
+"있습니다: Seam 보다 더 타입 안정적, 보다 더 상태 기반적, Spring 보다 덜 XML-"
+"중심, Guice 보다 더 웹 및 엔터프라이즈-애플리케이션 사용 가능   "
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
-msgstr "보다 중요하게 Web Beans는 Java EE 및 내장 가능한 EJB Lite를 사용할 수 있는 Java SE 환경과 통합된 JCP 표준입니다.  "
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "어디서 얻을 수 있을까요?  "
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Web Beans 서비스는 일반적으로 Java EE 환경에 있는 다음과 같은 구성 요소의 "
+#~ "유형에 적용됩니다:  "
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "모든 JavaBeans"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "모든 EJB "
+
+#~ msgid "all Servlets."
+#~ msgstr "모든 Servlets "
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "보다 중요하게 Web Beans는 Java EE 및 내장 가능한 EJB Lite를 사용할 수 있"
+#~ "는 Java SE 환경과 통합된 JCP 표준입니다.  "

Modified: doc/trunk/reference/ko-KR/part2.po
===================================================================
--- doc/trunk/reference/ko-KR/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part2\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:18+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,94 +15,117 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: para
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
-msgstr "Web Beans의 첫번째 주요 기능은 <emphasis>느슨한 연결 (loose coupling)</emphasis>입니다. 이러한 느슨한 연결 기능을 실행하기 위한 세가지 방식은 이미 알려져 있습니다: "
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>배치 유형</emphasis>은 배치 시간 다형성을 활성화합니다    "
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>생산자 방식</emphasis>은 런타임 다형성을 활성화합니다  "
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
-msgstr "<emphasis>컨텍스트 수명주기 관리</emphasis>는 Web Bean 수명 주기를 연결 해제합니다. "
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "이러한 기술로 클라이언트 및 서버의 느슨한 연결을 활성화할 수 있습니다. 클라이언트는 더이상 API 구현으로 바운딩할 수 없으며, 서버 객체의 수명주기를 관리할 수 없습니다. 이러한 접근으로 <emphasis>상태 유지 객체가 서비스하는 것 처럼 상호 작용</emphasis>하게 합니다.   "
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Web Beans의 첫번째 주요 기능은 <emphasis>느슨한 연결 (loose coupling)</"
+#~ "emphasis>입니다. 이러한 느슨한 연결 기능을 실행하기 위한 세가지 방식은 이"
+#~ "미 알려져 있습니다: "
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr "느슨한 연결로 시스템이 보다 <emphasis>동적</emphasis>으로 되게 할 수 있습니다. 시스템은 잘 정의된 방식에서의 변경 사항에 대응할 수 있습니다. 위에 나열된 기능을 변함없이 제공하기 위한 이전의 프레임워크는 타입 안정성을 희생하여 이를 실행하였습니다. Web Beans는 타입 안정적 방식에서의 느슨한 연결을 실행하기 위한 첫번째 기술입니다. "
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "<emphasis>배치 유형</emphasis>은 배치 시간 다형성을 활성화합니다    "
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr "Web Beans는 느슨한 연결 기능을 촉진하기 위해 세 가지 중요한 기능을 추가로 제공합니다: "
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr "<emphasis>생산자 방식</emphasis>은 런타임 다형성을 활성화합니다  "
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr "<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연결 해제합니다  "
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>컨텍스트 수명주기 관리</emphasis>는 Web Bean 수명 주기를 연결 해"
+#~ "제합니다. "
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr "<emphasis>데코레이터</emphasis>는 일부 비지니스 문제를 연결 해제하기 위해 사용될 수 있습니다. "
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "이러한 기술로 클라이언트 및 서버의 느슨한 연결을 활성화할 수 있습니다. 클"
+#~ "라이언트는 더이상 API 구현으로 바운딩할 수 없으며, 서버 객체의 수명주기를 "
+#~ "관리할 수 없습니다. 이러한 접근으로 <emphasis>상태 유지 객체가 서비스하는 "
+#~ "것 처럼 상호 작용</emphasis>하게 합니다.   "
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr "<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로 부터 이벤트 생산자를 연결 해제합니다. "
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "느슨한 연결로 시스템이 보다 <emphasis>동적</emphasis>으로 되게 할 수 있습"
+#~ "니다. 시스템은 잘 정의된 방식에서의 변경 사항에 대응할 수 있습니다. 위에 "
+#~ "나열된 기능을 변함없이 제공하기 위한 이전의 프레임워크는 타입 안정성을 희"
+#~ "생하여 이를 실행하였습니다. Web Beans는 타입 안정적 방식에서의 느슨한 연결"
+#~ "을 실행하기 위한 첫번째 기술입니다. "
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "먼저 인터셉터에 대해 살펴봅시다. "
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beans는 느슨한 연결 기능을 촉진하기 위해 세 가지 중요한 기능을 추가로 "
+#~ "제공합니다: "
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연"
+#~ "결 해제합니다  "
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "<emphasis>데코레이터</emphasis>는 일부 비지니스 문제를 연결 해제하기 위해 "
+#~ "사용될 수 있습니다. "
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로 부터 이벤트 생산자를 연"
+#~ "결 해제합니다. "
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "먼저 인터셉터에 대해 살펴봅시다. "

Modified: doc/trunk/reference/ko-KR/part3.po
===================================================================
--- doc/trunk/reference/ko-KR/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part3\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:11+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,107 +15,248 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
+"\n"
 
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Web Beans의 두번째 주요 기능은 <emphasis>강한 타이핑 (strong typing)</emphasis>입니다. Web Bean의 의존성, 인터셉터, 데코레이터에 관한 정보 및 이벤트 생산자에 대한 이벤트 소비자에 관한 정보는 컴파일러에 의해 사용할 수 있는 타입 안정적 Java 구성 요소에 들어 있습니다. "
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "Web Beans 코드에서 문자열 기반 식별자를 보실 수 없습니다. 그 이유는 프레임워크가  &#151; \"관례에 의한 설정\"이라고 부르는 &#151;  기본값 규칙을 사용하여 이를 숨기려하기 때문이 아니라 시작할 수 있는 문자열이 없기 때문입니다! "
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "이러한 접근 방식의 장점은 <emphasis>어떤</emphasis> IDE도 특정 도구 없이 자동 완성, 검증, 리팩토링을 제공할 수 있습니다. 이에는 다른 부수적인 장점도 있습니다. 이름 대신 어노테이션을 통해 객체, 이벤트, 인터셉터를 인식하고자 할 경우 이것이 나타나 코드의 시맨틱 레벨을 해제할 수 있습니다. "
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:27
+#, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Web Beans의 두번째 주요 기능은 <emphasis>강한 타이핑 (strong typing)</"
+"emphasis>입니다. Web Bean의 의존성, 인터셉터, 데코레이터에 관한 정보 및 이벤"
+"트 생산자에 대한 이벤트 소비자에 관한 정보는 컴파일러에 의해 사용할 수 있는 "
+"타입 안정적 Java 구성 요소에 들어 있습니다. "
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Web Beans 코드에서 문자열 기반 식별자를 보실 수 없습니다. 그 이유는 프레임워"
+"크가  &#151; \"관례에 의한 설정\"이라고 부르는 &#151;  기본값 규칙을 사용하"
+"여 이를 숨기려하기 때문이 아니라 시작할 수 있는 문자열이 없기 때문입니다! "
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"이러한 접근 방식의 장점은 <emphasis>어떤</emphasis> IDE도 특정 도구 없이 자"
+"동 완성, 검증, 리팩토링을 제공할 수 있습니다. 이에는 다른 부수적인 장점도 있"
+"습니다. 이름 대신 어노테이션을 통해 객체, 이벤트, 인터셉터를 인식하고자 할 경"
+"우 이것이 나타나 코드의 시맨틱 레벨을 해제할 수 있습니다. "
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
 msgstr "Web Beans는 개념을 모델로 하는 어노테이션을 개발하게 합니다. 예: "
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:87
 #, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> 또는 "
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "다음과 같은 복합적인 명칭을 사용하는 대신 "
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> 또는 "
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "어노테이션은 다시 사용할 수 있습니다. 이는 시스템의 연관 없는 부분의 일반적인 기능을 설명하는데 사용되며, 코드를 이해하고 범주화하는데 사용될 수 있습니다. 이는 일반적인 문제를 일반적인 방식으로 해결하는데 도움을 주며, 코드를 보다 더 이해하고 읽고 쓸 수 있게 합니다.  "
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"어노테이션은 다시 사용할 수 있습니다. 이는 시스템의 연관 없는 부분의 일반적"
+"인 기능을 설명하는데 사용되며, 코드를 이해하고 범주화하는데 사용될 수 있습니"
+"다. 이는 일반적인 문제를 일반적인 방식으로 해결하는데 도움을 주며, 코드를 보"
+"다 더 이해하고 읽고 쓸 수 있게 합니다.  "
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Web Beans의 <emphasis>전형적인 역할</emphasis>은 이러한 기능에 한 단계 더 나아갑니다. 전형적인 역할은 애플리케이션 구조에서의 일반적인 <emphasis>역할</emphasis>을 모델로 합니다. 이는 범위, 인터셉터 바인딩, 배치 유형 등과 같은 다양한 역할의 속성으로 다시 사용 가능한 단일 패키지로 캡슐화합니다.    "
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Web Beans의 <emphasis>전형적인 역할</emphasis>은 이러한 기능에 한 단계 더 나"
+"아갑니다. 전형적인 역할은 애플리케이션 구조에서의 일반적인 <emphasis>역할</"
+"emphasis>을 모델로 합니다. 이는 범위, 인터셉터 바인딩, 배치 유형 등과 같은 다"
+"양한 역할의 속성으로 다시 사용 가능한 단일 패키지로 캡슐화합니다.    "
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "심지어 Web Beans XML 메타데이터는 강하게 타이핑됩니다! XML 용 컴파일러가 없으므로 Web Beans는 XML 스키마의 장점을 취해 XML에 나타나는 Java 유형 및 속성을 유효하게 합니다. 어노테이션이 Java 코드를 읽고 쓸 수 있게 하는 것 처럼 이러한 접근은 XML을 보다 더 읽고 쓸 수 있게 합니다.   "
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"이제 Web Beans의 보다 고급 기능에 대해 알아볼 준비가 되었습니다. 이러한 기능"
+"은 코드를 보다 쉽게 유효화하고 이해 가능하게 하기 위해 존재하는 것임을 명심하"
+"시기 바랍니다. 대부분 이러한 기능을 사용할 <emphasis>필요가</emphasis> 없지"
+"만 이를 보다 효과적으로 사용할 경우, 이러한 기능에 감사하게 될 것입니다. "
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "이제 Web Beans의 보다 고급 기능에 대해 알아볼 준비가 되었습니다. 이러한 기능은 코드를 보다 쉽게 유효화하고 이해 가능하게 하기 위해 존재하는 것임을 명심하시기 바랍니다. 대부분 이러한 기능을 사용할 <emphasis>필요가</emphasis> 없지만 이를 보다 효과적으로 사용할 경우, 이러한 기능에 감사하게 될 것입니다. "
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "심지어 Web Beans XML 메타데이터는 강하게 타이핑됩니다! XML 용 컴파일러가 "
+#~ "없으므로 Web Beans는 XML 스키마의 장점을 취해 XML에 나타나는 Java 유형 및 "
+#~ "속성을 유효하게 합니다. 어노테이션이 Java 코드를 읽고 쓸 수 있게 하는 것 "
+#~ "처럼 이러한 접근은 XML을 보다 더 읽고 쓸 수 있게 합니다.   "

Modified: doc/trunk/reference/ko-KR/part4.po
===================================================================
--- doc/trunk/reference/ko-KR/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-13 16:06+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,43 +15,74 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
+"\n"
 
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
 msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
-msgstr "Web Beans의 세 번째 기능은 <emphasis>통합</emphasis> 기능입니다. Web Beans는 다른 기술과 일제히 작동하도록 고안되어, 애플리케이션 개발자가 다른 기술을 함께 사용하게 합니다. 이는 Java EE 에코시스템의 일부분을 형성하여 새로운 에코시스템에 대해 기존 프레임워크와 기술로의 기능 통합 및 휴대용 확장의 기초가 됩니다.   "
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
-msgstr "EJB가 JSF 페이지에 직접 바운딩되게 하여 Web Beans이 어떻게 EJB 및 JSF를 통합하였는지를 살펴보았습니다. 이는 단지 시작에 불과합니다. Web Beans는 비지니스 프로세스 관리 엔진, 기타 다른 웹 프레임워크, 제삼자 구성 요소 모델과 같은 다른 기술을 다양화하기 위해 동일한 잠재적 기능을 제공합니다. Java EE 플랫폼은 Java 애플리케이션 개발에 사용되는 모든 기술을 표준화할 수 없지만, Web Beans는 Java EE 환경 내에 있는 플랫폼의 일부분에 속하지 않는 기술을 보다 쉽게 사용할 수 있게 합니다. "
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"EJB가 JSF 페이지에 직접 바운딩되게 하여 Web Beans이 어떻게 EJB 및 JSF를 통합"
+"하였는지를 살펴보았습니다. 이는 단지 시작에 불과합니다. Web Beans는 비지니스 "
+"프로세스 관리 엔진, 기타 다른 웹 프레임워크, 제삼자 구성 요소 모델과 같은 다"
+"른 기술을 다양화하기 위해 동일한 잠재적 기능을 제공합니다. Java EE 플랫폼은 "
+"Java 애플리케이션 개발에 사용되는 모든 기술을 표준화할 수 없지만, Web Beans"
+"는 Java EE 환경 내에 있는 플랫폼의 일부분에 속하지 않는 기술을 보다 쉽게 사용"
+"할 수 있게 합니다. "
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
+#: part4.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
-msgstr "Web Beans을 사용하는 애플리케이션에서 Java EE 플랫폼의 장점을 최대한으로 활용하는 방법에 대해 살펴보겠습니다. 또한 Web Beans에 휴대용 확장을 지원하기 위해 제공되는 SPI 설정에 대해서도 간략하게 살펴보겠습니다. 이러한 SPI 기능을 직접 사용할 필요가 없을 수 도 있지만, 만약 필요할 경우 이러한 기능한 기능이 있다는 것을 알아두시면 좋습니다. 가장 중요하게 제삼자 확장 기능을 사용할 때 마다 이러한 기능의 장점을 간접적으로 활용할 수 있습니다. "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Web Beans을 사용하는 애플리케이션에서 Java EE 플랫폼의 장점을 최대한으로 활용"
+"하는 방법에 대해 살펴보겠습니다. 또한 Web Beans에 휴대용 확장을 지원하기 위"
+"해 제공되는 SPI 설정에 대해서도 간략하게 살펴보겠습니다. 이러한 SPI 기능을 직"
+"접 사용할 필요가 없을 수 도 있지만, 만약 필요할 경우 이러한 기능한 기능이 있"
+"다는 것을 알아두시면 좋습니다. 가장 중요하게 제삼자 확장 기능을 사용할 때 마"
+"다 이러한 기능의 장점을 간접적으로 활용할 수 있습니다. "
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Web Beans의 세 번째 기능은 <emphasis>통합</emphasis> 기능입니다. Web Beans"
+#~ "는 다른 기술과 일제히 작동하도록 고안되어, 애플리케이션 개발자가 다른 기술"
+#~ "을 함께 사용하게 합니다. 이는 Java EE 에코시스템의 일부분을 형성하여 새로"
+#~ "운 에코시스템에 대해 기존 프레임워크와 기술로의 기능 통합 및 휴대용 확장"
+#~ "의 기초가 됩니다.   "

Modified: doc/trunk/reference/ko-KR/part5.po
===================================================================
--- doc/trunk/reference/ko-KR/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/ko-KR/producermethods.po
===================================================================
--- doc/trunk/reference/ko-KR/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: producermethods\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:12+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -28,13 +28,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "생산자 방식은 Web Bean 관리자가 애플리케이션 대신 인스턴스 객체에 응답할 때 "
 "발생할 수 있는 특정한 한계를 극복할 수 있게 합니다. Web Beans이 아닌 객체를 "
@@ -42,104 +41,96 @@
 "\"xml\"/>에서 두번째 방법에 대해 살펴보겠습니다.) "
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "spec에 의하면: "
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, fuzzy, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "생산자 방식의 범위 "
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -155,15 +146,15 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, fuzzy, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
@@ -171,29 +162,29 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "생산자 방식의 범위 "
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "생산자 방식의 기본값 범위는 <literal>@Dependent</literal>로 되어 있으므로, "
@@ -203,7 +194,7 @@
 "을 수 있습니다.  "
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -213,12 +204,12 @@
 "을 추가할 수 있습니다.  "
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -227,7 +218,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -239,13 +230,13 @@
 "니다.  "
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "생산자 방식으로 삽입 "
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -260,29 +251,29 @@
 "스화된 객체는 의존성 삽입의 장점을 취할 수 없으며 인터셉터를 갖지 못합니다. "
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "이러한 방식을 원하지 않을 경우, 의존성 삽입을 생산자 방식으로 사용하여 Web "
 "Bean 인스턴스를 획득할 수 있습니다:  "
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -298,17 +289,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "<literal>CreditCardPaymentStrategy</literal>가 요청 범위 Web Bean이면 어떻게 "
 "합니까? 이럴 경우 생산자 방식은 현재 요청 범위 임스턴스를 세선 범위로 \"활성"
@@ -319,13 +310,13 @@
 "랍니다! "
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "이러한 버그를 해결할 수 있는 세 가지 방법이 있습니다. "
@@ -335,43 +326,43 @@
 "literal>로 변경하는 것입니다. "
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "하지만 보다 일반적인 방법은 특별한 <literal>@New</literal> 바인딩 어노테이션"
 "을 사용하는 것입니다. "
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "생산자 방식과 함께 <literal>@New</literal> 사용 "
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "다음과 같은 생산자 방식을 고려합니다: "
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -389,7 +380,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -405,6 +396,60 @@
 "에 <literal>Preferences</literal> 객체가 삭제될 때 까지 삭제되지 않습니"
 "다.      "
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "생산자 방식 "
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/ko-KR/resources.po
===================================================================
--- doc/trunk/reference/ko-KR/resources.po	                        (rev 0)
+++ doc/trunk/reference/ko-KR/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language ko-KR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/ko-KR/ri-spi.po
===================================================================
--- doc/trunk/reference/ko-KR/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri-spi\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 13:32+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -28,44 +28,65 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, fuzzy, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr "Web Beans RI를 다른 환경으로 통합 "
 
 #. Tag: para
 #: ri-spi.xml:6
+#, no-c-format
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:12
 #, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "리소스 불러오기 "
+
+#. Tag: para
+#: ri-spi.xml:13
+#, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
-"현재 Web Beans RI는 JBoss AS 5에서만 실행됩니다; RI를 기타 다른 EE 환경 (예"
-"를 들어 Glassfish와 같은 다른 애플리케이션 서버)으로 통합, 또는 servlet 컨테"
-"이너로 통합 (예: Tomcat), 또는 내장된 EJB3.1 구현과 통합하는 것은 쉽습니다. "
-"Appendix에서 필요한 절차에 대해 간략하게 살펴보겠습니다.  "
 
+#. Tag: para
+#: ri-spi.xml:21
+#, no-c-format
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:27
 #, fuzzy, no-c-format
-msgid "The Web Beans SPI"
+msgid "The Weld SPI"
 msgstr "Web Beans RI SPI "
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:29
 #, fuzzy, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
 msgstr ""
 "Web Beans SPI는 <literal>webbeans-ri-spi</literal> 모듈에 위치하고 있으며 "
 "<literal>webbeans-ri-spi.jar</literal>로 패키징되어 있습니다. 일부 SPI는 옵"
 "션 사항이며, 기본값 동작을 덮어쓰기해야할 경우, 다른 사항이 필요합니다. "
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:35
 #, no-c-format
 msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
@@ -75,384 +96,353 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean 검색 "
+msgid "Deployment structure"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:58
+#, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
-"<![CDATA[public interface WebBeanDiscovery {\n"
-"   /**\n"
-"    * Gets list of all classes in classpath archives with web-beans.xml "
-"files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all web-beans.xml files in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the web-beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();\n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, fuzzy, no-c-format
+#: ri-spi.xml:67
+#, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
-"Web Bean 클래스 및 <literal>web-bean.xml</literal> 파일 검색은 쉽게 알 수 있"
-"습니다 (알고리즘은 JSR-299 사양 11.1장에 설명되어 있으므로 여기서 다시 설명하"
-"지 않습니다).  "
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
-#, fuzzy, no-c-format
+#: ri-spi.xml:100
+#, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
-"Web Beans RI는 컨테이너로 EJB3 bean 검색을 위임하므로 EJB3 어노테이션을 검색"
-"하거나 <literal>ejb-jar.xml</literal>을 파싱할 필요가 없습니다. 애플리케이션"
-"에 있는 각각의 EJB의 경우 EJBDescriptor를 검색해야 합니다: "
 
-#. Tag: programlisting
-#: ri-spi.xml:62
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T> {\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();\n"
-"   \n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:124
+#, no-c-format
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:132
+#, no-c-format
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:155
+#, no-c-format
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
 "<literal>EjbDescriptor</literal>는 쉽게 알 수 있어야 하며 EJB 사양에 정의되"
 "어 있음으로 관련된 메타데이터를 반환해야 합니다. 이러한 두 가지 인터페이스에 "
 "더하여, 로컬 비지니스 인터페이스를 나타내는 "
 "<literal>BusinessInterfaceDescriptor</literal>가 있습니다. (EJB 인스턴스를 검"
 "색하는데 사용되는 인터페이스 클래스 및 jndi 이름을 캡슐화)  "
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:171
 #, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
+#. Tag: para
+#: ri-spi.xml:182
 #, no-c-format
-msgid "JPA services"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:189
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:195
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:201
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: title
+#: ri-spi.xml:210
 #, no-c-format
+msgid "EJB services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:212
+#, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:234
 #, no-c-format
-msgid "Transaction Services"
+msgid "JPA services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:253
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:258
 #, no-c-format
 msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
@@ -462,7 +452,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -472,387 +462,346 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
-#, no-c-format
-msgid "JMS services"
-msgstr ""
+#: ri-spi.xml:272
+#, fuzzy, no-c-format
+msgid "Resource Services"
+msgstr "리소스 불러오기 "
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:274
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:283
 #, fuzzy, no-c-format
-msgid "Resource Services"
+msgid "Injection Services"
 msgstr "리소스 불러오기 "
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:285
 #, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:291
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:298
 #, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:207
-#, no-c-format
-msgid "The bean store"
-msgstr ""
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "리소스 불러오기 "
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:309
 #, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:317
 #, no-c-format
-msgid "The application context"
+msgid "Bean Validation Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:319
 #, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Bootstrap and shutdown"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:329
 #, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:337
 #, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:343
 #, no-c-format
 msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:260
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
+msgid "The bean store"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:364
 #, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:282
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid "The application context"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:374
 #, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:383
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Initialization and shutdown"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:384
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:391
 #, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:398
 #, no-c-format
-msgid "Resource loading"
-msgstr "리소스 불러오기 "
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
-#, fuzzy, no-c-format
+#: ri-spi.xml:405
+#, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
-"times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
-"Web Beans RI는 여러번 classpath에서 클래스 및 리소스를 불러와야 합니다. 기본"
-"값으로 RI를 불러오기 위해 사용되었던 동일한 classloader에서 로딩되지만, 일부 "
-"환경에서는 작동하지 않을 수 도 있습니다. 이러한 경우, <literal>org.jboss."
-"webbeans.spi.ResourceLoader</literal>를 구현할 수 있습니다:  "
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:410
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
-#. Tag: title
-#: ri-spi.xml:331
-#, fuzzy, no-c-format
-msgid "Servlet injection"
-msgstr "Servlet 청취자 "
-
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:414
 #, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:423
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:431
 #, no-c-format
+msgid "Resource loading"
+msgstr "리소스 불러오기 "
+
+#. Tag: para
+#: ri-spi.xml:433
+#, fuzzy, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+"Web Beans RI는 여러번 classpath에서 클래스 및 리소스를 불러와야 합니다. 기본"
+"값으로 RI를 불러오기 위해 사용되었던 동일한 classloader에서 로딩되지만, 일부 "
+"환경에서는 작동하지 않을 수 도 있습니다. 이러한 경우, <literal>org.jboss."
+"webbeans.spi.ResourceLoader</literal>를 구현할 수 있습니다:  "
+
+#. Tag: title
+#: ri-spi.xml:445
+#, no-c-format
 msgid "The contract with the container"
 msgstr "컨테이너와 계약 "
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 "API의 외부 구현에서의 올바른 기능을 실행하게 하기 위해 Web Beans RI이 컨테이"
 "너에 위치하게 해야 할 여러 요구 사항이 있습니다 "
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Classloader 분리 "
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 "Web Beans RI를 다수의 애플리케이션의 운용을 지원하는 환경으로 통합할 경우, 각"
 "각의 Web Beans 애플리케이션에 대한 클래스로더 분리를 자동으로 또는 사용자 설"
 "정을 통해 반드시 활성화해야 합니다.   "
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
-#, no-c-format
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 "Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
 "Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
 "jboss.webbeans.servlet.WebBeansListener</literal>를 Servlet 청취자로 등록해"
 "야 합니다.  "
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 "Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
 "Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
@@ -860,14 +809,12 @@
 "야 합니다.  "
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 "Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
 "Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
@@ -875,26 +822,113 @@
 "야 합니다.  "
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
+"Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
+"jboss.webbeans.servlet.WebBeansListener</literal>를 Servlet 청취자로 등록해"
+"야 합니다.  "
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
+"Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
+"jboss.webbeans.servlet.WebBeansListener</literal>를 Servlet 청취자로 등록해"
+"야 합니다.  "
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Session Bean 인터셉터 "
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 "Web Beans를 EJB 환경으로 통합하고자 할 경우 엔터프라이즈 beans를 사용하는 각"
 "각의 Web Beans 애플리케이션 용으로 모든 EJB 애플리케이션에 대해 EJB 인터셉터"
@@ -902,7 +936,7 @@
 "으로 또는 사용자 설정을 통해 등록해야 합니다.  "
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -910,42 +944,484 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, fuzzy, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "<literal>webbeans-ri.jar</literal> "
 
 #. Tag: para
-#: ri-spi.xml:454
-#, fuzzy, no-c-format
+#: ri-spi.xml:590
+#, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
-"Web Beans를 애플리케이션 운용을 지원하는 환경으로 통합하고자 할 경우, "
-"<literal>webbeans-ri.jar</literal>를 애플리케이션 분리 classloader로 삽입해"
-"야 합니다. 이는 공유 classloader에서 불러올 수 없습니다.  "
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#, fuzzy
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "현재 Web Beans RI는 JBoss AS 5에서만 실행됩니다; RI를 기타 다른 EE 환경 "
+#~ "(예를 들어 Glassfish와 같은 다른 애플리케이션 서버)으로 통합, 또는 "
+#~ "servlet 컨테이너로 통합 (예: Tomcat), 또는 내장된 EJB3.1 구현과 통합하는 "
+#~ "것은 쉽습니다. Appendix에서 필요한 절차에 대해 간략하게 살펴보겠습니다.  "
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean 검색 "
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface WebBeanDiscovery {\n"
+#~ "   /**\n"
+#~ "    * Gets list of all classes in classpath archives with web-beans.xml "
+#~ "files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all web-beans.xml files in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the web-beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "Web Bean 클래스 및 <literal>web-bean.xml</literal> 파일 검색은 쉽게 알 수 "
+#~ "있습니다 (알고리즘은 JSR-299 사양 11.1장에 설명되어 있으므로 여기서 다시 "
+#~ "설명하지 않습니다).  "
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Web Beans RI는 컨테이너로 EJB3 bean 검색을 위임하므로 EJB3 어노테이션을 검"
+#~ "색하거나 <literal>ejb-jar.xml</literal>을 파싱할 필요가 없습니다. 애플리케"
+#~ "이션에 있는 각각의 EJB의 경우 EJBDescriptor를 검색해야 합니다: "
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T> {\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();\n"
+#~ "   \n"
+#~ "   \n"
+#~ "}]]>"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#, fuzzy
+#~ msgid "Servlet injection"
+#~ msgstr "Servlet 청취자 "
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
+#~ "Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
+#~ "jboss.webbeans.servlet.WebBeansListener</literal>를 Servlet 청취자로 등록"
+#~ "해야 합니다.  "
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "Web Beans를 애플리케이션 운용을 지원하는 환경으로 통합하고자 할 경우, "
+#~ "<literal>webbeans-ri.jar</literal>를 애플리케이션 분리 classloader로 삽입"
+#~ "해야 합니다. 이는 공유 classloader에서 불러올 수 없습니다.  "
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "

Modified: doc/trunk/reference/ko-KR/scopescontexts.po
===================================================================
--- doc/trunk/reference/ko-KR/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: scopescontexts\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-22 12:18+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -22,20 +22,19 @@
 "\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "범위 및 컨텍스트 "
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "지금까지 <emphasis>범위 유형 어노테이션</emphasis>의 여러 가지 예를 살펴보았"
 "습니다. Web Bean의 범위는 Web Bean 인스턴스의 수명주기를 결정합니다. 또한 범"
@@ -43,30 +42,30 @@
 "Web Beans 사양에 따라 범위는 다음을 결정합니다: "
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "범위와 함께 Web Bean의 새로운 인스턴스가 생성될 시기 "
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr "범위와 함께 Web Bean의 기존 인스턴스가 제거될 시기  "
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr "삽입된 어떤 참조가 범위와 함께 Web Bean 인스턴스를 참조하는 지 "
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -78,29 +77,37 @@
 "스는 세션에서 <literal>CurrentUser</literal>가 처음으로 필요할 때 자동으로 생"
 "성되고 세션이 끝나면 자동으로 삭제됩니다. "
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "범위 유형 "
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Beans는 <emphasis>extensible context model</emphasis>을 특징으로 합니다. "
 "새로운 범위 유형 어노테이션을 생성하여 새로운 범위를 정의할 수 있습니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -109,13 +116,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "물론 이는 이러한 작업 중 쉬운 부분입니다. 이러한 범위 유형을 유용하게 하려"
 "면, 범위를 구현하는 <literal>Context</literal> 객체를 정의해야 합니다! "
@@ -123,17 +132,17 @@
 "을 목적으로 합니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Web Bean 범위를 지정하기 위해 Web Bean 구현 클래스에 범위 유형 어노테이션을 "
 "적용할 수 있습니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -143,55 +152,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "주로, Web Beans의 내장된 범위 중 하나를 사용하게 됩니다.  "
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "내장된 범위 "
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beans는 네 가지 내장된 범위를 정의합니다:  "
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Web Beans를 사용하는 웹 애플리케이션의 경우: "
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -199,55 +208,63 @@
 msgstr "servlet 요청은 활성 요청, 세션 및 애플리케이션 범위에 액세스합니다 "
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "JSF 요청은 활성 컨버세이션 범위에 액세스합니다.   "
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "요청 및 애플리케이션 범위도 활성화되어 있습니다: "
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "EJB 원격 방식의 호출시 "
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "EJB 시간 초과시 "
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "메세지 구동 빈에 메세지 전달시 "
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "웹 서비스 호출시 "
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "애플리케이션이 활성 컨텍스트가 없는 범위와 함께 Web Bean을 호출하고자할 경"
 "우, 런타임시 <literal>ContextNotActiveException</literal>은 Web Bean 관리자"
 "에 의해 넘기게 됩니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -258,47 +275,47 @@
 "루지 않겠습니다. 하지만 이 중 하나의 범위 새로운 것입니다. "
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "컨버세이션 범위 "
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Web Beans 컨버세이션 범위는 시스템 사용자와 관련된 상태를 보유하고 있는 전통 "
 "세션 범위와 유사하며, 서버에 여러 가지 요청을 보냅니다. 하지만, 세션 범위와 "
 "다르게 컨버세이션 범위는 다음과 같은 사항을 갖습니다:      "
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "애플리케이션에 의해 명시적으로 경계를 정합니다  "
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"JSF 애플리케이션에 있는 특정 웹 브라우저 탭과 관련한 상태를 유지합니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "컨버세이션은 사용자 관점에서의 작업 단위, 작업 내용을 나타냅니다. 컨버세이션 "
 "컨텍스트는 현재 사용자가 작업하고 있는 것과 관련된 상태를 유지합니다. 사용자"
@@ -306,10 +323,10 @@
 "니다. "
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -320,30 +337,29 @@
 "다. "
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "컨버세이션 경계 설정 "
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans는 JSF 애플리케이션에 있는 컨버세이션 수명 주기를 제어하기 위한 내장"
 "된 Web Bean을 제공합니다. 이러한 Web Bean은 삽입에 의해 획득될 수 있습니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -358,48 +374,46 @@
 "<literal>end()</literal>를 호출합니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "다음의 예에서, 컨버세이션 범위 Web Bean은 관련 된 컨버세이션을 제어합니다: "
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -433,45 +447,45 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Web Bean은 <literal>Conversation</literal> API를 사용하여 수명 주기를 제어할 "
 "수 있습니다. 하지만 일부 다른 Web Beans는 다른 객체에 완전히 의존하는 수명 주"
 "기를 갖습니다.  "
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "컨버세이션 보급 "
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "컨버세이션 컨텍스트는 JSF faces 요청 (JSF 양식 제출)과 함께 자동으로 보급됩니"
 "다. 예를 들어, 링크를 통한 네비게이션과 같이 이는 non-faces 요청과 함께 자동"
 "으로 보급되지 않습니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "요청 매개 변수로서 컨버세이션의 고유 식별자를 포함하여 컨버세이션이 non-"
 "faces 요청과 함께 보급되도록 강제할 수 있습니다. Web Beans 사양은 이를 사용하"
@@ -480,13 +494,13 @@
 "<literal>conversation</literal>이라는 Web Beans 이름을 갖습니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "따라서, 다음과 같은 링크가 컨버세이션을 보급합니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -496,15 +510,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "Web Bean 관리자는 컨버세이션이 장기 실행으로 표시되어 있지 않아도, 리다이렉트"
 "를 통해 컨버세이션을 보급해야 합니다. 이는 \"플래시\" 객체와 같은 깨지기 쉬"
 "운 구조에 의지하지 않고 일반적인 POST-then-redirect 패턴 쉽게 구현하게 합니"
@@ -512,20 +540,21 @@
 "추가합니다.  "
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "컨버세이션 시간 초과   "
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Web Bean 관리자에게는 리소스를 보관하기 위해 컨텍스트에 있는 모든 상태 및 컨"
 "버세이션을 삭제할 수 있는 권한이 있습니다. Web Bean 관리자 구현은 주로 시간 "
@@ -533,11 +562,11 @@
 "습니다. 시간 초과는 컨버세이션이 삭제된 후 비활성화 기간을 말합니다.       "
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "<literal>Conversation</literal> 객체는 시간 초과를 설정하기 위한 방식을 제공"
@@ -545,129 +574,105 @@
 "습니다. "
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "dependent pseudo-scope "
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "네 가지 내장된 범위에 더하여, Web Beans는 <emphasis>dependent pseudo-scope</"
 "emphasis>라는 기능을 특징으로 합니다. 이는 범위 유형을 명시하지 않는 Web Bean"
 "에 대한 기본값 범위입니다. "
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "예를 들어, Web Bean에는 <literal>@Dependent</literal> 범위 유형이 있습니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Web Bean의 삽입 지점이 의존적 Web Bean을 해결할 때, 의존적 Web Bean의 새로운 "
-"인스턴스는 처음으로 Web Bean이 초기화될 때 마다 생성됩니다. 의존적 Web Beans"
-"의 인스턴스는 다른 Web Bean 사이에서나 또는 다른 삽입 지점 간에 공유되지 않습"
-"니다. 이는 일부 다른 Web Bean 인스턴스에 대해 <emphasis>의존적 객체</"
-"emphasis>입니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
-msgstr "의존하는 인스턴스가 삭제되면 의존적 Web Bean 인스턴스가 삭제됩니다.   "
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
 "클래스 또는 EJB bean이 일부 다른 범위 유형과 함께 Web Bean으로 명시되어 있어"
 "도, Web Beans는 Java 클래스 또는 EJB bean의 의존적 인스턴스를 쉽게 획득할 수 "
 "있게 합니다.   "
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "<literal>@New</literal> 어노테이션 "
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"내장된 <literal>@New</literal> 바인딩 어노테이션은 삽입 지점에서 의존적 Web "
-"Bean의 <emphasis>암시적</emphasis> 정의를 허용합니다. 다음과 같은 삽입 영역"
-"을 명시한다고 가정합시다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"<literal>@Dependent</literal> 범위, <literal>@New</literal> 바인딩 유형, "
-"<literal>Calculator</literal> API 유형, <literal>Calculator</literal> 구현 클"
-"래스, <literal>@Standard</literal> 배치 유형과 함께 Web Bean은 암시적으로 정"
-"의됩니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "<literal>Calculator</literal>가 다른 범위 유형과 함께 <emphasis>이미</"
 "emphasis> 명시되어 있어도 이는 사실입니다, 예:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -677,7 +682,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -686,14 +691,12 @@
 "다음의 삽입 속성은 다른 <literal>Calculator</literal> 인스턴스를 갖습니다:  "
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -704,7 +707,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -718,9 +721,55 @@
 "<literal>Calculator</literal>의 새로운 인스턴스가 삽입되어 있습니다.  "
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
 "the next chapter."
 msgstr "특히 이러한 기능은 다음 장에서 다루게 될 생산자 방식에서 유용합니다.  "
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "JSF 애플리케이션에 있는 특정 웹 브라우저 탭과 관련한 상태를 유지합니다.  "
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Web Bean의 삽입 지점이 의존적 Web Bean을 해결할 때, 의존적 Web Bean의 새로"
+#~ "운 인스턴스는 처음으로 Web Bean이 초기화될 때 마다 생성됩니다. 의존적 Web "
+#~ "Beans의 인스턴스는 다른 Web Bean 사이에서나 또는 다른 삽입 지점 간에 공유"
+#~ "되지 않습니다. 이는 일부 다른 Web Bean 인스턴스에 대해 <emphasis>의존적 객"
+#~ "체</emphasis>입니다.  "
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "의존하는 인스턴스가 삭제되면 의존적 Web Bean 인스턴스가 삭제됩니다.   "
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "내장된 <literal>@New</literal> 바인딩 어노테이션은 삽입 지점에서 의존적 "
+#~ "Web Bean의 <emphasis>암시적</emphasis> 정의를 허용합니다. 다음과 같은 삽"
+#~ "입 영역을 명시한다고 가정합시다:  "
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "<literal>@Dependent</literal> 범위, <literal>@New</literal> 바인딩 유형, "
+#~ "<literal>Calculator</literal> API 유형, <literal>Calculator</literal> 구"
+#~ "현 클래스, <literal>@Standard</literal> 배치 유형과 함께 Web Bean은 암시적"
+#~ "으로 정의됩니다.  "

Modified: doc/trunk/reference/ko-KR/specialization.po
===================================================================
--- doc/trunk/reference/ko-KR/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: specialization\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:14+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
@@ -23,33 +23,132 @@
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "특성화 "
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "이미 Web Beans 의존성 삽입 모델은 배치시 API 구현을 <emphasis>덮어쓰기</emphasis> 하게 합니다. 예를 들어, 다음과 같은 엔터프라이즈 Web Bean은 제품에서 API <literal>PaymentProcessor</literal> 구현을 제공합니다:   "
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"이미 Web Beans 의존성 삽입 모델은 배치시 API 구현을 <emphasis>덮어쓰기</"
+"emphasis> 하게 합니다. 예를 들어, 다음과 같은 엔터프라이즈 Web Bean은 제품에"
+"서 API <literal>PaymentProcessor</literal> 구현을 제공합니다:   "
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"staging 환경에서, 다른 Web Bean을 사용하여 <literal>PaymentProcessor</"
+"literal> 구현을 덮어쓰기 합니다:  "
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -57,158 +156,209 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "staging 환경에서, 다른 Web Bean을 사용하여 <literal>PaymentProcessor</literal> 구현을 덮어쓰기 합니다:  "
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
-"<literal>StagingCreditCardPaymentProcessor</literal>를 사용하여 실행하려는 작업은 "
-"특정 시스템 배치에 <literal>AsyncPaymentProcessor</literal>를 완전 교체하는 것입니다. 여기서 배치 유형 <literal>@Staging</literal>은 기본값 배치 유형 <literal>@Production</literal> 보다 높은 우선 순위를 갖게 되므로 클라이언트는 다음과 같은 삽입 지점을 사용하게 됩니다:  "
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
-msgstr "<literal>StagingCreditCardPaymentProcessor</literal> 인스턴스를 받고자 합니다. "
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "불행하게도 여기에는 몇 가지 함정이 있습니다: "
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
-msgstr "높은 우선 순위의 Web Bean은 덮어쓰기하려는 Web Bean의 모든 API 유형을 구현할 수 없습니다. "
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
-msgstr "높은 우선 순위의 Web Bean은 덮어쓰기하려는 Web Bean의 모든 바인딩 유형을 명시할 수 없습니다. "
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
+#. Tag: title
+#: specialization.xml:105
+#, no-c-format
+msgid "A minor problem with alternatives"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:107
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
-msgstr "높은 우선 순위의 Web Bean은 덮어 쓰기하려는 Web Bean과 동일한 이름을 갖을 수 없습니다. "
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
-msgstr "덮어쓰기하려는 Web Bean은 생산자 방식, 폐지 방식 또는 옵저버 방식을 명시할 수 있습니다.   "
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
-msgstr "이러한 경우, 덮어 쓰기하려는 Web Bean은 런타임시 호출 가능해야 합니다 따라서, 덮어쓰기는 다소 개발자 오류를 초래하는 경우가 있습니다. "
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
-#, no-c-format
+#: specialization.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
-msgstr "Web Beans는 <emphasis>특성화</emphasis>라는 특별 기능을 제공하여, 개발자들이 이러한 함정에 빠지지 않도록 돕습니다. 특성화 기능은 처음에는 조금 난해하게 보이지만, 익숙해 지면 사용하기 쉬우며 제공되는 추가 보안 기능에 만족하실 것입니다.  "
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
+msgstr ""
+"Web Beans는 <emphasis>특성화</emphasis>라는 특별 기능을 제공하여, 개발자들이 "
+"이러한 함정에 빠지지 않도록 돕습니다. 특성화 기능은 처음에는 조금 난해하게 보"
+"이지만, 익숙해 지면 사용하기 쉬우며 제공되는 추가 보안 기능에 만족하실 것입니"
+"다.  "
 
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "특성화 기능 사용  "
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "특성화는 심플 Web Beans 및 엔터프라이즈 Web Beans에만 있는 기능입니다. 특성화 기능을 사용하려면 높은 우선 순위의 Web Bean은 다음 사항을 따라야 합니다:  "
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "덮어쓰기할 Web Bean의 직접적인 하부 클래스가 되어야 합니다. "
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
-msgstr "덮어쓰기할 Web Bean이 심플 Web Bean일 경우 심플 Web Bean이 되어야 하고 또는 덮어쓰기 할 Web Bean이 엔터프라이즈 Web Bean일 경우 엔터프라이즈 Web Bean이 되어야 합니다  "
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "<literal>@Specializes</literal>로 어노테이션되어야 합니다. "
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"높은 우선 순위의 Web Bean이 해당 상위클래스를 <emphasis>특성화</emphasis>한다"
+"고 합니다.   "
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -217,107 +367,206 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
-msgstr "높은 우선 순위의 Web Bean이 해당 상위클래스를 <emphasis>특성화</emphasis>한다고 합니다.   "
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "특성화 기능의 장점  "
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "특성화 기능 사용시:  "
-
-#. Tag: para
-#: specialization.xml:91
-#, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
 msgstr ""
-"상위클래스의 바인딩 유형은 <literal>@Specializes</literal>로 어노테이션된 Web "
-"Bean에 의해 자동으로 상속됩니다   "
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
-"상위클래스의 Web Bean 이름은 <literal>@Specializes</literal>로 어노테이션된 Web "
-"Bean에 의해 자동으로 상속됩니다   "
 
 #. Tag: para
-#: specialization.xml:99
+#: specialization.xml:172
 #, no-c-format
 msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
-msgstr "상위클래스에 의해 명시된 생산자 방식, 폐지 방식 및 옵저버 방식은 <literal>@Specializes</literal>로 어노테이션된 Web Bean 인스턴스를 호출합니다.   "
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "예에서 <literal>CreditCardPaymentProcessor</literal>의 <literal>@CreditCard</literal> 바인딩 유형은 <literal>StagingCreditCardPaymentProcessor</literal>에 의해 전승됩니다. "
+#~ msgid "Specialization"
+#~ msgstr "특성화 "
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "Web Bean 관리자는 다음 사항을 유효화합니다:  "
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>를 사용하여 실행하려"
+#~ "는 작업은 특정 시스템 배치에 <literal>AsyncPaymentProcessor</literal>를 완"
+#~ "전 교체하는 것입니다. 여기서 배치 유형 <literal>@Staging</literal>은 기본"
+#~ "값 배치 유형 <literal>@Production</literal> 보다 높은 우선 순위를 갖게 되"
+#~ "므로 클라이언트는 다음과 같은 삽입 지점을 사용하게 됩니다:  "
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
-msgstr "상위클래스의 모든 API 유형은 <literal>@Specializes</literal>로 어노테이션된 Web Bean의 API 유형입니다 (상위클래스 엔터프라이즈 빈의 모든 로컬 인터페이스는 하부클래스의 로컬 인터페이스도 됩니다)   "
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
-msgstr "<literal>@Specializes</literal>로 어노테이션된 Web Bean의 배치 유형은 상위클래스의 배치 유형보다 높은 우선 순위를 갖습니다   "
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> 인스턴스를 받고자 합"
+#~ "니다. "
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "상위클래스를 특성화하는 활성화된 Web Bean이 없습니다.   "
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "불행하게도 여기에는 몇 가지 함정이 있습니다: "
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
-msgstr "이러한 조건을 위반할 경우, Web Bean 관리자는 초기화시 예외 처리를 넘기게 됩니다.   "
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "높은 우선 순위의 Web Bean은 덮어쓰기하려는 Web Bean의 모든 API 유형을 구현"
+#~ "할 수 없습니다. "
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr "따라서, <literal>@Specializes</literal>라고 어노테이션된 Web Bean이 배치되어 활성화된 시스템의 어떤 배치에서도 상위클래스는 <emphasis>절대로</emphasis> 호출되지 않음을 확인할 수 있습니다.    "
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "높은 우선 순위의 Web Bean은 덮어쓰기하려는 Web Bean의 모든 바인딩 유형을 "
+#~ "명시할 수 없습니다. "
 
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "높은 우선 순위의 Web Bean은 덮어 쓰기하려는 Web Bean과 동일한 이름을 갖을 "
+#~ "수 없습니다. "
+
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "덮어쓰기하려는 Web Bean은 생산자 방식, 폐지 방식 또는 옵저버 방식을 명시"
+#~ "할 수 있습니다.   "
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "이러한 경우, 덮어 쓰기하려는 Web Bean은 런타임시 호출 가능해야 합니다 따라"
+#~ "서, 덮어쓰기는 다소 개발자 오류를 초래하는 경우가 있습니다. "
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "특성화는 심플 Web Beans 및 엔터프라이즈 Web Beans에만 있는 기능입니다. 특"
+#~ "성화 기능을 사용하려면 높은 우선 순위의 Web Bean은 다음 사항을 따라야 합니"
+#~ "다:  "
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "덮어쓰기할 Web Bean의 직접적인 하부 클래스가 되어야 합니다. "
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "덮어쓰기할 Web Bean이 심플 Web Bean일 경우 심플 Web Bean이 되어야 하고 또"
+#~ "는 덮어쓰기 할 Web Bean이 엔터프라이즈 Web Bean일 경우 엔터프라이즈 Web "
+#~ "Bean이 되어야 합니다  "
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "<literal>@Specializes</literal>로 어노테이션되어야 합니다. "
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "특성화 기능의 장점  "
+
+#~ msgid "When specialization is used:"
+#~ msgstr "특성화 기능 사용시:  "
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "상위클래스의 바인딩 유형은 <literal>@Specializes</literal>로 어노테이션된 "
+#~ "Web Bean에 의해 자동으로 상속됩니다   "
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "상위클래스의 Web Bean 이름은 <literal>@Specializes</literal>로 어노테이션"
+#~ "된 Web Bean에 의해 자동으로 상속됩니다   "
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "상위클래스에 의해 명시된 생산자 방식, 폐지 방식 및 옵저버 방식은 "
+#~ "<literal>@Specializes</literal>로 어노테이션된 Web Bean 인스턴스를 호출합"
+#~ "니다.   "
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "예에서 <literal>CreditCardPaymentProcessor</literal>의 "
+#~ "<literal>@CreditCard</literal> 바인딩 유형은 "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>에 의해 전승됩니다. "
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "Web Bean 관리자는 다음 사항을 유효화합니다:  "
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "상위클래스의 모든 API 유형은 <literal>@Specializes</literal>로 어노테이션"
+#~ "된 Web Bean의 API 유형입니다 (상위클래스 엔터프라이즈 빈의 모든 로컬 인터"
+#~ "페이스는 하부클래스의 로컬 인터페이스도 됩니다)   "
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "<literal>@Specializes</literal>로 어노테이션된 Web Bean의 배치 유형은 상위"
+#~ "클래스의 배치 유형보다 높은 우선 순위를 갖습니다   "
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr "상위클래스를 특성화하는 활성화된 Web Bean이 없습니다.   "
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "이러한 조건을 위반할 경우, Web Bean 관리자는 초기화시 예외 처리를 넘기게 "
+#~ "됩니다.   "
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "따라서, <literal>@Specializes</literal>라고 어노테이션된 Web Bean이 배치되"
+#~ "어 활성화된 시스템의 어떤 배치에서도 상위클래스는 <emphasis>절대로</"
+#~ "emphasis> 호출되지 않음을 확인할 수 있습니다.    "

Modified: doc/trunk/reference/ko-KR/stereotypes.po
===================================================================
--- doc/trunk/reference/ko-KR/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: stereotypes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 15:31+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,97 +15,101 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "스테레오타입 (Stereotypes)  "
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "Web Beans 사양에 따라: "
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
-msgstr "여러 시스템에서, 아키텍처 패턴을 사용하여 Web Bean 역할을 반복하는 모음을 생산합니다. 스테레오타입은 프레임워크 개발자가 이러한 역할을 인식하고 중앙 위치에서의 역할과 함께 Web Beans의 일반적인 메타데이터를 명시하게 합니다. "
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"여러 시스템에서, 아키텍처 패턴을 사용하여 Web Bean 역할을 반복하는 모음을 생"
+"산합니다. 스테레오타입은 프레임워크 개발자가 이러한 역할을 인식하고 중앙 위치"
+"에서의 역할과 함께 Web Beans의 일반적인 메타데이터를 명시하게 합니다. "
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "스테레오타입은 다음의 조합을 캡슐화합니다:  "
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "기본값 배치 유형 "
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "기본값 범위 유형 "
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "Web Bean 범위에서의 제한, "
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "인터셉터 바인딩 어노테이션 모음 "
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "특정 유형을 Web Bean이 구현하거나 확장하기 위한 요구 사항 "
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "인터셉터 바인딩 어노테이션 모음 "
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
-msgstr "스테레오타입은 스테레오타입이 있는 모든 Web Beans이 Web Bean 이름을 기본값으로 하도록 지정할 수 도 있습니다.  "
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"스테레오타입은 스테레오타입이 있는 모든 Web Beans이 Web Bean 이름을 기본값으"
+"로 하도록 지정할 수 도 있습니다.  "
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Web Bean은 0 또는 하나 이상의 스테레오타입을 명시할 있습니다. "
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
-msgstr "스테레오타입은 Java 어노테이션 유형입니다. 이러한 스테레오타입은 일부 MVC 프레임워크에서 작업 클래스를 인식합니다:   "
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"스테레오타입은 Java 어노테이션 유형입니다. 이러한 스테레오타입은 일부 MVC 프"
+"레임워크에서 작업 클래스를 인식합니다:   "
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -114,13 +118,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "Web Bean에 어노테이션을 적용하여 스테레오타입을 사용합니다.  "
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -129,267 +133,292 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "스테레오타입에 대한 기본값 범위 및 배치 유형 "
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
-msgstr "스테레오타입은 해당 스테레오타입과 함께 Web Beans의 기본값 범위 또는 기본값 배치 유형을 지정할 수 있습니다. 예를 들어, <literal>@WebTier</literal> 배치 유형이 시스템이 웹 애플리케이션으로 실행될 때만 Web Beans이 배치됨을 인식할 경우, 각각의 작업 클래스에 대해 다음과 같은 기본값을 지정할 수 있습니다: "
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"스테레오타입은 스테레오타입이 있는 모든 Web Beans이 Web Bean 이름을 기본값으"
+"로 하도록 지정할 수 도 있습니다.  "
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
 msgstr "물론 특정 작업은 필요할 경우 이러한 기본값을 덮어쓰기할 수 있습니다:  "
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "모든 작업을 특정 범위로 강제시키고자 할 경우, 강제시킬 수 있습니다.  "
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "스테레오타입으로 범위 및 유형 제한 "
+msgid "Interceptor bindings for stereotypes"
+msgstr "스테레오타입 용 인터셉터 바인딩  "
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
-msgstr "어떤 작업이 특정 범위를 명시하지 못하게 하길 원한다고 가정합니다. Web Beans는 특정 스테레오타입과 함께 Web Beans의 허용 범위 모음을 명시적으로 지정할 수 있게 합니다. 예:  "
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"스테레오타입은 스테레오타입과 함께 모든 Web Beans에 의해 상속되기 위해 인터셉"
+"터 바인딩 모음을 지정할 수 있습니다.  "
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
-#, no-c-format
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
-msgstr "특정 작업 클래스가 Web Beans 요청 범위 외의 범위를 지정하려고 할 경우, 초기화시 예외 처리가 Web Bean 관리자에 의해 넘어가게 됩니다. "
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"이는 비지니스 코드에서 발생할 수 있는 기술적 문제를 발생하지 않게 합니다! "
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr "스테레오타입과 함께 이름을 기본값으로 지정 "
+
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
-msgstr "특정 스테레오타입과 함께 모든 Web Bean을 강제하여 인터페이스를 구현하거나 클래스를 확장할 수 있습니다:  "
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"마지막으로 특정 스테레오타입과 함께 모든 Web Beans가 Web Bean 관리자에 의해 "
+"기본값으된 Web Bean 이름을 갖도록 지정할 수 있습니다. 작업은 JSP 페이지에서 "
+"참조할 수 있어, 이러한 기능을 완벽하게 사용할 수 있는 경우라 할 수 있습니다. "
+"필요한 작업은 빈 <literal>@Named</literal> 어노테이션을 추가하는 것입니다:  "
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
 msgstr ""
-"특정 작업 클래스가 <literal>AbstractAction</literal> 클래스를 확장하지 않을 경우, 초기화시 예외 처리가 Web "
-"Bean 관리자에 의해 넘어가게 됩니다. "
+"이제 <literal>LoginAction</literal>은 <literal>loginAction</literal>이라는 이"
+"름을 갖게 됩니다. "
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "스테레오타입 용 인터셉터 바인딩  "
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "표준 스테레오타입 "
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
-msgstr "스테레오타입은 스테레오타입과 함께 모든 Web Beans에 의해 상속되기 위해 인터셉터 바인딩 모음을 지정할 수 있습니다.  "
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
-msgstr "이는 비지니스 코드에서 발생할 수 있는 기술적 문제를 발생하지 않게 합니다! "
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "스테레오타입 (Stereotypes)  "
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "스테레오타입과 함께 이름을 기본값으로 지정 "
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "마지막으로 특정 스테레오타입과 함께 모든 Web Beans가 Web Bean 관리자에 의해 기본값으된 Web Bean 이름을 갖도록 지정할 수 있습니다. 작업은 JSP 페이지에서 참조할 수 있어, 이러한 기능을 완벽하게 사용할 수 있는 경우라 할 수 있습니다. 필요한 작업은 빈 <literal>@Named</literal> 어노테이션을 추가하는 것입니다:  "
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
-msgstr "이제 <literal>LoginAction</literal>은 <literal>loginAction</literal>이라는 이름을 갖게 됩니다. "
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "표준 스테레오타입 "
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
-msgstr "Web Beans 사양에 의해 정의된 두가지 표준 스테레오타입 <literal>@Interceptor</literal> 및 <literal>@Decorator</literal>를 살펴보았습니다.  "
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
+msgstr ""
+"Web Beans 사양에 의해 정의된 두가지 표준 스테레오타입 <literal>@Interceptor</"
+"literal> 및 <literal>@Decorator</literal>를 살펴보았습니다.  "
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Beans는 하나 이상의 표준 스테레오타입을 정의합니다:  "
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -399,11 +428,129 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
-msgstr "이러한 스테레오타입은 JSF와 함께 사용하기 위한 것입니다. JSF 관리 beans을 사용하지 않고 Web Bean <literal>@Model</literal>을 어노테이션하여 이를 직접 JSF 페이지에서 사용합니다. "
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"이러한 스테레오타입은 JSF와 함께 사용하기 위한 것입니다. JSF 관리 beans을 사"
+"용하지 않고 Web Bean <literal>@Model</literal>을 어노테이션하여 이를 직접 "
+"JSF 페이지에서 사용합니다. "
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "Web Beans 사양에 따라: "
+
+#~ msgid "a default deployment type,"
+#~ msgstr "기본값 배치 유형 "
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "Web Bean 범위에서의 제한, "
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr "특정 유형을 Web Bean이 구현하거나 확장하기 위한 요구 사항 "
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Web Bean은 0 또는 하나 이상의 스테레오타입을 명시할 있습니다. "
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "스테레오타입은 해당 스테레오타입과 함께 Web Beans의 기본값 범위 또는 기본"
+#~ "값 배치 유형을 지정할 수 있습니다. 예를 들어, <literal>@WebTier</literal> "
+#~ "배치 유형이 시스템이 웹 애플리케이션으로 실행될 때만 Web Beans이 배치됨을 "
+#~ "인식할 경우, 각각의 작업 클래스에 대해 다음과 같은 기본값을 지정할 수 있습"
+#~ "니다: "
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "모든 작업을 특정 범위로 강제시키고자 할 경우, 강제시킬 수 있습니다.  "
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "스테레오타입으로 범위 및 유형 제한 "
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "어떤 작업이 특정 범위를 명시하지 못하게 하길 원한다고 가정합니다. Web "
+#~ "Beans는 특정 스테레오타입과 함께 Web Beans의 허용 범위 모음을 명시적으로 "
+#~ "지정할 수 있게 합니다. 예:  "
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "특정 작업 클래스가 Web Beans 요청 범위 외의 범위를 지정하려고 할 경우, 초"
+#~ "기화시 예외 처리가 Web Bean 관리자에 의해 넘어가게 됩니다. "
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "특정 스테레오타입과 함께 모든 Web Bean을 강제하여 인터페이스를 구현하거나 "
+#~ "클래스를 확장할 수 있습니다:  "
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "특정 작업 클래스가 <literal>AbstractAction</literal> 클래스를 확장하지 않"
+#~ "을 경우, 초기화시 예외 처리가 Web Bean 관리자에 의해 넘어가게 됩니다. "
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Beans는 하나 이상의 표준 스테레오타입을 정의합니다:  "

Modified: doc/trunk/reference/ko-KR/viewlayers.po
===================================================================
--- doc/trunk/reference/ko-KR/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/ko-KR/weldexamples.po
===================================================================
--- doc/trunk/reference/ko-KR/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/ko-KR/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language ko-KR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/ko-KR/xml.po
===================================================================
--- doc/trunk/reference/ko-KR/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/ko-KR/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-23 11:16+1000\n"
 "Last-Translator: Eunju Kim <eukim at redhat.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,73 +15,73 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
 "\n"
 "\n"
 "\n"
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "XML을 사용하여 Web Beans 정의 "
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
+#: xml.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
-msgstr "지금까지 어노테이션을 사용하여 명시된 여러 가지 Web Beans의 예를 살펴보았습니다. 하지만 Web Bean을 정의하기 위해 어노테이션을 사용할 수 없는 경우가 종종 있습니다: "
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"지금까지 어노테이션을 사용하여 명시된 여러 가지 Web Beans의 예를 살펴보았습니"
+"다. 하지만 Web Bean을 정의하기 위해 어노테이션을 사용할 수 없는 경우가 종종 "
+"있습니다: "
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr "구현 클래스가 일부 기존 라이브러에서 비롯되었을 경우, "
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
 msgstr "동일한 구현 클래스를 갖는 다수의 Web Beans이 있을 경우 "
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "이러한 경우, Web Beans는 두 가지 옵션을 제공합니다: "
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "생산자 방식 작성 또는 "
-
-#. Tag: para
-#: xml.xml:24
-#, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "XML을 사용하여 Web Bean 명시 "
-
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
+#: xml.xml:31
+#, fuzzy, no-c-format
 msgid ""
 "Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
 "class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
-msgstr "다수의 프레임워크는 XML을 사용하여 Java 클래스 관련 메타테이터를 제공합니다. 하지만, Web Beans는 다양한 접근 방법을 사용하여 Java 클래스 이름, 영역, 방식을 대부분의 다른 프레임워크에 지정합니다. XML 요소 및 속성의 문자열 값으로 클래스 및 멤버 이름을 작성하는 대신, Web Beans는 XML 요소 이름으로 클래스 또는 멤버 이름을 사용하게 합니다. "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"다수의 프레임워크는 XML을 사용하여 Java 클래스 관련 메타테이터를 제공합니다. "
+"하지만, Web Beans는 다양한 접근 방법을 사용하여 Java 클래스 이름, 영역, 방식"
+"을 대부분의 다른 프레임워크에 지정합니다. XML 요소 및 속성의 문자열 값으로 클"
+"래스 및 멤버 이름을 작성하는 대신, Web Beans는 XML 요소 이름으로 클래스 또는 "
+"멤버 이름을 사용하게 합니다. "
 
 #. Tag: para
-#: xml.xml:33
+#: xml.xml:38
 #, no-c-format
 msgid ""
 "The advantage of this approach is that you can write an XML schema that "
@@ -89,28 +89,34 @@
 "to generate the XML schema automatically from the compiled Java code. Or, an "
 "integrated development environment could perform the same validation without "
 "the need for the explicit intermediate generation step."
-msgstr "이러한 접근 방법의 장점은 XML 문서에서 스펠링 오류가 나타나지 않게 하는 XML 스키마를 작성할 수 있다는 것입니다. 컴파일된 Java 코드에서 XML 스키마를 자동으로 생성하기 위한 도구를 만들 수 도 있습니다. 또는 통합된 개발 환경은 중간 생성 단계를 거치지 않고 동일한 검증을 실행할 수 있습니다.  "
+msgstr ""
+"이러한 접근 방법의 장점은 XML 문서에서 스펠링 오류가 나타나지 않게 하는 XML "
+"스키마를 작성할 수 있다는 것입니다. 컴파일된 Java 코드에서 XML 스키마를 자동"
+"으로 생성하기 위한 도구를 만들 수 도 있습니다. 또는 통합된 개발 환경은 중간 "
+"생성 단계를 거치지 않고 동일한 검증을 실행할 수 있습니다.  "
 
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Web Bean 클래스 명시 "
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
+#: xml.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
+"For each Java package, Weld defines a corresponding XML namespace. The "
 "namespace is formed by prepending <literal>urn:java:</literal> to the Java "
 "package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
 "namespace is <literal>urn:java:com.mydomain.myapp</literal>."
 msgstr ""
-"각각의 Java 패키지의 경우, Web Beans는 해당 XML namespace를 지정합니다. namespace는 Java 패키지 이름에 <literal>urn:java:</literal>를 덧붙이기하여 형성됩니다. <literal>com.mydomain.myapp</literal> 패키지의 경우, XML "
-"namespace는 <literal>urn:java:com.mydomain.myapp</literal>입니다. "
+"각각의 Java 패키지의 경우, Web Beans는 해당 XML namespace를 지정합니다. "
+"namespace는 Java 패키지 이름에 <literal>urn:java:</literal>를 덧붙이기하여 형"
+"성됩니다. <literal>com.mydomain.myapp</literal> 패키지의 경우, XML namespace"
+"는 <literal>urn:java:com.mydomain.myapp</literal>입니다. "
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
 msgid ""
 "Java types belonging to a package are referred to using an XML element in "
@@ -118,26 +124,30 @@
 "name of the Java type. Fields and methods of the type are specified by child "
 "elements in the same namespace. If the type is an annotation, members are "
 "specified by attributes of the element."
-msgstr "패키지에 속한 Java 유형은 패키지에 해당하는 namespace에 있는 XML 요소를 사용하여 참조합니다. 요소 이름은 Java 유형의 이름이 됩니다. 유형 영역 및 방식은 동일한 namespace에 있는 자식 요소에 의해 지정됩니다. 유형이 어노테이션되어 있을 경우, 멤버는 요소의 속성에 의해 지정됩니다.  "
+msgstr ""
+"패키지에 속한 Java 유형은 패키지에 해당하는 namespace에 있는 XML 요소를 사용"
+"하여 참조합니다. 요소 이름은 Java 유형의 이름이 됩니다. 유형 영역 및 방식은 "
+"동일한 namespace에 있는 자식 요소에 의해 지정됩니다. 유형이 어노테이션되어 있"
+"을 경우, 멤버는 요소의 속성에 의해 지정됩니다.  "
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
 msgid ""
 "For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
 "following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "예를 들어, 다음의 XML 부분에 있는 <literal>&lt;util:Date/&gt;</literal> 요소는 <literal>java.util.Date</literal> 클래스를 참조합니다:  "
+msgstr ""
+"예를 들어, 다음의 XML 부분에 있는 <literal>&lt;util:Date/&gt;</literal> 요소"
+"는 <literal>java.util.Date</literal> 클래스를 참조합니다:  "
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -147,42 +157,47 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
+#: xml.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
-msgstr "<literal>Date</literal>는 심플 Web Bean임을 명시해야 할 모든 코드입니다! <literal>Date</literal>의 인스턴스는 기타 다른 Web Bean에 의해 삽입될 수 있습니다:   "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"<literal>Date</literal>는 심플 Web Bean임을 명시해야 할 모든 코드입니다! "
+"<literal>Date</literal>의 인스턴스는 기타 다른 Web Bean에 의해 삽입될 수 있습"
+"니다:   "
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Web Bean 메타데이터 명시 "
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
+#: xml.xml:80
+#, fuzzy, no-c-format
 msgid ""
 "We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
-msgstr "Web Bean 명시의 직접적인 자식 요소를 사용하여 범위, 배치 유형, 인터셉터 바인딩 유형을 명시할 수 있습니다:     "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"Web Bean 명시의 직접적인 자식 요소를 사용하여 범위, 배치 유형, 인터셉터 바인"
+"딩 유형을 명시할 수 있습니다:     "
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -192,29 +207,29 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
 msgstr "이름 및 바인딩 유형을 지정하기 위해 동일한 방법을 사용합니다:  "
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -234,38 +249,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
+#: xml.xml:91
+#, fuzzy, no-c-format
 msgid ""
 "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
-msgstr "여기서 <literal>@Login</literal> 및 <literal>@SystemStart</literal>는 바인딩 어노테이션 유형입니다.  "
+"qualifier annotations types."
+msgstr ""
+"여기서 <literal>@Login</literal> 및 <literal>@SystemStart</literal>는 바인딩 "
+"어노테이션 유형입니다.  "
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "일반적으로 Web Bean은 여러 바인딩 유형을 지원할 수 있습니다:  "
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -274,20 +291,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
+#: xml.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
-msgstr "인터셉터 및 데코레이터는 심플 Web Beans이므로, 기타 다른 심플 Web Bean같이 나타낼 수 있습니다:    "
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"인터셉터 및 데코레이터는 심플 Web Beans이므로, 기타 다른 심플 Web Bean같이 나"
+"타낼 수 있습니다:    "
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -296,42 +315,42 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Web Bean 멤버 명시 "
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "처리해야 할 사항! "
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "인라인 Web Beans 명시 "
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
 msgstr "Web Beans는 삽입 지점에서 Web Bean을 지정할 수 있게 합니다. 예: "
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -346,58 +365,66 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
+#: xml.xml:125
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
-msgstr "<literal>&lt;Name&gt;</literal> 요소는 초기화 영역값 설정과 함께 <literal>@Dependent</literal> 범위의 심플 Web Bean 및 <literal>Name</literal> 클래스를 명시합니다. Web Bean은 특정한 컨테이너 생성 바인딩이 있으므로 명시된 특정 삽입 지점에만 삽입할 수 있습니다.     "
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"<literal>&lt;Name&gt;</literal> 요소는 초기화 영역값 설정과 함께 "
+"<literal>@Dependent</literal> 범위의 심플 Web Bean 및 <literal>Name</"
+"literal> 클래스를 명시합니다. Web Bean은 특정한 컨테이너 생성 바인딩이 있으므"
+"로 명시된 특정 삽입 지점에만 삽입할 수 있습니다.     "
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
+#: xml.xml:131
+#, fuzzy, no-c-format
 msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
 "solution, but it's close!"
-msgstr "이러한 간단하지만 강력한 기능은 Web Beans XML 포맷이 Java 객체의 전체 그래프를 지정하는데 사용하게 합니다. 이는 완전한 데이터바인딩 솔루션이 아니지만, 근접한 솔루션입니다! "
+msgstr ""
+"이러한 간단하지만 강력한 기능은 Web Beans XML 포맷이 Java 객체의 전체 그래프"
+"를 지정하는데 사용하게 합니다. 이는 완전한 데이터바인딩 솔루션이 아니지만, 근"
+"접한 솔루션입니다! "
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "스키마 사용 "
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
+#: xml.xml:141
+#, fuzzy, no-c-format
 msgid ""
 "If we want our XML document format to be authored by people who aren't Java "
 "developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
-msgstr "Java 개발자 이외나 또는 코드로 액세스할 수 없는 사람들에 의해 작성된 XML 문서 형식을 원하실 경우, 스키마를 제공해야 합니다. 스키마를 사용 또는 작성에 관해 Web Beans에 특정한 사항이 없습니다.  "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Java 개발자 이외나 또는 코드로 액세스할 수 없는 사람들에 의해 작성된 XML 문"
+"서 형식을 원하실 경우, 스키마를 제공해야 합니다. 스키마를 사용 또는 작성에 관"
+"해 Web Beans에 특정한 사항이 없습니다.  "
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
@@ -414,11 +441,21 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
+#: xml.xml:149
+#, fuzzy, no-c-format
 msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
-msgstr "XML 스키마 작성은 다소 장황합니다. 따라서 Web Beans RI 프로젝트는 컴파일된 자바 코드에서 XML 스키마를 자동으로 생성하는 도구를 제공하게 됩니다. "
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"XML 스키마 작성은 다소 장황합니다. 따라서 Web Beans RI 프로젝트는 컴파일된 자"
+"바 코드에서 XML 스키마를 자동으로 생성하는 도구를 제공하게 됩니다. "
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "이러한 경우, Web Beans는 두 가지 옵션을 제공합니다: "
+
+#~ msgid "write a producer method, or"
+#~ msgstr "생산자 방식 작성 또는 "
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "XML을 사용하여 Web Bean 명시 "

Modified: doc/trunk/reference/pot/Author_Group.pot
===================================================================
--- doc/trunk/reference/pot/Author_Group.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/Author_Group.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,113 +15,103 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr ""
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr ""
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:31
+#, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr ""
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr ""
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr ""
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr ""
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr ""
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr ""
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr ""
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr ""
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr ""
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr ""
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr ""
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr ""
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr ""
-
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""

Modified: doc/trunk/reference/pot/Book_Info.pot
===================================================================
--- doc/trunk/reference/pot/Book_Info.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/Book_Info.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,12 +17,13 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
+msgid "Weld - JSR-299 Reference Implementation"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
 #, no-c-format
 msgid ""
-"The new standard for dependency injection and contextual state management"
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr ""

Added: doc/trunk/reference/pot/beans.pot
===================================================================
--- doc/trunk/reference/pot/beans.pot	                        (rev 0)
+++ doc/trunk/reference/pot/beans.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1245 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/pot/decorators.pot
===================================================================
--- doc/trunk/reference/pot/decorators.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/decorators.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,214 +15,285 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:6
+#: decorators.xml:7
 #, no-c-format
 msgid ""
 "Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:14
+#: decorators.xml:15
 #, no-c-format
 msgid ""
 "The reverse is true of <emphasis>decorators</emphasis>. A decorator "
 "intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:24
+#: decorators.xml:26
 #, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:26
+#: decorators.xml:28
 #, no-c-format
 msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:32
+#: decorators.xml:34
 #, no-c-format
 msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
 #, no-c-format
 msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: decorators.xml:41
+#, no-c-format
+msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:37
+#: decorators.xml:47
 #, no-c-format
 msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
 msgstr ""
 
+#. Tag: para
+#: decorators.xml:52
+#, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+
 #. Tag: title
-#: decorators.xml:43
+#: decorators.xml:57
 #, no-c-format
-msgid "Delegate attributes"
+msgid "Delegate object"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
 msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
 msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
+#. Tag: programlisting
+#: decorators.xml:65
 #, no-c-format
 msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: decorators.xml:53
+#. Tag: para
+#: decorators.xml:67
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
+msgid "A decorator is bound to any bean which:"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:55
+#: decorators.xml:71
 #, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr ""
+
+#. Tag: para
+#: decorators.xml:74
+#, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+
+#. Tag: para
+#: decorators.xml:78
+#, no-c-format
 msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:58
+#: decorators.xml:83
 #, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:60
+#: decorators.xml:85
 #, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
 msgstr ""
 
-#. Tag: para
-#: decorators.xml:64
+#. Tag: programlisting
+#: decorators.xml:90
 #, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:67
+#: decorators.xml:92
 #, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
 msgstr ""
 
-#. Tag: para
-#: decorators.xml:71
+#. Tag: programlisting
+#: decorators.xml:98
 #, no-c-format
 msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
 msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
 msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:85
+#: decorators.xml:113
 #, no-c-format
 msgid ""
 "This declaration serves the same purpose for decorators that the "
-"<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
@@ -230,15 +301,7 @@
 msgstr ""
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
 msgstr ""
-
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr ""

Added: doc/trunk/reference/pot/dependencies.pot
===================================================================
--- doc/trunk/reference/pot/dependencies.pot	                        (rev 0)
+++ doc/trunk/reference/pot/dependencies.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,135 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: dependencies.xml:5
+#, no-c-format
+msgid "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/pot/ee.pot
===================================================================
--- doc/trunk/reference/pot/ee.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/ee.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,192 +24,226 @@
 #: ee.xml:6
 #, no-c-format
 msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
 msgstr ""
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
+msgid "Built-in beans"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
 msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:22
+#, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
+msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:49
+#, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
 "examples of this, though we didn't pay much attention at the time:"
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:19
+#: ee.xml:56
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:21
+#: ee.xml:58
 #, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:23
+#: ee.xml:60
 #, no-c-format
 msgid ""
 "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
 msgstr ""
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
 msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
 msgstr ""
 
 #. Tag: title
-#: ee.xml:35
+#: ee.xml:74
 #, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+msgid "Calling a bean from a servlet"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:37
+#: ee.xml:76
 #, no-c-format
 msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:40
+#: ee.xml:81
 #, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse "
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
 "response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:42
+#: ee.xml:83
 #, no-c-format
 msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
 msgstr ""
 
 #. Tag: title
-#: ee.xml:49
+#: ee.xml:92
 #, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+msgid "Calling a bean from a message-driven bean"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
 msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
 msgstr ""
 
 #. Tag: para
-#: ee.xml:57
+#: ee.xml:99
 #, no-c-format
-msgid ""
-"You can even use Web Beans interceptor bindings for Message-Driven Beans."
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:59
+#: ee.xml:101
 #, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:61
+#: ee.xml:103
 #, no-c-format
 msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
 msgstr ""
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
 msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
 msgid ""
 "Sending messages using JMS can be quite complex, because of the number of "
@@ -224,107 +258,120 @@
 msgstr ""
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
 msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:86
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:88
-#, no-c-format
-msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
-msgstr ""
-
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
 msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
+#: ee.xml:138
 #, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
-msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-
 #. Tag: para
-#: ee.xml:100
+#: ee.xml:144
 #, no-c-format
 msgid ""
 "The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
+"container."
 msgstr ""
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr ""
 
 #. Tag: para
-#: ee.xml:108
+#: ee.xml:153
 #, no-c-format
 msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
 msgstr ""
 
 #. Tag: para
-#: ee.xml:116
+#: ee.xml:162
 #, no-c-format
 msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
 msgstr ""

Modified: doc/trunk/reference/pot/environments.pot
===================================================================
--- doc/trunk/reference/pot/environments.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/environments.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/pot/events.pot
===================================================================
--- doc/trunk/reference/pot/events.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/events.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,23 +24,31 @@
 #: events.xml:6
 #, no-c-format
 msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
 msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
 msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:18
+#, no-c-format
+msgid ""
 "not only are event producers decoupled from observers; observers are "
 "completely decoupled from producers,"
 msgstr ""
 
 #. Tag: para
-#: events.xml:18
+#: events.xml:22
 #, no-c-format
 msgid ""
 "observers can specify a combination of \"selectors\" to narrow the set of "
@@ -48,66 +56,91 @@
 msgstr ""
 
 #. Tag: para
-#: events.xml:22
+#: events.xml:28
 #, no-c-format
 msgid ""
 "observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
+"event should be delayed until the end of the current transaction."
 msgstr ""
 
+#. Tag: para
+#: events.xml:35
+#, no-c-format
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
+
 #. Tag: title
-#: events.xml:28
+#: events.xml:39
 #, no-c-format
-msgid "Event observers"
+msgid "Event payload"
 msgstr ""
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:41
 #, no-c-format
 msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
 msgstr ""
 
+#. Tag: para
+#: events.xml:48
+#, no-c-format
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
+
 #. Tag: programlisting
-#: events.xml:33
+#: events.xml:52
 #, no-c-format
 msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Updated {}]]>"
 msgstr ""
 
+#. Tag: title
+#: events.xml:57
+#, no-c-format
+msgid "Event observers"
+msgstr ""
+
 #. Tag: para
-#: events.xml:35
+#: events.xml:59
 #, no-c-format
 msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
+#: events.xml:64
 #, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
-"@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:43
+#: events.xml:66
 #, no-c-format
 msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:72 events.xml:240
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -115,25 +148,25 @@
 msgstr ""
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:74
 #, no-c-format
 msgid ""
-"An observer method need not specify any event bindings &#151; in this case "
+"An observer method need not specify any event qualifiers&#8212;in this case "
 "it is interested in <emphasis>all</emphasis> events of a particular type. If "
-"it does specify event bindings, it is only interested in events which also "
-"have those event bindings."
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
 msgstr ""
 
 #. Tag: para
-#: events.xml:53
+#: events.xml:80
 #, no-c-format
 msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
+"The observer method may have additional parameters, which are injection "
+"points:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -141,228 +174,227 @@
 msgstr ""
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr ""
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
 msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
+#: events.xml:96
 #, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:68
+#: events.xml:98
 #, no-c-format
 msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:103
+#, no-c-format
+msgid "<![CDATA[documentEvent.fire(document);]]>"
+msgstr ""
+
 #. Tag: para
-#: events.xml:72
+#: events.xml:105
 #, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:111
+#, no-c-format
 msgid ""
-"A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr ""
 
-#. Tag: programlisting
-#: events.xml:75
+#. Tag: para
+#: events.xml:115
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire(document);]]>"
+msgid "specifies no qualifiers."
 msgstr ""
 
 #. Tag: para
-#: events.xml:77
+#: events.xml:119
 #, no-c-format
 msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
 msgstr ""
 
 #. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
+#: events.xml:125
 #, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+msgid "Qualifiers can be applied to an event in one of two ways:"
 msgstr ""
 
 #. Tag: para
-#: events.xml:86
+#: events.xml:131
 #, no-c-format
-msgid "specifies no event bindings."
+msgid "by annotating the <literal>Event</literal> injection point, or"
 msgstr ""
 
 #. Tag: para
-#: events.xml:90
+#: events.xml:134
 #, no-c-format
 msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:138
 #, no-c-format
-msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:98
+#: events.xml:142
 #, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:144
 #, no-c-format
 msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
 msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:151
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
+msgid "has an event parameter to which the event object is assignable, and"
 msgstr ""
 
 #. Tag: para
-#: events.xml:110
+#: events.xml:154
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
 msgstr ""
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:161
 #, no-c-format
 msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:118
+#: events.xml:167
 #, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr ""
-
-#. Tag: para
-#: events.xml:120
-#, no-c-format
 msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
 msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
 #, no-c-format
-msgid "Registering observers dynamically"
+msgid "Conditional observer methods"
 msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:180
 #, no-c-format
 msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
 msgstr ""
 
-#. Tag: programlisting
-#: events.xml:144
+#. Tag: para
+#: events.xml:186
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
 msgstr ""
 
-#. Tag: para
-#: events.xml:146
+#. Tag: programlisting
+#: events.xml:191
 #, no-c-format
 msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: events.xml:149
+#. Tag: para
+#: events.xml:193
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
 
 #. Tag: title
-#: events.xml:154
+#: events.xml:200
 #, no-c-format
-msgid "Event bindings with members"
+msgid "Event qualifiers with members"
 msgstr ""
 
 #. Tag: para
-#: events.xml:156
+#: events.xml:202
 #, no-c-format
-msgid "An event binding type may have annotation members:"
+msgid "An event qualifier type may have annotation members:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:158
+#: events.xml:204
 #, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
 msgid ""
 "The member value is used to narrow the messages delivered to the observer:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
 msgid ""
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
@@ -370,77 +402,78 @@
 msgstr ""
 
 #. Tag: para
-#: events.xml:164
+#: events.xml:210
 #, no-c-format
 msgid ""
-"Event binding type members may be specified statically by the event "
+"Event qualifier type members may be specified statically by the event "
 "producer, via annotations at the event notifier injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:167
+#: events.xml:215
 #, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:169
+#: events.xml:217
 #, no-c-format
 msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:172
+#: events.xml:222
 #, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:174
+#: events.xml:224
 #, no-c-format
 msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
+"The event producer passes an instance of this class to <literal>select()</"
 "literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:176
+#: events.xml:226
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
 msgstr ""
 
 #. Tag: title
-#: events.xml:181
+#: events.xml:231
 #, no-c-format
-msgid "Multiple event bindings"
+msgid "Multiple event qualifiers"
 msgstr ""
 
 #. Tag: para
-#: events.xml:183
+#: events.xml:233
 #, no-c-format
-msgid "Event binding types may be combined, for example:"
+msgid "Event qualifier types may be combined, for example:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:185
+#: events.xml:235
 #, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
 msgid ""
 "When this event occurs, all of the following observer methods will be "
@@ -448,7 +481,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
@@ -456,7 +489,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
@@ -464,7 +497,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
@@ -472,13 +505,13 @@
 msgstr ""
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr ""
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
 msgid ""
 "Transactional observers receive their event notifications during the before "
@@ -489,95 +522,101 @@
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:205
+#: events.xml:256
 #, no-c-format
 msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:207
+#: events.xml:258
 #, no-c-format
-msgid "There are three kinds of transactional observers:"
+msgid "There are five kinds of transactional observers:"
 msgstr ""
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
 msgstr ""
 
 #. Tag: para
-#: events.xml:216
+#: events.xml:265
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
 msgstr ""
 
 #. Tag: para
-#: events.xml:221
+#: events.xml:271
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
 msgstr ""
 
 #. Tag: para
-#: events.xml:225
+#: events.xml:277
 #, no-c-format
 msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
 msgstr ""
 
 #. Tag: para
-#: events.xml:230
+#: events.xml:283
 #, no-c-format
 msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
 msgstr ""
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
 #, no-c-format
 msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+
+#. Tag: para
+#: events.xml:295
+#, no-c-format
+msgid ""
 "Imagine that we have cached a JPA query result set in the application scope:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:235
+#: events.xml:297
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
 msgid ""
 "From time to time, a <literal>Product</literal> is created or deleted. When "
@@ -587,40 +626,39 @@
 msgstr ""
 
 #. Tag: para
-#: events.xml:242
+#: events.xml:305
 #, no-c-format
 msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:245
+#: events.xml:309
 #, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
 msgid ""
 "And now <literal>Catalog</literal> can observe the events after successful "
@@ -628,23 +666,20 @@
 msgstr ""
 
 #. Tag: programlisting
-#: events.xml:250
+#: events.xml:315
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
 "product) {\n"
-"        products.add(product);\n"
-"    }\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
 "product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""

Modified: doc/trunk/reference/pot/example.pot
===================================================================
--- doc/trunk/reference/pot/example.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/example.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -26,7 +26,7 @@
 msgid ""
 "Let's illustrate these ideas with a full example. We're going to implement "
 "user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
+"request-scoped bean to hold the username and password entered during login:"
 msgstr ""
 
 #. Tag: programlisting
@@ -35,7 +35,6 @@
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -44,14 +43,13 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
 #: example.xml:13
 #, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
+msgid "This bean is bound to the login prompt in the following JSF form:"
 msgstr ""
 
 #. Tag: programlisting
@@ -59,15 +57,15 @@
 #, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
 "login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
@@ -76,98 +74,142 @@
 #: example.xml:17
 #, no-c-format
 msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
 msgstr ""
 
 #. Tag: programlisting
-#: example.xml:21
+#: example.xml:22
 #, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
 msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
+#: example.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
 "public @interface LoggedIn {}]]>"
 msgstr ""
 
+#. Tag: programlisting
+#: example.xml:28
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
+msgstr ""
+
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:38
+#, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
 msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
 msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""

Modified: doc/trunk/reference/pot/extend.pot
===================================================================
--- doc/trunk/reference/pot/extend.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/extend.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,30 +15,29 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
+msgid "Portable extensions"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:6
+#: extend.xml:7
 #, no-c-format
 msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
 msgid ""
 "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
@@ -46,208 +45,237 @@
 msgstr ""
 
 #. Tag: para
-#: extend.xml:21
+#: extend.xml:23
 #, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+msgid "new technology based upon the CDI programming model."
 msgstr ""
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
 msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
 "object."
 msgstr ""
 
 #. Tag: title
-#: extend.xml:29
+#: extend.xml:62
 #, no-c-format
-msgid "The <literal>Manager</literal> object"
+msgid "The <literal>BeanManager</literal> object"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:31
+#: extend.xml:64
 #, no-c-format
 msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
 msgstr ""
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:36
+#: extend.xml:71
 #, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: extend.xml:38
+#: extend.xml:73
 #, no-c-format
-msgid "@Current Manager manager"
+msgid "@Inject BeanManager beanManager"
 msgstr ""
 
+#. Tag: para
+#: extend.xml:75
+#, no-c-format
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:81
+#, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: extend.xml:43
+#: extend.xml:86
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
+msgid "The <literal>Bean</literal> interface"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:45
+#: extend.xml:88
 #, no-c-format
 msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
 msgstr ""
 
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:52
+#: extend.xml:96
 #, no-c-format
 msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
 msgstr ""
 
 #. Tag: para
-#: extend.xml:60
+#: extend.xml:104
 #, no-c-format
 msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
 "specification: <literal>Interceptor</literal> and <literal>Decorator</"
 "literal>."
 msgstr ""
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:69
+#: extend.xml:114
 #, no-c-format
 msgid ""
 "The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
+"CDI, or extension of the built-in scopes to new environments."
 msgstr ""
 
 #. Tag: programlisting
-#: extend.xml:72
+#: extend.xml:119
 #, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: extend.xml:74
+#: extend.xml:121
 #, no-c-format
 msgid ""
 "For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
 msgstr ""

Modified: doc/trunk/reference/pot/extensions.pot
===================================================================
--- doc/trunk/reference/pot/extensions.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/extensions.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/pot/gettingstarted.pot
===================================================================
--- doc/trunk/reference/pot/gettingstarted.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/gettingstarted.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,1739 +15,929 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
+#: gettingstarted.xml:5
 #, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
+msgid "Getting started with Weld"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
+#: gettingstarted.xml:7
 #, no-c-format
 msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:13
+#: gettingstarted.xml:16
 #, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:25
+#. Tag: title
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "the latest release of Web Beans,"
+msgid "Prerequisites"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:24
 #, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:30
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid "the latest release of Weld, which contains the examples"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:34
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "Ant 1.7.0."
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:39
+#. Tag: para
+#: gettingstarted.xml:36
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:42
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+msgid "GlassFish 3.0,"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
+#: gettingstarted.xml:45
 #, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:53
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:66
+#: gettingstarted.xml:58
 #, no-c-format
 msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:64
 #, no-c-format
 msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
-#, no-c-format
-msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:80
+#: gettingstarted.xml:71
 #, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, no-c-format
-msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:76
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:98
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
+msgid "Deploying to JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:104
+#: gettingstarted.xml:83
 #, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:92
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:115
-#, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:120
-#, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:127
-#, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:108
 #, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:140
+#: gettingstarted.xml:110
 #, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
+msgid "You're now ready to deploy your first example!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:150
-#, no-c-format
-msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:119
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:121
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:167
-#, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:169
-#, no-c-format
-msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:175
+#: gettingstarted.xml:125
 #, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:185
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+msgid "a Windows command window:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:191
+#: gettingstarted.xml:131
 #, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:194
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:138
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:206
+#: gettingstarted.xml:145
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:152
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:158
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:222
+#: gettingstarted.xml:163
 #, no-c-format
 msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+"<literal>ant explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:227
+#: gettingstarted.xml:168
 #, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:234
-#, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:238
-#, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:173
 #, no-c-format
-msgid "Start Tomcat:"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
-#, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:178
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:185
 #, no-c-format
-msgid "TODO"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:268
-#, no-c-format
 msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:274
-#, no-c-format
-msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:280
-#, no-c-format
-msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:191
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:194
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:200
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr ""
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:399
+#: gettingstarted.xml:206
 #, no-c-format
 msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:405
+#. Tag: title
+#: gettingstarted.xml:213
 #, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+msgid "Deploying to GlassFish"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:215
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:420
+#: gettingstarted.xml:231
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:240
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
-msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:440
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:443
-#, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:248
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:461
-#, no-c-format
-msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:467
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:472
-#, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:482
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:488
-#, no-c-format
-msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
-msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
-msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
-msgstr ""
-
 #. Tag: title
-#: gettingstarted.xml:505
+#: gettingstarted.xml:285
 #, no-c-format
-msgid "Creating the Eclipse project"
+msgid "Deploying to Apache Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:507
+#: gettingstarted.xml:287
 #, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
-
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:513
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:297
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
+#. Tag: programlisting
+#: gettingstarted.xml:302
 #, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:312
 #, no-c-format
-msgid "Understanding the code"
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:576
+#. Tag: programlisting
+#: gettingstarted.xml:321
 #, no-c-format
-msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:323
 #, no-c-format
-msgid "Differences are:"
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:586
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:332
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:599
+#: gettingstarted.xml:341
 #, no-c-format
 msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:605
-#, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:346
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:612
-#, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:351
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:356
 #, no-c-format
-msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:631
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:639
+#. Tag: programlisting
+#: gettingstarted.xml:367
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:373
 #, no-c-format
 msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "The numberguess example for Java SE with Swing"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
+#: gettingstarted.xml:396
 #, no-c-format
-msgid "To run this example:"
+msgid ""
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:403
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:679
+#. Tag: programlisting
+#: gettingstarted.xml:408
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:693
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "mvn -Drun"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:699
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:705
+#. Tag: programlisting
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
-#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:930
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:942
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:950
+#. Tag: title
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+msgid "Deploying to Jetty"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:955
+#. Tag: para
+#: gettingstarted.xml:457
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:958
+#: gettingstarted.xml:464
 #, no-c-format
 msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:470
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:971
-#, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:978
+#. Tag: programlisting
+#: gettingstarted.xml:485
 #, no-c-format
 msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:986
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:996
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:1002
+#: gettingstarted.xml:501
 #, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1004
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1010
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
+#. Tag: para
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+msgid "First, initialize the Eclipse project:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:1018
+#. Tag: programlisting
+#: gettingstarted.xml:520
 #, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1022
+#: gettingstarted.xml:522
 #, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
+msgid ""
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:1026
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1028
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:1034
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""

Modified: doc/trunk/reference/pot/injection.pot
===================================================================
--- doc/trunk/reference/pot/injection.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/injection.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,141 +17,186 @@
 #. Tag: title
 #: injection.xml:4
 #, no-c-format
-msgid "Dependency injection"
+msgid "Dependency injection and programmatic lookup"
 msgstr ""
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
 msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
 msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:10
+#: injection.xml:23
 #, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
 msgstr ""
 
+#. Tag: para
+#: injection.xml:31
+#, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:14
+#: injection.xml:35
 #, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:18
+#: injection.xml:48
 #, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:25
+#: injection.xml:56
 #, no-c-format
 msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:29
+#: injection.xml:63
 #, no-c-format
 msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:33
+#: injection.xml:69
 #, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:37
+#: injection.xml:74
 #, no-c-format
 msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
 #, no-c-format
 msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:86
 #, no-c-format
 msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:90
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
 msgstr ""
 
+#. Tag: para
+#: injection.xml:95
+#, no-c-format
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -160,909 +205,870 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
 msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
 msgstr ""
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:58
+#: injection.xml:112
 #, no-c-format
 msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
-"<literal>AmbiguousDependencyException</literal>."
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:67
+#: injection.xml:120
 #, no-c-format
 msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:72
+#: injection.xml:126
 #, no-c-format
 msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:131
 #, no-c-format
 msgid ""
 "allow the application deployer to select which implementation is appropriate "
 "for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
+"disabling an <emphasis>alternative</emphasis>, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:137
 #, no-c-format
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:143
+#, no-c-format
 msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
 msgid ""
-"Let's explore how the Web Beans manager determines a Web Bean to be injected."
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
 msgstr ""
 
 #. Tag: title
-#: injection.xml:91
+#: injection.xml:157
 #, no-c-format
-msgid "Binding annotations"
+msgid "Qualifier annotations"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:93
+#: injection.xml:159
 #, no-c-format
 msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
 "<literal>PaymentProcessor</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:98
+#: injection.xml:165
 #, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:100
+#: injection.xml:167
 #, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:102
+#: injection.xml:169
 #, no-c-format
 msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:105
+#: injection.xml:173
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:107
+#: injection.xml:175
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:109
+#: injection.xml:177
 #, no-c-format
 msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:114
+#: injection.xml:183
 #, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:118
+#: injection.xml:187
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:120
+#: injection.xml:189
 #, no-c-format
-msgid "Or using constructor injection:"
+msgid "Using constructor injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:122
+#: injection.xml:191
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:125
-#, no-c-format
-msgid "Binding annotations with members"
-msgstr ""
-
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:193
 #, no-c-format
-msgid "Binding annotations may have members:"
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
+#: injection.xml:199
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayBy {\n"
-"    PaymentType value();\n"
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:201
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr ""
-
-#. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:135
+#: injection.xml:206
 #, no-c-format
 msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
 msgstr ""
 
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:216
 #, no-c-format
-msgid "Combinations of binding annnotations"
+msgid "Qualifiers with members"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:143
+#: injection.xml:218
 #, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:145
+#: injection.xml:224
 #, no-c-format
 msgid ""
-"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:147
+#: injection.xml:226
 #, no-c-format
 msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
+"Then we select one of the possible member values when appling the qualifier:"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:153
+#. Tag: programlisting
+#: injection.xml:230
 #, no-c-format
-msgid "Binding annotations and producer methods"
+msgid ""
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:155
+#: injection.xml:232
 #, no-c-format
-msgid "Even producer methods may specify binding annotations:"
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:157
+#: injection.xml:237
 #, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:242
 #, no-c-format
-msgid "The default binding type"
+msgid "Multiple qualifiers"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:244
 #, no-c-format
-msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
+msgid "An injection point may specify multiple qualifiers:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:168
+#. Tag: programlisting
+#: injection.xml:248
 #, no-c-format
 msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:173
+#: injection.xml:250
 #, no-c-format
 msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:177
+#. Tag: programlisting
+#: injection.xml:255
 #, no-c-format
 msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: title
-#: injection.xml:187
+#: injection.xml:260
 #, no-c-format
-msgid "Deployment types"
+msgid "Alternatives"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:189
+#: injection.xml:262
 #, no-c-format
 msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:193
-#, no-c-format
-msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
-msgstr ""
-
 #. Tag: programlisting
-#: injection.xml:197
+#: injection.xml:266
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:268
 #, no-c-format
 msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:202
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:276
 #, no-c-format
 msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:207
+#. Tag: title
+#: injection.xml:285
 #, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
+msgid "Fixing unsatisfied and ambiguous dependencies"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:287
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
 
-#. Tag: title
-#: injection.xml:216
+#. Tag: para
+#: injection.xml:298
 #, no-c-format
-msgid "Enabling deployment types"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:309
 #, no-c-format
 msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:321
 #, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:327
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:332
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:244
+#. Tag: para
+#: injection.xml:337
 #, no-c-format
-msgid "Deployment type precedence"
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:246
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation &#151; "
-"<literal>ExternalPaymentProcessor</literal> or "
-"<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
-"happens when the manager encounters this injection point:"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr ""
-
 #. Tag: para
-#: injection.xml:253
+#: injection.xml:350
 #, no-c-format
 msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:258
+#: injection.xml:358
 #, no-c-format
-msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
+msgid "Just remember: \"There can be only one.\""
 msgstr ""
 
 #. Tag: para
-#: injection.xml:264
+#: injection.xml:361
 #, no-c-format
 msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:271
+#: injection.xml:366
 #, no-c-format
 msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
 msgstr ""
 
 #. Tag: title
-#: injection.xml:284
+#: injection.xml:373
 #, no-c-format
-msgid "Example deployment types"
+msgid "Client proxies"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:286
+#: injection.xml:375
 #, no-c-format
 msgid ""
-"Deployment types are useful for all kinds of things, here's some examples:"
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:290
+#: injection.xml:380
 #, no-c-format
 msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:386
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:393
 #, no-c-format
 msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:401
 #, no-c-format
 msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:306
+#: injection.xml:407
 #, no-c-format
-msgid "I'm sure you can think of more applications..."
+msgid "The following Java types cannot be proxied by the container:"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:313
+#. Tag: para
+#: injection.xml:411
 #, no-c-format
-msgid "Fixing unsatisfied dependencies"
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:414
 #, no-c-format
 msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:419
 #, no-c-format
-msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
+msgid "arrays and primitive types."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:423
 #, no-c-format
 msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point &#151; or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:430
 #, no-c-format
 msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:437
 #, no-c-format
 msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:341
+#. Tag: para
+#: injection.xml:442
 #, no-c-format
-msgid "Client proxies"
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:448
 #, no-c-format
-msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
+msgid "But we didn't get around to implementing this yet."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:346
+#. Tag: title
+#: injection.xml:457
 #, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
+msgid "Obtaining a contextual instance by programmatic lookup"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:459
 #, no-c-format
 msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:466
 #, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:365
+#: injection.xml:471
 #, no-c-format
 msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:370
+#: injection.xml:476
 #, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
+msgid "we would like to iterate over all beans of a certain type."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:374
+#: injection.xml:482
 #, no-c-format
 msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:378
+#. Tag: programlisting
+#: injection.xml:487
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:489
 #, no-c-format
-msgid "arrays and primitive types."
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:385
+#. Tag: programlisting
+#: injection.xml:493
 #, no-c-format
-msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:392
+#. Tag: para
+#: injection.xml:495
 #, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
+msgid "Qualifiers can be specified in one of two ways:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:501
 #, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
+msgid "by annotating the <literal>Instance</literal> injection point, or"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:397
+#. Tag: para
+#: injection.xml:504
 #, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:508
 #, no-c-format
-msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:402
+#: injection.xml:512
 #, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:408
+#. Tag: para
+#: injection.xml:519
 #, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:410
+#. Tag: programlisting
+#: injection.xml:524
 #, no-c-format
 msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need "
-"to create a named subclass:"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:413
+#. Tag: para
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:415
+#: injection.xml:533
 #, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:419
+#. Tag: para
+#: injection.xml:535
 #, no-c-format
-msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
+msgid "In some cases, we can use an anonymous class:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:422
+#. Tag: programlisting
+#: injection.xml:539
 #, no-c-format
 msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:542
 #, no-c-format
 msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:429
+#: injection.xml:547
 #, no-c-format
 msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
 msgstr ""
 
-#. Tag: para
-#: injection.xml:434
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
 msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
 msgstr ""
 
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:442
+#: injection.xml:558
 #, no-c-format
 msgid ""
-"There are certain kinds of dependent objects &#151; Web Beans with scope "
-"<literal>@Dependent</literal> &#151; that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
 msgid ""
 "The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1070,7 +1076,7 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
 msgid ""
 "Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1078,7 +1084,7 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
 msgid ""
 "Injection of the result of an EL expression evaluation depends upon the "
@@ -1086,16 +1092,16 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:461
+#: injection.xml:577
 #, no-c-format
 msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
 "injection point to which it belongs."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
 msgid ""
 "Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1103,13 +1109,13 @@
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
 msgid ""
 "This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1117,7 +1123,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
@@ -1131,27 +1137,27 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:477
+#: injection.xml:593
 #, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:479
+#: injection.xml:595
 #, no-c-format
 msgid ""
 "Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
+"need to define a qualifier type:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1163,13 +1169,13 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:484
+#: injection.xml:600
 #, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1177,13 +1183,13 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
@@ -1198,24 +1204,24 @@
 msgstr ""
 
 #. Tag: para
-#: injection.xml:492
+#: injection.xml:608
 #, no-c-format
 msgid ""
 "(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
+"literal> annotation is ignored by the container since it is annotated "
 "<literal>@NonBinding.</literal>)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:495
+#: injection.xml:611
 #, no-c-format
 msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
+"The container provides a built-in bean that implements the "
 "<literal>InjectionPoint</literal> interface:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"

Modified: doc/trunk/reference/pot/interceptors.pot
===================================================================
--- doc/trunk/reference/pot/interceptors.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/interceptors.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,71 +15,66 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:6
+#: interceptors.xml:7
 #, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:11
+#: interceptors.xml:12
 #, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:14
+#: interceptors.xml:18
 #, no-c-format
-msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
+msgid "business method interception, and"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:22
+#: interceptors.xml:21
 #, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+msgid "lifecycle callback interception."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:25
 #, no-c-format
-msgid "business method interception, and"
+msgid "In addition, the EJB specification defines timeout method interception."
 msgstr ""
 
 #. Tag: para
 #: interceptors.xml:29
 #, no-c-format
-msgid "lifecycle callback interception."
-msgstr ""
-
-#. Tag: para
-#: interceptors.xml:33
-#, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
+"methods of the bean by clients of the bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:36
+#: interceptors.xml:34
 #, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
@@ -91,8 +86,8 @@
 #, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 
@@ -104,33 +99,52 @@
 "methods."
 msgstr ""
 
+#. Tag: para
+#: interceptors.xml:47
+#, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:51
+#: interceptors.xml:57
 #, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:55
+#: interceptors.xml:62
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
@@ -138,7 +152,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -146,113 +160,123 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:64
+#: interceptors.xml:74
 #, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:71
+#: interceptors.xml:81
 #, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:76
+#: interceptors.xml:87
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
+msgid "Interceptors can take advantage of dependency injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
+#: interceptors.xml:93
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:97
+#: interceptors.xml:114
 #, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
@@ -260,43 +284,52 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:109
+#: interceptors.xml:130
 #, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
+"transaction interceptor."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
@@ -304,39 +337,40 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:124
+#: interceptors.xml:148
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:126
+#: interceptors.xml:150
 #, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:130
+#: interceptors.xml:155
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
@@ -344,52 +378,53 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:134
+#: interceptors.xml:161
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:136
+#: interceptors.xml:163
 #, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:140
+#: interceptors.xml:169
 #, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:147
+#: interceptors.xml:176
 #, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -397,7 +432,7 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
@@ -405,7 +440,7 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -413,7 +448,7 @@
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
@@ -421,52 +456,52 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:162
+#: interceptors.xml:196
 #, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:164
+#: interceptors.xml:198
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:166
+#: interceptors.xml:200
 #, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:168
+#: interceptors.xml:202
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
@@ -475,99 +510,98 @@
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:181
+#: interceptors.xml:216
 #, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:186
+#: interceptors.xml:223
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:188
+#: interceptors.xml:225
 #, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:197
+#: interceptors.xml:236
 #, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:200
+#: interceptors.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:212
+#: interceptors.xml:255
 #, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order "
+"the interceptor ordering is non-global &#8212; it is determined by the order "
 "in which interceptors are listed at the class level."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:217
+#: interceptors.xml:262
 #, no-c-format
-msgid ""
-"Therefore, we recommend the use of Web Beans-style interceptor bindings."
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr ""

Modified: doc/trunk/reference/pot/intro.pot
===================================================================
--- doc/trunk/reference/pot/intro.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/intro.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,1061 +17,327 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
+msgid "Introduction"
 msgstr ""
 
 #. Tag: para
 #: intro.xml:6
 #, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
 msgstr ""
 
 #. Tag: title
 #: intro.xml:13
 #, no-c-format
-msgid "Your first Web Bean"
+msgid "What is a bean?"
 msgstr ""
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
-"years in various applications. The first class parses a string into a list "
-"of sentences:"
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
-msgid ""
-"<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:27
 #, no-c-format
 msgid ""
-"The second existing class is a stateless session bean front-end for an "
-"external system that is able to translate sentences from one language to "
-"another:"
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateless\n"
-"public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:37
+#: intro.xml:36
 #, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
 msgid ""
-"<![CDATA[@Local\n"
-"public interface Translator {\n"
-"    public String translate(String sentence);\n"
-"}]]>"
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:41
+#: intro.xml:45
 #, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator {\n"
-"    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
-"}]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:49
-#, no-c-format
-msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:51
-#, no-c-format
-msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr ""
-
-#. Tag: programlisting
 #: intro.xml:54
 #, no-c-format
-msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+msgid "Now let's see how to create your first bean that actually uses CDI."
 msgstr ""
 
-#. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr ""
-
-#. Tag: para
+#. Tag: title
 #: intro.xml:61
 #, no-c-format
-msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
+msgid "Getting our feet wet"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:68
+#: intro.xml:63
 #, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> available "
-"&#151; if the <literal>SentenceTranslator</literal> EJB was not deployed "
-"&#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
 msgstr ""
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:82
-#, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:91
-#, no-c-format
-msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid ""
-"which clients share a reference to a particular instance of the Web Bean."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by "
-"injection."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:191
+#: intro.xml:68
 #, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
 msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
+"<![CDATA[public class SentenceParser {\n"
+"   public List<String> parse(String text) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:196
+#: intro.xml:70
 #, no-c-format
 msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:204
+#: intro.xml:75
 #, no-c-format
 msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator {\n"
+"   public String translate(String sentence) { ... }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:206
+#: intro.xml:77
 #, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:233
+#: intro.xml:79
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
+"<![CDATA[@Local\n"
+"public interface Translator {\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:236
+#: intro.xml:81
 #, no-c-format
 msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:257
+#: intro.xml:85
 #, no-c-format
 msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid ""
-"It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
-"the unqualified class name, with the first character changed to lowercase."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr ""
-
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other objects "
-"&#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
+"<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
+"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:380
+#: intro.xml:87
 #, no-c-format
 msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:387
+#: intro.xml:93
 #, no-c-format
-msgid "method-level transaction management and security,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
 msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:397
+#: intro.xml:100
 #, no-c-format
-msgid "remote and web service invocation, and"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
 msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:407
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr ""
-
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr ""
-
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr ""
-
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:435
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
 "\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
+"   private String inputText;\n"
+"   private String translation;\n"
 "\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:437
+#: intro.xml:119
 #, no-c-format
-msgid ""
-"The result of a producer method is injected just like any other Web Bean."
+msgid "Field injection of <literal>TextTranslator</literal> instance"
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:441
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:445
+#: intro.xml:135
 #, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr ""
-
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
 msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr ""
-
 #. Tag: programlisting
-#: intro.xml:451
+#: intro.xml:140
 #, no-c-format
 msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:453
+#: intro.xml:142
 #, no-c-format
 msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:456
+#: intro.xml:148
 #, no-c-format
 msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
 msgstr ""
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr ""
-
 #. Tag: para
-#: intro.xml:463
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""

Modified: doc/trunk/reference/pot/master.pot
===================================================================
--- doc/trunk/reference/pot/master.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/master.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,58 +15,74 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
 msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
+msgid "Beans"
 msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
+msgid "Weld, the CDI Reference Implementation"
 msgstr ""
 
 #. Tag: title
-#: master.xml:53
+#: master.xml:59
 #, no-c-format
-msgid "Making the most of strong typing"
+msgid "Loose coupling with strong typing"
 msgstr ""
 
 #. Tag: title
-#: master.xml:64
+#: master.xml:75
 #, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+msgid "CDI and the Java EE ecosystem"
 msgstr ""
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""

Modified: doc/trunk/reference/pot/messages.mo
===================================================================
(Binary files differ)

Modified: doc/trunk/reference/pot/next.pot
===================================================================
--- doc/trunk/reference/pot/next.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/next.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,27 +24,102 @@
 #: next.xml:6
 #, no-c-format
 msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
 msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
 #, no-c-format
 msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
 msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:22
 #, no-c-format
 msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
 msgstr ""
+
+#. Tag: para
+#: next.xml:28
+#, no-c-format
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
+
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""

Modified: doc/trunk/reference/pot/part1.pot
===================================================================
--- doc/trunk/reference/pot/part1.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/part1.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,216 +15,295 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: para
-#: part1.xml:5
+#: part1.xml:14
 #, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:14
+#: part1.xml:23
 #, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
 #, no-c-format
 msgid ""
-"interaction via an <emphasis>event notification</emphasis> facility, and"
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:38
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:45
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:51
 #, no-c-format
-msgid "what is the lifecycle of this object?"
+msgid ""
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:61
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:68
 #, no-c-format
-msgid "is it multithreaded?"
+msgid "managed beans, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:71
 #, no-c-format
-msgid "where can I get one from?"
+msgid "EJB session beans."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:75
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:83
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
+msgid "message-driven beans,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:86
 #, no-c-format
+msgid "interceptors,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:89
+#, no-c-format
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:92
+#, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "What is the lifecycle of this object?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:108
 #, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:111
+#, no-c-format
+msgid "Is it multithreaded?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:114
+#, no-c-format
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:120
+#, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
+"Where should I keep the reference to it when I'm not currently using it?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:72
+#: part1.xml:125
 #, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:131
 #, no-c-format
+msgid "How should I go about sharing this object between other objects?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:137
+#, no-c-format
 msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers,"
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:142
 #, no-c-format
 msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic, and"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:149
 #, no-c-format
 msgid ""
-"<emphasis>decorators</emphasis> allow business concerns to be "
-"compartmentalized."
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:90
+#: part1.xml:155
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers,"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:159
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic, and"
 msgstr ""
 
 #. Tag: para
-#: part1.xml:105
+#: part1.xml:163
 #, no-c-format
-msgid "all JavaBeans,"
+msgid ""
+"<emphasis>decorators</emphasis> allow business concerns to be "
+"compartmentalized."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:108
+#: part1.xml:168
 #, no-c-format
-msgid "all EJBs, and"
+msgid ""
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:111
+#: part1.xml:177
 #, no-c-format
-msgid "all Servlets."
+msgid ""
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:115
+#: part1.xml:183
 #, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:120
+#: part1.xml:189
 #, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
 msgstr ""
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
 msgstr ""

Modified: doc/trunk/reference/pot/part2.pot
===================================================================
--- doc/trunk/reference/pot/part2.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/part2.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -18,86 +18,28 @@
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
 msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
 msgid ""
-"<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
 msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr ""
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
 msgstr ""
-
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr ""
-
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr ""
-
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr ""

Modified: doc/trunk/reference/pot/part3.pot
===================================================================
--- doc/trunk/reference/pot/part3.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/part3.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -18,24 +18,106 @@
 #: part3.xml:5
 #, no-c-format
 msgid ""
-"The second major theme of Web Beans is <emphasis>strong typing</emphasis>. "
-"The information about the dependencies, interceptors and decorators of a Web "
-"Bean, and the information about event consumers for an event producer, is "
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:12
+#, no-c-format
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:17
+#, no-c-format
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:21
+#, no-c-format
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:27
+#, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
 "contained in typesafe Java constructs that may be validated by the compiler."
 msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:68
 #, no-c-format
 msgid ""
-"You don't see string-based identifiers in Web Beans code, not because the "
-"framework is hiding them from you using clever defaulting rules &#151; so-"
-"called \"configuration by convention\" &#151; but because there are simply "
-"no strings there to begin with!"
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:74
 #, no-c-format
 msgid ""
 "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
@@ -47,69 +129,68 @@
 msgstr ""
 
 #. Tag: para
-#: part3.xml:21
+#: part3.xml:81
 #, no-c-format
 msgid ""
-"Web Beans encourages you develop annotations that model concepts, for "
-"example,"
+"CDI encourages you develop annotations that model concepts, for example,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:87
 #, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr ""
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr ""
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
 msgid ""
 "The annotations are reusable. They help describe common qualities of "
@@ -119,33 +200,24 @@
 msgstr ""
 
 #. Tag: para
-#: part3.xml:61
+#: part3.xml:123
 #, no-c-format
 msgid ""
-"Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
 "stereotype models a common <emphasis>role</emphasis> in your application "
 "architecture. It encapsulates various properties of the role, including "
-"scope, interceptor bindings, deployment type, etc, into a single reusable "
-"package."
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
 msgstr ""
 
 #. Tag: para
-#: part3.xml:66
+#: part3.xml:138
 #, no-c-format
 msgid ""
-"Even Web Beans XML metadata is strongly typed! There's no compiler for XML, "
-"so Web Beans takes advantage of XML schemas to validate the Java types and "
-"attributes that appear in XML. This approach turns out to make the XML more "
-"literate, just like annotations made our Java code more literate."
-msgstr ""
-
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid ""
-"We're now ready to meet some more advanced features of Web Beans. Bear in "
-"mind that these features exist to make our code both easier to validate and "
-"more understandable. Most of the time you don't ever really <emphasis>need</"
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
 "emphasis> to use these features, but if you use them wisely, you'll come to "
 "appreciate their power."
 msgstr ""

Modified: doc/trunk/reference/pot/part4.pot
===================================================================
--- doc/trunk/reference/pot/part4.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/part4.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -18,36 +18,40 @@
 #: part4.xml:5
 #, no-c-format
 msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
 msgstr ""
 
 #. Tag: para
 #: part4.xml:12
 #, no-c-format
 msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
 msgstr ""
 
 #. Tag: para
-#: part4.xml:21
+#: part4.xml:23
 #, no-c-format
 msgid ""
 "We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
 msgstr ""

Modified: doc/trunk/reference/pot/part5.pot
===================================================================
--- doc/trunk/reference/pot/part5.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/part5.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -18,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/pot/producermethods.pot
===================================================================
--- doc/trunk/reference/pot/producermethods.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/producermethods.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,156 +24,147 @@
 #: producermethods.xml:7
 #, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, no-c-format
 msgid "For example, producer methods let us:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:70
+#: producermethods.xml:76
 #, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -181,17 +172,17 @@
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:78
+#: producermethods.xml:87
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -200,13 +191,13 @@
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -217,96 +208,96 @@
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:94
+#: producermethods.xml:106
 #, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:97
+#: producermethods.xml:111
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:113
 #, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:107
+#: producermethods.xml:122
 #, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:129
 #, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:123
+#: producermethods.xml:138
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -316,3 +307,57 @@
 "<literal>Preferences</literal> object is destroyed, at the end of the "
 "session."
 msgstr ""
+
+#. Tag: title
+#: producermethods.xml:150
+#, no-c-format
+msgid "Disposer methods"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""

Added: doc/trunk/reference/pot/resources.pot
===================================================================
--- doc/trunk/reference/pot/resources.pot	                        (rev 0)
+++ doc/trunk/reference/pot/resources.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,221 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/pot/ri-spi.pot
===================================================================
--- doc/trunk/reference/pot/ri-spi.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/ri-spi.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,39 +17,64 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr ""
 
 #. Tag: para
 #: ri-spi.xml:6
 #, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:12
 #, no-c-format
-msgid "The Web Beans SPI"
+msgid "Enterprise Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:13
 #, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:21
 #, no-c-format
 msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:27
+#, no-c-format
+msgid "The Weld SPI"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:29
+#, no-c-format
+msgid ""
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:35
+#, no-c-format
+msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
 "<literal>Forwarding</literal> class located in the <literal>helpers</"
 "literal> sub package. Additional, commonly used, utility classes, and "
@@ -57,289 +82,350 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
+msgid "Deployment structure"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
+#. Tag: para
+#: ri-spi.xml:58
 #, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:37
+#: ri-spi.xml:67
 #, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
+#: ri-spi.xml:100
 #, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:62
+#. Tag: para
+#: ri-spi.xml:106
 #, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:124
 #, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:132
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:98
+#: ri-spi.xml:153
 #, no-c-format
-msgid "JPA services"
+msgid "EJB descriptors"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:155
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:160
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:171
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: para
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:182
+#, no-c-format
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:189
+#, no-c-format
+msgid ""
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:195
+#, no-c-format
+msgid ""
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:201
+#, no-c-format
+msgid ""
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:210
 #, no-c-format
-msgid "Transaction Services"
+msgid "EJB services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:212
 #, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:225
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:234
+#, no-c-format
+msgid "JPA services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:253
+#, no-c-format
+msgid ""
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:258
+#, no-c-format
+msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
 "be passed to the <literal>registerSynchronization()</literal> method and the "
 "SPI implementation should immediately register the synchronization with the "
@@ -347,7 +433,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -357,383 +443,448 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
+#: ri-spi.xml:272
 #, no-c-format
-msgid "JMS services"
+msgid "Resource Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:274
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:283
 #, no-c-format
-msgid "Resource Services"
+msgid "Injection Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:285
 #, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:291
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:298
 #, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:307
 #, no-c-format
-msgid "The bean store"
+msgid "Security Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:309
 #, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:317
 #, no-c-format
-msgid "The application context"
+msgid "Bean Validation Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:319
 #, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Bootstrap and shutdown"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:329
 #, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:337
 #, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:343
 #, no-c-format
 msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:260
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
+msgid "The bean store"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:364
 #, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:282
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid "The application context"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:374
 #, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:383
 #, no-c-format
-msgid "JNDI"
+msgid "Initialization and shutdown"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:384
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:391
 #, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:398
 #, no-c-format
-msgid "Resource loading"
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
+#: ri-spi.xml:405
 #, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
-"times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:410
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:331
+#. Tag: para
+#: ri-spi.xml:414
 #, no-c-format
-msgid "Servlet injection"
+msgid ""
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:423
 #, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:431
+#, no-c-format
+msgid "Resource loading"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:433
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:445
 #, no-c-format
 msgid "The contract with the container"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:358
+#: ri-spi.xml:447
 #, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:370
+#: ri-spi.xml:458
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:470
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:432
+#: ri-spi.xml:571
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -741,34 +892,174 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:454
+#: ri-spi.xml:590
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""

Modified: doc/trunk/reference/pot/scopescontexts.pot
===================================================================
--- doc/trunk/reference/pot/scopescontexts.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/scopescontexts.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,97 +15,106 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:6
+#: scopescontexts.xml:7
 #, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:14
+#: scopescontexts.xml:16
 #, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+msgid "When a new instance of any bean with that scope is created"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:17
+#: scopescontexts.xml:19
 #, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:20
+#: scopescontexts.xml:22
 #, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:25
+#: scopescontexts.xml:27
 #, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
 "and automatically destroyed when the session ends."
 msgstr ""
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:34
+#: scopescontexts.xml:43
 #, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
+#: scopescontexts.xml:48
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:39
+#: scopescontexts.xml:50
 #, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:44
+#: scopescontexts.xml:57
 #, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -113,55 +122,55 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:58
+#: scopescontexts.xml:63
 #, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:65
+#: scopescontexts.xml:70
 #, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+msgid "CDI defines four built-in scopes:"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr ""
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:82
+#: scopescontexts.xml:87
 #, no-c-format
-msgid "For a web application that uses Web Beans:"
+msgid "For a web application that uses CDI:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -169,52 +178,60 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:121
 #, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -223,78 +240,78 @@
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:124
+#: scopescontexts.xml:136
 #, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:138
+#: scopescontexts.xml:154
 #, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:143
+#: scopescontexts.xml:160
 #, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:151
+#: scopescontexts.xml:169
 #, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
+#: scopescontexts.xml:174
 #, no-c-format
-msgid "@Current Conversation conversation;"
+msgid "@Inject Conversation conversation;"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -305,93 +322,91 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:161
+#: scopescontexts.xml:182
 #, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
+#: scopescontexts.xml:186
 #, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:166
+#: scopescontexts.xml:188
 #, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:175
+#: scopescontexts.xml:198
 #, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:179
+#: scopescontexts.xml:203
 #, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -399,145 +414,148 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
 
+#. Tag: para
+#: scopescontexts.xml:223
+#, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:202
+#: scopescontexts.xml:235
 #, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:208
+#: scopescontexts.xml:242
 #, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr ""
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:220
+#: scopescontexts.xml:256
 #, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:224
+#: scopescontexts.xml:261
 #, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:234
+#: scopescontexts.xml:273
 #, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
 
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
-
 #. Tag: title
-#: scopescontexts.xml:247
+#: scopescontexts.xml:281
 #, no-c-format
-msgid "The <literal>@New</literal> annotation"
+msgid "The <literal>@New</literal> qualifier"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
+#: scopescontexts.xml:287
 #, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:260
+#: scopescontexts.xml:291
 #, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -545,7 +563,7 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -553,19 +571,17 @@
 msgstr ""
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
+#: scopescontexts.xml:302
 #, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -575,7 +591,7 @@
 msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "

Modified: doc/trunk/reference/pot/specialization.pot
===================================================================
--- doc/trunk/reference/pot/specialization.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/specialization.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,278 +15,344 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
+msgid "Specialization, inheritance and alternatives"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless\n"
-"public class CreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:23
 #, no-c-format
 msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:16
+#. Tag: para
+#: specialization.xml:29
 #, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:37
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
 msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:24
-#, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr ""
-
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:43
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:28
+#. Tag: title
+#: specialization.xml:51
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
+msgid "Using alternative stereotypes"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:32
+#: specialization.xml:53
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:36
+#. Tag: programlisting
+#: specialization.xml:59
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:61
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:66
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:68
 #, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: specialization.xml:70
+#, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
 
-#. Tag: title
-#: specialization.xml:58
+#. Tag: para
+#: specialization.xml:77
 #, no-c-format
-msgid "Using specialization"
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:60
+#. Tag: programlisting
+#: specialization.xml:84
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:86
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:68
+#. Tag: programlisting
+#: specialization.xml:90
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
+#: specialization.xml:92
 #, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
 msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:77
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
 msgstr ""
 
 #. Tag: title
-#: specialization.xml:85
+#: specialization.xml:105
 #, no-c-format
-msgid "Advantages of specialization"
+msgid "A minor problem with alternatives"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:107
 #, no-c-format
-msgid "When specialization is used:"
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:91
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:99
+#: specialization.xml:123
 #, no-c-format
 msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
 msgstr ""
 
+#. Tag: title
+#: specialization.xml:132
+#, no-c-format
+msgid "Using specialization"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:105
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:109
+#: specialization.xml:141
 #, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
+msgid "directly extend the bean class of the second bean, or"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:113
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:119
+#: specialization.xml:152
 #, no-c-format
 msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
 msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:124
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"there is no other enabled Web Bean that also specializes the superclass."
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:129
+#: specialization.xml:161
 #, no-c-format
 msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:132
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
+
+#. Tag: para
+#: specialization.xml:172
+#, no-c-format
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""

Modified: doc/trunk/reference/pot/stereotypes.pot
===================================================================
--- doc/trunk/reference/pot/stereotypes.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/stereotypes.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,324 +15,335 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
+msgid "The CDI specification defines a stereotype as follows:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
+#: stereotypes.xml:11
 #, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr ""
-
-#. Tag: para
 #: stereotypes.xml:21
 #, no-c-format
-msgid "a default scope type,"
+msgid "a default scope, and"
 msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:24
 #, no-c-format
-msgid "a restriction upon the Web Bean scope,"
+msgid "a set of interceptor bindings."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
+msgid "A stereotype may also specify that:"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
+#: stereotypes.xml:34
 #, no-c-format
-msgid "a set of interceptor binding annotations."
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:34
+#: stereotypes.xml:37
 #, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
+msgid "all beans with the stereotype are alternatives."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:37
+#: stereotypes.xml:41
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:41
+#: stereotypes.xml:48
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:44
+#: stereotypes.xml:53
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:46
+#: stereotypes.xml:55
 #, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
+#: stereotypes.xml:66
 #, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+msgid "Default scope for a stereotype"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:53
+#: stereotypes.xml:68
 #, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:59
+#: stereotypes.xml:72
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:61
+#: stereotypes.xml:74
 #, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
+msgid "A particular action may still override this default if necessary:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:64
+#: stereotypes.xml:78
 #, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
 msgid ""
-"If we want to force all actions to a particular scope, we can do that too."
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
+msgid "Interceptor bindings for stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:74
+#: stereotypes.xml:90
 #, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:78
+#: stereotypes.xml:94
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
 #, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
 msgstr ""
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr ""
+
 #. Tag: para
-#: stereotypes.xml:84
+#: stereotypes.xml:105
 #, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:87
+#: stereotypes.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:89
+#: stereotypes.xml:112
 #, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:96
+#: stereotypes.xml:119
 #, no-c-format
-msgid "Interceptor bindings for stereotypes"
+msgid "Alternative stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
+#: stereotypes.xml:126
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
 #, no-c-format
-msgid "Name defaulting with stereotypes"
+msgid "Stereotype stacking"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:143
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
 msgstr ""
 
-#. Tag: programlisting
-#: stereotypes.xml:116
+#. Tag: para
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
 msgstr ""
 
-#. Tag: para
-#: stereotypes.xml:118
+#. Tag: programlisting
+#: stereotypes.xml:155
 #, no-c-format
 msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
+"@Target(TYPE)\n"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:124
+#: stereotypes.xml:160
 #, no-c-format
-msgid "Standard stereotypes"
+msgid "Built-in stereotypes"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:126
+#: stereotypes.xml:162
 #, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
 msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
+#: stereotypes.xml:172
 #, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
@@ -340,14 +351,13 @@
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:133
+#: stereotypes.xml:174
 #, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
 msgstr ""

Modified: doc/trunk/reference/pot/viewlayers.pot
===================================================================
--- doc/trunk/reference/pot/viewlayers.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/viewlayers.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -71,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -94,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -102,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -110,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -118,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/pot/weldexamples.pot
===================================================================
--- doc/trunk/reference/pot/weldexamples.pot	                        (rev 0)
+++ doc/trunk/reference/pot/weldexamples.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1552 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/pot/xml.pot
===================================================================
--- doc/trunk/reference/pot/xml.pot	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pot/xml.pot	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:50+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,65 +15,55 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
+#: xml.xml:5
 #, no-c-format
-msgid "Defining Web Beans using XML"
+msgid "Defining beans using XML"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:6
+#: xml.xml:7
 #, no-c-format
 msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:15
+#: xml.xml:19
 #, no-c-format
-msgid ""
-"when there should be multiple Web Beans with the same implementation class."
+msgid "when there should be multiple beans with the same implementation class."
 msgstr ""
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
 msgstr ""
 
 #. Tag: para
-#: xml.xml:23
+#: xml.xml:31
 #, no-c-format
-msgid "write a producer method, or"
-msgstr ""
-
-#. Tag: para
-#: xml.xml:24
-#, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr ""
-
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
 msgid ""
 "Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
 "class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
+"Weld lets you use the class or member name as the name of the XML element."
 msgstr ""
 
 #. Tag: para
-#: xml.xml:33
+#: xml.xml:38
 #, no-c-format
 msgid ""
 "The advantage of this approach is that you can write an XML schema that "
@@ -84,23 +74,23 @@
 msgstr ""
 
 #. Tag: title
-#: xml.xml:40
+#: xml.xml:46
 #, no-c-format
-msgid "Declaring Web Bean classes"
+msgid "Declaring beans"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:42
+#: xml.xml:48
 #, no-c-format
 msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
+"For each Java package, Weld defines a corresponding XML namespace. The "
 "namespace is formed by prepending <literal>urn:java:</literal> to the Java "
 "package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
 "namespace is <literal>urn:java:com.mydomain.myapp</literal>."
 msgstr ""
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
 msgid ""
 "Java types belonging to a package are referred to using an XML element in "
@@ -111,7 +101,7 @@
 msgstr ""
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
 msgid ""
 "For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
@@ -119,235 +109,231 @@
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:56
+#: xml.xml:66
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:58
+#: xml.xml:68
 #, no-c-format
 msgid ""
 "And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:62
+#: xml.xml:73
 #, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr ""
 
 #. Tag: title
-#: xml.xml:67
+#: xml.xml:78
 #, no-c-format
-msgid "Declaring Web Bean metadata"
+msgid "Declaring bean metadata"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:69
+#: xml.xml:80
 #, no-c-format
 msgid ""
 "We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
+"using direct child elements of the bean declaration:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:72
+#: xml.xml:85
 #, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:74
+#: xml.xml:87
 #, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
+msgid "We use exactly the same approach to specify names and qualifiers:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:76
+#: xml.xml:89
 #, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:78
+#: xml.xml:91
 #, no-c-format
 msgid ""
 "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
+"qualifier annotations types."
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:81
+#: xml.xml:95
 #, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:83
+#: xml.xml:97
 #, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:85
+#: xml.xml:99
 #, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:87
+#: xml.xml:101
 #, no-c-format
 msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:90
+#: xml.xml:105
 #, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 
 #. Tag: title
-#: xml.xml:95
+#: xml.xml:110
 #, no-c-format
-msgid "Declaring Web Bean members"
+msgid "Declaring bean members"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr ""
 
 #. Tag: title
-#: xml.xml:104
+#: xml.xml:119
 #, no-c-format
-msgid "Declaring inline Web Beans"
+msgid "Declaring inline beans"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:106
+#: xml.xml:121
 #, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
+msgid "Weld lets us define a bean at an injection point. For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:108
+#: xml.xml:123
 #, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:110
+#: xml.xml:125
 #, no-c-format
 msgid ""
-"The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
 msgstr ""
 
 #. Tag: para
-#: xml.xml:116
+#: xml.xml:131
 #, no-c-format
 msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
 "solution, but it's close!"
 msgstr ""
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:125
+#: xml.xml:141
 #, no-c-format
 msgid ""
 "If we want our XML document format to be authored by people who aren't Java "
 "developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
+"schema. There's nothing specific to Weld about writing or using the schema."
 msgstr ""
 
 #. Tag: programlisting
-#: xml.xml:130
+#: xml.xml:147
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 
 #. Tag: para
-#: xml.xml:132
+#: xml.xml:149
 #, no-c-format
 msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
 msgstr ""

Modified: doc/trunk/reference/pt-BR/Author_Group.po
===================================================================
--- doc/trunk/reference/pt-BR/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-08-25 15:00-0300\n"
 "Last-Translator: \n"
 "Language-Team: none\n"
@@ -14,113 +14,123 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
-msgstr "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
+msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
-msgstr "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
+msgstr ""
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
+#, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>David</firstname> <surname>Allen</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
 #, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>David</firstname> <surname>Allen</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28
-#: Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "Italian Translation"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "Spanish Translation"
 
-#. Tag: orgname
-#: Author_Group.xml:35
-#: Author_Group.xml:43
-#: Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "Red Hat Middleware LLC"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "Korean Translation"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "Traditional Chinese Translation"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Sean</firstname> <surname>Wu</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "Simplified Chinese Translation"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr "Kava Community"
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
 
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "Red Hat Middleware LLC"
+
+#~ msgid "Kava Community"
+#~ msgstr "Kava Community"

Modified: doc/trunk/reference/pt-BR/Book_Info.po
===================================================================
--- doc/trunk/reference/pt-BR/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-06 08:34-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,12 +16,18 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Contextos Java e Injeção de Dependência"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
-msgstr "O novo padrão para injeção de dependência e gerenciamento de estado contextual"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
+msgstr ""
+"O novo padrão para injeção de dependência e gerenciamento de estado "
+"contextual"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Contextos Java e Injeção de Dependência"

Added: doc/trunk/reference/pt-BR/beans.po
===================================================================
--- doc/trunk/reference/pt-BR/beans.po	                        (rev 0)
+++ doc/trunk/reference/pt-BR/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language pt-BR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/pt-BR/decorators.po
===================================================================
--- doc/trunk/reference/pt-BR/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 09:16-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,38 +14,68 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "Decoradores"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
-msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
-msgstr "Interceptadores são um meio poderoso para capturar e separar preocupações <emphasis>ortogonais</emphasis> para o tipo de sistema. Qualquer interceptador é capaz de interceptar invocações de qualquer tipo Java. Isso os torna ideais para resolver questões técnicas, tais como gerenciamento de transação e segurança. No entanto, por natureza, interceptadores desconhecem a real semântica dos eventos que interceptam. Assim, interceptadores não são um instrumento adequado para a separação de questões relacionadas a negócios."
+#: decorators.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors are a powerful way to capture and separate concerns which are "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"Interceptadores são um meio poderoso para capturar e separar preocupações "
+"<emphasis>ortogonais</emphasis> para o tipo de sistema. Qualquer "
+"interceptador é capaz de interceptar invocações de qualquer tipo Java. Isso "
+"os torna ideais para resolver questões técnicas, tais como gerenciamento de "
+"transação e segurança. No entanto, por natureza, interceptadores desconhecem "
+"a real semântica dos eventos que interceptam. Assim, interceptadores não são "
+"um instrumento adequado para a separação de questões relacionadas a negócios."
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
-msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
-msgstr "O contrário é verdadeiro <emphasis>decoradores</emphasis>. O decorador intercepta invocações apenas para uma determinada interface Java e, portanto, é ciente de toda a semântica que acompanha a interface. Isso torna os decoradores uma ferramenta perfeita para modelar alguns tipos de questões de negócios. Significa também que um decorador não tem a generalidade de um interceptador. Decoradores não são capazes de resolver questões técnicas que atravessam muitos tipos diferentes."
+#: decorators.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
+"intercepts invocations only for a certain Java interface, and is therefore "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
+"that a decorator doesn't have the generality of an interceptor. Decorators "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"O contrário é verdadeiro <emphasis>decoradores</emphasis>. O decorador "
+"intercepta invocações apenas para uma determinada interface Java e, "
+"portanto, é ciente de toda a semântica que acompanha a interface. Isso torna "
+"os decoradores uma ferramenta perfeita para modelar alguns tipos de questões "
+"de negócios. Significa também que um decorador não tem a generalidade de um "
+"interceptador. Decoradores não são capazes de resolver questões técnicas que "
+"atravessam muitos tipos diferentes."
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "Suponha que temos uma interface que represente contas:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -56,43 +86,69 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
-msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
-msgstr "Vários Web Beans em nosso sistema implementam a interface <literal>Account</literal>. No entanto, temos uma obrigação legal que, para qualquer tipo de conta, as grandes transações devem ser registadas pelo sistema, em um registro especial (log). Esse é um trabalho perfeito para um decorador. "
+#: decorators.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
+"any kind of account, large transactions must be recorded by the system in a "
+"special log. This is a perfect job for a decorator."
+msgstr ""
+"Vários Web Beans em nosso sistema implementam a interface <literal>Account</"
+"literal>. No entanto, temos uma obrigação legal que, para qualquer tipo de "
+"conta, as grandes transações devem ser registadas pelo sistema, em um "
+"registro especial (log). Esse é um trabalho perfeito para um decorador. "
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
-msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
-msgstr "Um decorador é um Web Bean simples que implementa o tipo que decora e é anotado com <literal>@Decorator</literal>."
+#: decorators.xml:34
+#, fuzzy, no-c-format
+msgid ""
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"Um decorador é um Web Bean simples que implementa o tipo que decora e é "
+"anotado com <literal>@Decorator</literal>."
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -120,116 +176,244 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
-msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
-msgstr "Ao contrário de outros Web Beans simples, um decorador pode ser uma classe abstrata. Se não há nada de especial que o decorador precisa fazer para um determinado método da interface decorada, você não precisa implementar esse método."
+#: decorators.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
+"there's nothing special the decorator needs to do for a particular method of "
+"the decorated interface, you don't need to implement that method."
+msgstr ""
+"Ao contrário de outros Web Beans simples, um decorador pode ser uma classe "
+"abstrata. Se não há nada de especial que o decorador precisa fazer para um "
+"determinado método da interface decorada, você não precisa implementar esse "
+"método."
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr ""
+"Interceptadores para o método são chamados antes dos decoradores que se "
+"aplicam a esse método."
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "Atributos delegados"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
-msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
-msgstr "Todos os decoradores têm um <emphasis>atributo delegado</emphasis>. O tipo e os tipos de binding do atributo delegado determinam a qual  Web Beans o decorador está vinculado. O tipo do atributo delegado deve implementar ou estender todas as interfaces implementadas pelo decorador."
+msgid ""
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
-msgstr "Este atributo delegado especifica que o decorador está vinculado a todos os Web Beans que implementam <literal>Account</literal>:"
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
-msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
-msgstr "Um atributo delegado pode especificar uma anotação de binding. Então, o decorador só será vinculado ao Web Beans com o mesmo vínculo."
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
+msgstr "Um decorador é vinculado a qualquer Web Bean que:"
 
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+#. Tag: para
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
+msgstr "tenha como  tipo do atributo delegado uma API, e"
 
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
-msgstr "Um decorador é vinculado a qualquer Web Bean que:"
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
+msgstr ""
+"tenha todos os tipos de vínculo que são declarados pelo atributo delegado."
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
-msgstr "tenha como  tipo do atributo delegado uma API, e"
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"Este atributo delegado especifica que o decorador está vinculado a todos os "
+"Web Beans que implementam <literal>Account</literal>:"
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
-msgstr "tenha todos os tipos de vínculo que são declarados pelo atributo delegado."
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"Um atributo delegado pode especificar uma anotação de binding. Então, o "
+"decorador só será vinculado ao Web Beans com o mesmo vínculo."
 
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
-msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
-msgstr "O decorador  pode invocar o atributo delegado,o que  praticamente equivale a chamar <literal>InvocationContext.proceed()</literal> a partir de um interceptador"
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"O decorador  pode invocar o atributo delegado,o que  praticamente equivale a "
+"chamar <literal>InvocationContext.proceed()</literal> a partir de um "
+"interceptador"
 
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "Habilitando decoradores"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
-msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
-msgstr "Nós precisamos <emphasis>habilitar</emphasis> nosso decorador no <literal>web-beans.xml</literal>."
+msgid ""
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
-msgid "This declaration serves the same purpose for decorators that the <literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "Essa declaração tem o mesmo propósito para decoradores que a <literal>&lt;Interceptors&gt;</literal> tem para os interceptadores:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"Essa declaração tem o mesmo propósito para decoradores que a <literal>&lt;"
+"Interceptors&gt;</literal> tem para os interceptadores:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
-msgstr "isso possibilita-nos determinar a ordem total para todos os decoradores em nosso sistema, assegurando um comportamento determinístico"
+msgid ""
+"it enables us to specify a total ordering for all decorators in our system, "
+"ensuring deterministic behavior, and"
+msgstr ""
+"isso possibilita-nos determinar a ordem total para todos os decoradores em "
+"nosso sistema, assegurando um comportamento determinístico"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr "isso permite habilitarmos ou desabilitarmos as classes decoradas em tempo de implantação."
+msgstr ""
+"isso permite habilitarmos ou desabilitarmos as classes decoradas em tempo de "
+"implantação."
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid "Interceptors for a method are called before decorators that apply to that method."
-msgstr "Interceptadores para o método são chamados antes dos decoradores que se aplicam a esse método."
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "Todos os decoradores têm um <emphasis>atributo delegado</emphasis>. O "
+#~ "tipo e os tipos de binding do atributo delegado determinam a qual  Web "
+#~ "Beans o decorador está vinculado. O tipo do atributo delegado deve "
+#~ "implementar ou estender todas as interfaces implementadas pelo decorador."
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "Nós precisamos <emphasis>habilitar</emphasis> nosso decorador no "
+#~ "<literal>web-beans.xml</literal>."

Added: doc/trunk/reference/pt-BR/dependencies.po
===================================================================
--- doc/trunk/reference/pt-BR/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/pt-BR/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language pt-BR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/pt-BR/ee.po
===================================================================
--- doc/trunk/reference/pt-BR/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 21:24-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -21,33 +21,95 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
-msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
-msgstr "A Web Beans está plenamente integrada ao ambiente Java EE. A Web Beans tem acesso aos recursos Java EE e aos contextos de persistência JPA. Eles podem ser utilizados em expressões EL Unificadas (Unified EL) e em páginas JSF e JSP. Podem até ser injetados em objetos que não são Web Benas, tais como Servlets e Message-Driven Beans."
+#, fuzzy, no-c-format
+msgid ""
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"A Web Beans está plenamente integrada ao ambiente Java EE. A Web Beans tem "
+"acesso aos recursos Java EE e aos contextos de persistência JPA. Eles podem "
+"ser utilizados em expressões EL Unificadas (Unified EL) e em páginas JSF e "
+"JSP. Podem até ser injetados em objetos que não são Web Benas, tais como "
+"Servlets e Message-Driven Beans."
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "Injetando recursos Java EE em um Web Bean"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
-msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
-msgstr "Todos Web Beans, simples e corporativos (enterprise Web Beans), podem usufruir da injeção de dependência do Java EE utilizando <literal>@Resource</literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal>. Nós já vimos vários exemplos disso, embora  não demos muita ênfase até o momento:"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:19
+#. Tag: para
+#: ee.xml:22
 #, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
 msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "Injetando recursos Java EE em um Web Bean"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
+"examples of this, though we didn't pay much attention at the time:"
+msgstr ""
+"Todos Web Beans, simples e corporativos (enterprise Web Beans), podem "
+"usufruir da injeção de dependência do Java EE utilizando <literal>@Resource</"
+"literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal>. "
+"Nós já vimos vários exemplos disso, embora  não demos muita ênfase até o "
+"momento:"
+
+#. Tag: programlisting
+#: ee.xml:56
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -55,22 +117,20 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -84,53 +144,69 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
-msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
-msgstr "As chamadas Java EE <literal>@PostConstruct</literal> e <literal>@PreDestroy</literal> também são suportadas para todos os Web Beans simples e corporativos. O método anotado com <literal>@PostConstruct</literal> é invocado após <emphasis>todas</emphasis> injeções serem realizadas."
+#: ee.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"As chamadas Java EE <literal>@PostConstruct</literal> e "
+"<literal>@PreDestroy</literal> também são suportadas para todos os Web Beans "
+"simples e corporativos. O método anotado com <literal>@PostConstruct</"
+"literal> é invocado após <emphasis>todas</emphasis> injeções serem "
+"realizadas."
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
-msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "Existe uma restrição de que devemos estar conscientes: <literal>@PersistenceContext(type=EXTENDED)</literal> não é suportada por Web Beans simples."
+msgid ""
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "Invocando um Web Bean a partir de um Servlet"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
-msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
-msgstr "É fácil utilizar um Web Bean a partir de um Servlet em Java EE : basta injetar o Web Bean usando a injeção de atributos ou de método de inicialização de Web Beans."
+#: ee.xml:76
+#, fuzzy, no-c-format
+msgid ""
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"É fácil utilizar um Web Bean a partir de um Servlet em Java EE : basta "
+"injetar o Web Bean usando a injeção de atributos ou de método de "
+"inicialização de Web Beans."
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -138,7 +214,8 @@
 "    @Current Login login;\n"
 "\n"
 "    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
 "        throws ServletException, IOException {\n"
 "        credentials.setUsername( request.getAttribute(\"username\") ):\n"
 "        credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -154,44 +231,55 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
-msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
-msgstr "O proxy cliente do Web Bean (Web Beans client proxy) cuida do encaminhamento das invocações dos métodos do Servlet para as instâncias corretas de <literal>Credentials</literal> e <literal>Login</literal> para a requisição e sessão HTTP atuais."
+#: ee.xml:83
+#, fuzzy, no-c-format
+msgid ""
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"O proxy cliente do Web Bean (Web Beans client proxy) cuida do encaminhamento "
+"das invocações dos métodos do Servlet para as instâncias corretas de "
+"<literal>Credentials</literal> e <literal>Login</literal> para a requisição "
+"e sessão HTTP atuais."
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "Invocando um Web Bean de um Message-Driven Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
-msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
-msgstr "Injeção de Web Beans aplica-se a todos EJBs, mesmo quando esses não estão sob o controle do gerenciador do Web Bean (se tiverem sido obtidos por busca direta no JNDI, ou por injeção utilizando <literal>@EJB</literal>, por exemplo). Em particular, você pode usar a injeção de Web Beans em Message-Driven Beans, que não são considerados Web Beans porque você não pode injetá-los."
+msgid ""
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr "Você ainda pode usar bindings de interceptadores Web Beans em Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
+msgstr ""
+"Você ainda pode usar bindings de interceptadores Web Beans em Message-Driven "
+"Beans."
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -206,85 +294,135 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
-msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "Assim, receber mensagens é super fácil no ambiente Web Beans. Mas, cuidado, pois não existe um contexto de sessão ou conversação disponível quando uma mensagem é entregue a um Message-Driven Bean. Apenas <literal>@RequestScoped</literal> e <literal>@ApplicationScoped</literal> Web Beans estão disponíveis."
+#: ee.xml:103
+#, fuzzy, no-c-format
+msgid ""
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"Assim, receber mensagens é super fácil no ambiente Web Beans. Mas, cuidado, "
+"pois não existe um contexto de sessão ou conversação disponível quando uma "
+"mensagem é entregue a um Message-Driven Bean. Apenas "
+"<literal>@RequestScoped</literal> e <literal>@ApplicationScoped</literal> "
+"Web Beans estão disponíveis."
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "Também é fácil  enviar mensagens usando Web Beans."
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "Endpoints JMS"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
-msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
-msgstr "O envio de mensagens usando JMS pode ser bastante complexo, devido à quantidade de objetos diferentes que precisamos utilizar. Para filas, temos <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> e <literal>QueueSender</literal>. Para os tópicos, temos <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> e <literal>TopicPublisher</literal>. Cada um desses objetos tem seu  próprio ciclo de vida e modelo de threads, com que temos de nos preocupar."
+msgid ""
+"Sending messages using JMS can be quite complex, because of the number of "
+"different objects you need to deal with. For queues we have <literal>Queue</"
+"literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
+"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
+"literal>. Each of these objects has its own lifecycle and threading model "
+"that we need to worry about."
+msgstr ""
+"O envio de mensagens usando JMS pode ser bastante complexo, devido à "
+"quantidade de objetos diferentes que precisamos utilizar. Para filas, temos "
+"<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> e "
+"<literal>QueueSender</literal>. Para os tópicos, temos <literal>Topic</"
+"literal>, <literal>TopicConnectionFactory</literal>, "
+"<literal>TopicConnection</literal>, <literal>TopicSession</literal> e "
+"<literal>TopicPublisher</literal>. Cada um desses objetos tem seu  próprio "
+"ciclo de vida e modelo de threads, com que temos de nos preocupar."
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
-msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
-msgstr "A Web Beans cuida de tudo isso para nós. Tudo que precisamos fazer é declarar a fila ou o tópico no <literal>web-beans.xml</literal>, especificando e associando o tipo de binding e a fábrica de conexão (connection factory)."
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
-msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
-msgstr "Agora, podemos injetar a <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> ou <literal>QueueSender</literal> para uma fila, ou <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> ou <literal>TopicPublisher</literal> em um tópico."
+msgid ""
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -295,45 +433,148 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
+#. Tag: para
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
 msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
+"O ciclo de vida do objeto JMS injetado é completamente controlado pelo "
+"gerenciador do Web Bean."
 
-#. Tag: para
-#: ee.xml:100
-#, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
-msgstr "O ciclo de vida do objeto JMS injetado é completamente controlado pelo gerenciador do Web Bean."
-
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "Empacotamento e implantação"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
-msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
-msgstr "A Web Beans não define nenhum tipo especial de pacote de implantação. Você pode empacotar Web Beans em JARs, EJB-JARs ou WARs &#151; qualquer localização de implantação do classpath da aplicação. Entretanto, cada arquivo ( JARs, EJB-JARs ou WARs) que contém Web Beans deve incluir um arquivo chamado <literal>web-beans.xml</literal> no diretório <literal>META-INF</literal> ou no diretório <literal>WEB-INF</literal>. O arquivo pode ser vazio. Os Web Beans implantados em pacotes que não possuem o arquivo <literal>web-beans.xml</literal> não estarão disponíveis para uso na aplicação."
+#: ee.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"A Web Beans não define nenhum tipo especial de pacote de implantação. Você "
+"pode empacotar Web Beans em JARs, EJB-JARs ou WARs &#151; qualquer "
+"localização de implantação do classpath da aplicação. Entretanto, cada "
+"arquivo ( JARs, EJB-JARs ou WARs) que contém Web Beans deve incluir um "
+"arquivo chamado <literal>web-beans.xml</literal> no diretório <literal>META-"
+"INF</literal> ou no diretório <literal>WEB-INF</literal>. O arquivo pode ser "
+"vazio. Os Web Beans implantados em pacotes que não possuem o arquivo "
+"<literal>web-beans.xml</literal> não estarão disponíveis para uso na "
+"aplicação."
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
-msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "Para execução em ambiente Java SE, Web Beans podem ser implantados em qualquer localização em que EJBs possam ser implantados para execução pelo container EJB Lite embutido (embeddable EJB Lite container). Novamente, cada localização deve conter o arquivo <literal>web-beans.xml</literal>."
+#: ee.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"Para execução em ambiente Java SE, Web Beans podem ser implantados em "
+"qualquer localização em que EJBs possam ser implantados para execução pelo "
+"container EJB Lite embutido (embeddable EJB Lite container). Novamente, cada "
+"localização deve conter o arquivo <literal>web-beans.xml</literal>."
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "Existe uma restrição de que devemos estar conscientes: "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal> não é suportada por "
+#~ "Web Beans simples."
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Injeção de Web Beans aplica-se a todos EJBs, mesmo quando esses não estão "
+#~ "sob o controle do gerenciador do Web Bean (se tiverem sido obtidos por "
+#~ "busca direta no JNDI, ou por injeção utilizando <literal>@EJB</literal>, "
+#~ "por exemplo). Em particular, você pode usar a injeção de Web Beans em "
+#~ "Message-Driven Beans, que não são considerados Web Beans porque você não "
+#~ "pode injetá-los."
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "Também é fácil  enviar mensagens usando Web Beans."
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "A Web Beans cuida de tudo isso para nós. Tudo que precisamos fazer é "
+#~ "declarar a fila ou o tópico no <literal>web-beans.xml</literal>, "
+#~ "especificando e associando o tipo de binding e a fábrica de conexão "
+#~ "(connection factory)."
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "Agora, podemos injetar a <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> ou "
+#~ "<literal>QueueSender</literal> para uma fila, ou <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> ou <literal>TopicPublisher</literal> em um tópico."
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/pt-BR/environments.po
===================================================================
--- doc/trunk/reference/pt-BR/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-13 11:34-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -15,185 +16,259 @@
 
 #. Tag: title
 #: environments.xml:4
-#, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+#, fuzzy, no-c-format
+msgid "Application servers and environments supported by Weld"
 msgstr "Servidores de Aplicação e ambientes suportados pela Web Beans"
 
 #. Tag: title
 #: environments.xml:7
-#, no-c-format
-msgid "Using Web Beans with JBoss AS"
+#, fuzzy, no-c-format
+msgid "Using Weld with JBoss AS"
 msgstr "Utilizando a Web Beans com o JBoss AS"
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
-msgid "No special configuration of your application, beyond adding either <literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</literal> is needed."
-msgstr "Além da adição de <literal>META-INF/beans.xml</literal> ou <literal>WEB-INF/beans.xml</literal>, nenhuma outra configuração especial na sua aplicação é necessária."
+msgid ""
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
+msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
-msgid "If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as an extra. First we need to tell Web Beans where JBoss is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>jboss.home</literal> property. For example:"
-msgstr "Se você estiver usando o JBoss AS 5.0.1.GA, então  precisará instalar a Web Beans como um extra. Primeiro, precisamos  dizer à Web Beans onde o JBoss está localizado. Editar o  <literal>jboss-as/build.properties</literal> e definir a propriedade <literal>jboss.home</literal>. Por exemplo:"
+msgid ""
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
+msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+#: environments.xml:27
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
-msgstr "Agora podemos instalar a Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
+msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
-#, no-c-format
+#: environments.xml:33
+#, fuzzy, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 "$ cd webbeans-$VERSION/jboss-as\n"
 "$ ant update"
 
 #. Tag: para
-#: environments.xml:31
-#, no-c-format
-msgid "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans to query the EJB3 container and discover which EJBs are installed in your application."
-msgstr "Um novo deployer <literal>webbeans.deployer</literal> é adicionado ao JBoss AS. Isso adiciona suporte a implantações JSR-299 no JBoss AS e permite à Web Beans consultar o EJB3 container e descobrir quais EJBs estão instalados na sua aplicação."
+#: environments.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
+msgstr ""
+"Um novo deployer <literal>webbeans.deployer</literal> é adicionado ao JBoss "
+"AS. Isso adiciona suporte a implantações JSR-299 no JBoss AS e permite à Web "
+"Beans consultar o EJB3 container e descobrir quais EJBs estão instalados na "
+"sua aplicação."
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr "A Web Beans está embutida em todas as versões do JBoss AS a partir da versão 5.1."
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr "GlassFish"
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
-msgstr "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
+msgstr ""
 
 #. Tag: title
-#: environments.xml:53
-#, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+#: environments.xml:56
+#, fuzzy, no-c-format
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr "Servlet Containers (como o Tomcat ou Jetty)"
 
 #. Tag: para
-#: environments.xml:55
-#, no-c-format
-msgid "Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty 6.1."
-msgstr "A Web Beans pode ser utilizada em qualquer Servlet container como o Tomcat 6.0 ou Jetty 6.1."
+#: environments.xml:58
+#, fuzzy, no-c-format
+msgid ""
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
+msgstr ""
+"A Web Beans pode ser utilizada em qualquer Servlet container como o Tomcat "
+"6.0 ou Jetty 6.1."
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, fuzzy, no-c-format
-msgid "Web Beans doesn't support deploying session beans, injection using <literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using transactional events in Servlet containers."
-msgstr "A Web Beans não suporta a implantação de session beans, injeção utilizando <literal>@EJB</literal>, <literal>@Resource</literal>, ou <literal>@PersistenceContext</literal>, ou eventos transacionais no Tomcat."
+msgid ""
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
+msgstr ""
+"A Web Beans não suporta a implantação de session beans, injeção utilizando "
+"<literal>@EJB</literal>, <literal>@Resource</literal>, ou "
+"<literal>@PersistenceContext</literal>, ou eventos transacionais no Tomcat."
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, fuzzy, no-c-format
-msgid "Web Beans should be used as a web application library in a servlet container. You should place <literal>webbeans-servlet.jar</literal> in <literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is an \"uber-jar\" provided for your convenience. Alternatively, you could use its component jars:"
-msgstr "A Web Beans deveria ser utilizada como uma bibilioteca de aplicação web no Tomcat. Você deve colocar o <literal>webbeans-tomcat.jar</literal> em <literal>WEB-INF/lib</literal>. <literal>webbeans-tomcat.jar</literal> é um \"hiper-jar\", disponível para a sua conveniência. Em vez disso, você pode utilizar os componentes do jars:"
+msgid ""
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
+msgstr ""
+"A Web Beans deveria ser utilizada como uma bibilioteca de aplicação web no "
+"Tomcat. Você deve colocar o <literal>webbeans-tomcat.jar</literal> em "
+"<literal>WEB-INF/lib</literal>. <literal>webbeans-tomcat.jar</literal> é um "
+"\"hiper-jar\", disponível para a sua conveniência. Em vez disso, você pode "
+"utilizar os componentes do jars:"
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr "jsr299-api.jar"
 
 #. Tag: literal
-#: environments.xml:82
-#, no-c-format
-msgid "webbeans-api.jar"
+#: environments.xml:89
+#, fuzzy, no-c-format
+msgid "weld-api.jar"
 msgstr "webbeans-api.jar"
 
 #. Tag: literal
-#: environments.xml:87
-#, no-c-format
-msgid "webbeans-spi.jar"
+#: environments.xml:94
+#, fuzzy, no-c-format
+msgid "weld-spi.jar"
 msgstr "webbeans-spi.jar"
 
 #. Tag: literal
-#: environments.xml:92
-#, no-c-format
-msgid "webbeans-core.jar"
+#: environments.xml:99
+#, fuzzy, no-c-format
+msgid "weld-core.jar"
 msgstr "webbeans-core.jar"
 
 #. Tag: literal
-#: environments.xml:97
-#, no-c-format
-msgid "webbeans-logging.jar"
+#: environments.xml:104
+#, fuzzy, no-c-format
+msgid "weld-logging.jar"
 msgstr "webbeans-logging.jar"
 
 #. Tag: literal
-#: environments.xml:102
-#, no-c-format
-msgid "webbeans-servlet-int.jar"
+#: environments.xml:109
+#, fuzzy, no-c-format
+msgid "weld-servlet-int.jar"
 msgstr "webbeans-servlet-int.jar"
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr "javassist.jar"
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr "dom4j.jar"
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, fuzzy, no-c-format
-msgid "You also need to explicitly specify the servlet listener (used to boot Web Beans, and control its interaction with requests) in <literal>web.xml</literal>:"
-msgstr "Você também precisa especificar explicitamente o Tomcat servlet listener (utilizado para \"bootar\" a Web Beans e controlar a interação com as requisições) no <literal>web.xml</literal>:"
+msgid ""
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
+msgstr ""
+"Você também precisa especificar explicitamente o Tomcat servlet listener "
+"(utilizado para \"bootar\" a Web Beans e controlar a interação com as "
+"requisições) no <literal>web.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:123
-#, no-c-format
+#: environments.xml:134
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
 "</listener>]]>"
 msgstr ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
+"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"class>\n"
 "</listener>]]>"
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr "Tomcat"
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, fuzzy, no-c-format
-msgid "Tomcat has a read-only JNDI, so Web Beans can't automatically bind the Manager. To bind the Manager into JNDI, you should populate <literal>META-INF/context.xml</literal> with the following contents:"
-msgstr "O Tomcat tem um JNDI apenas de leitura. Assim, a Web Beans não pode vincular automaticamente o Manager. Para vincular o Manager no JNDI, você deve adicionar o seguinte ao seu <literal>META-INF/context.xml</literal>:"
+msgid ""
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
+msgstr ""
+"O Tomcat tem um JNDI apenas de leitura. Assim, a Web Beans não pode vincular "
+"automaticamente o Manager. Para vincular o Manager no JNDI, você deve "
+"adicionar o seguinte ao seu <literal>META-INF/context.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:135
-#, no-c-format
+#: environments.xml:145
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 "<![CDATA[<Context>\n"
@@ -204,21 +279,23 @@
 "</Context>]]>"
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, fuzzy, no-c-format
-msgid "and make it available to your deployment by adding this to the bottom of <literal>web.xml</literal>:"
-msgstr "e torná-lo disponível para a sua implantação, acrescentando-o ao <literal>web.xml</literal>:"
+msgid ""
+"and make it available to your deployment by adding this to the bottom of "
+"<literal>web.xml</literal>:"
+msgstr ""
+"e torná-lo disponível para a sua implantação, acrescentando-o ao "
+"<literal>web.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:142
-#, no-c-format
+#: environments.xml:151
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
@@ -232,58 +309,82 @@
 "</resource-env-ref>]]>"
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, fuzzy, no-c-format
-msgid "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, so the Manager will be available at <literal>java:comp/env/app/Manager</literal>"
-msgstr "O Tomcat não só permite a você vincular as entradas para <literal>java:comp/env</literal>, assim que o Manager estará disponível em <literal>java:comp/env/app/Manager</literal>"
+msgid ""
+"Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
+"literal>"
+msgstr ""
+"O Tomcat não só permite a você vincular as entradas para <literal>java:comp/"
+"env</literal>, assim que o Manager estará disponível em <literal>java:comp/"
+"env/app/Manager</literal>"
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
-msgid "Web Beans also supports Servlet injection in Tomcat. To enable this, place the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</literal>, and add the following to your <literal>META-INF/context.xml</literal>:"
+msgid ""
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
-#, no-c-format
-msgid "<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat.WebBeansLifecycleListener\"/>]]>"
-msgstr "<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat.WebBeansLifecycleListener\"/>]]>"
+#: environments.xml:164
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
+msgstr ""
+"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
+"WebBeansLifecycleListener\"/>]]>"
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr "Jetty"
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, fuzzy, no-c-format
-msgid "Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically bind the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
-msgstr "O Tomcat tem um JNDI apenas de leitura. Assim, a Web Beans não pode vincular automaticamente o Manager. Para vincular o Manager no JNDI, você deve adicionar o seguinte ao seu <literal>META-INF/context.xml</literal>:"
+msgid ""
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
+msgstr ""
+"O Tomcat tem um JNDI apenas de leitura. Assim, a Web Beans não pode vincular "
+"automaticamente o Manager. Para vincular o Manager no JNDI, você deve "
+"adicionar o seguinte ao seu <literal>META-INF/context.xml</literal>:"
 
 #. Tag: programlisting
-#: environments.xml:171
-#, no-c-format
+#: environments.xml:176
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//EN\"\n"
+"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
+"EN\"\n"
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
-"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
+"\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
 "   </New>\n"
 "</Configure>]]>"
 msgstr ""
-"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//EN\"\n"
+"<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
+"EN\"\n"
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
-"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext\">\n"
+"<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
+"\">\n"
 "   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
 "      <Arg>app/Manager</Arg>\n"
@@ -298,124 +399,146 @@
 "</Configure>]]>"
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
-msgid "Notice that Jetty doesn't not have built-in support for an <literal>javax.naming.spi.ObjectFactory</literal> like Tomcat, so it's necessary to manually create the <literal>javax.naming.Reference</literal> to wrap around it."
+msgid ""
+"Notice that Jetty doesn't not have built-in support for an <literal>javax."
+"naming.spi.ObjectFactory</literal> like Tomcat, so it's necessary to "
+"manually create the <literal>javax.naming.Reference</literal> to wrap around "
+"it."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, fuzzy, no-c-format
-msgid "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, so the Manager will be available at <literal>java:comp/env/app/Manager</literal>"
-msgstr "O Tomcat não só permite a você vincular as entradas para <literal>java:comp/env</literal>, assim que o Manager estará disponível em <literal>java:comp/env/app/Manager</literal>"
+msgid ""
+"Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
+"literal>"
+msgstr ""
+"O Tomcat não só permite a você vincular as entradas para <literal>java:comp/"
+"env</literal>, assim que o Manager estará disponível em <literal>java:comp/"
+"env/app/Manager</literal>"
 
 #. Tag: para
-#: environments.xml:186
-#, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+#: environments.xml:189
+#, fuzzy, no-c-format
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr "Web Beans atualmente não suporta injeção de Servlet no Jetty."
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr "Java SE"
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
-msgid "Apart from improved integration of the Enterprise Java stack, Web Beans also provides a state of the art typesafe, stateful dependency injection framework. This is useful in a wide range of application types, enterprise or otherwise. To facilitate this, Web Beans provides a simple means for executing in the Java Standard Edition environment independently of any Enterprise Edition features."
+msgid ""
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
-#, no-c-format
-msgid "When executing in the SE environment the following features of Web Beans are available:"
-msgstr "Quando executando no ambiente SE as seguintes funcionalidades da Web Beans estão disponíveis:"
+#: environments.xml:208
+#, fuzzy, no-c-format
+msgid ""
+"When executing in the SE environment the following features of Weld are "
+"available:"
+msgstr ""
+"Quando executando no ambiente SE as seguintes funcionalidades da Web Beans "
+"estão disponíveis:"
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
-msgstr "Web Beans Simples (POJOs)"
+msgid "POJOs (no EJBs)"
+msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
-#, no-c-format
-msgid "Web Beans SE Module"
+#: environments.xml:246
+#, fuzzy, no-c-format
+msgid "CDI SE Module"
 msgstr "Módulo Web Beans SE"
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
-msgid "To make life easy for developers Web Beans provides a special module with a main method which will boot the Web Beans manager, automatically registering all simple Web Beans found on the classpath. This eliminates the need for application developers to write any bootstrapping code. The entry point for a Web Beans SE applications is a simple Web Bean which observes the standard <literal>@Deployed Manager</literal> event. The command line paramters can be injected using either of the following:"
+msgid ""
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
-#, no-c-format
+#: environments.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 "<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"@Parameters String[] paramsArray; // useful for compatability with existing "
+"classes]]>"
 
 #. Tag: para
-#: environments.xml:259
-#, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+#: environments.xml:257
+#, fuzzy, no-c-format
+msgid "Here's an example of a simple CDI SE application:"
 msgstr "Aqui está um exemplo de uma simples aplicação Web Beans SE:"
 
 #. Tag: programlisting
-#: environments.xml:263
-#, no-c-format
+#: environments.xml:261
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped\n"
@@ -430,34 +553,39 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:265
-#, no-c-format
-msgid "Web Beans SE applications are started by running the following main method."
-msgstr "Aplicações Web Beans SE são iniciadas executando o seguinte método principal."
+#: environments.xml:263
+#, fuzzy, no-c-format
+msgid ""
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
+msgstr ""
+"Aplicações Web Beans SE são iniciadas executando o seguinte método principal."
 
 #. Tag: programlisting
 #: environments.xml:267
-#, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+#, fuzzy, no-c-format
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
-msgid "If you need to do any custom initialization of the Web Beans manager, for example registering custom contexts or initializing resources for your beans you can do so in response to the <literal>@Initialized Manager</literal> event. The following example registers a custom context:"
+msgid ""
+"If you need to do any custom initialization of the CDI bean manager, for "
+"example registering custom contexts or initializing resources for your beans "
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
-#, no-c-format
+#: environments.xml:276
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PerformSetup\n"
@@ -470,8 +598,47 @@
 "}]]>"
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
-msgid "The command line parameters do not become available for injection until the <literal>@Deployed Manager</literal> event is fired. If you need access to the parameters during initialization you can do so via the <literal>public static String getParameters()</literal> method in <literal>StartMain</literal>."
+msgid ""
+"The command line parameters do not become available for injection until the "
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""
 
+#~ msgid ""
+#~ "No special configuration of your application, beyond adding either "
+#~ "<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
+#~ "literal> is needed."
+#~ msgstr ""
+#~ "Além da adição de <literal>META-INF/beans.xml</literal> ou <literal>WEB-"
+#~ "INF/beans.xml</literal>, nenhuma outra configuração especial na sua "
+#~ "aplicação é necessária."
+
+#~ msgid ""
+#~ "If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans "
+#~ "as an extra. First we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Se você estiver usando o JBoss AS 5.0.1.GA, então  precisará instalar a "
+#~ "Web Beans como um extra. Primeiro, precisamos  dizer à Web Beans onde o "
+#~ "JBoss está localizado. Editar o  <literal>jboss-as/build.properties</"
+#~ "literal> e definir a propriedade <literal>jboss.home</literal>. Por "
+#~ "exemplo:"
+
+#~ msgid "Now we can install Web Beans:"
+#~ msgstr "Agora podemos instalar a Web Beans:"
+
+#~ msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
+#~ msgstr ""
+#~ "A Web Beans está embutida em todas as versões do JBoss AS a partir da "
+#~ "versão 5.1."
+
+#~ msgid "TODO"
+#~ msgstr "TODO"
+
+#~ msgid "Simple Web Beans (POJOs)"
+#~ msgstr "Web Beans Simples (POJOs)"

Modified: doc/trunk/reference/pt-BR/events.po
===================================================================
--- doc/trunk/reference/pt-BR/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 11:24-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -22,267 +22,413 @@
 #. Tag: para
 #: events.xml:6
 #, no-c-format
-msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
-msgstr "A habilidade de notificação de eventos da Web Beans permite aos Web Beans interagirem de  maneira totalmente desacoplada. <emphasis>Produtores</emphasis> de eventos disparam eventos que são entregues aos <emphasis>observadores</emphasis> de eventos pelo gerenciador do Web Bean. Esse esquema básico pode soar como o familiar padrão observador/observável padrão, mas há várias diferenças:"
+msgid ""
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
-msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
-msgstr "não só os produtores são desacoplados dos observadores; os observadores são totalmente desacoplados dos produtores,"
+msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
 
 #. Tag: para
 #: events.xml:18
 #, no-c-format
-msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
-msgstr "os observadores podem especificar uma combinação de \"seletores\" para reduzir o conjunto de eventos que irão receber notificações, e"
+msgid ""
+"not only are event producers decoupled from observers; observers are "
+"completely decoupled from producers,"
+msgstr ""
+"não só os produtores são desacoplados dos observadores; os observadores são "
+"totalmente desacoplados dos produtores,"
 
 #. Tag: para
 #: events.xml:22
 #, no-c-format
-msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
-msgstr "os observadores podem ser notificados imediatamente ou podem especificar que a notificação do evento deveria esperar até o término da transação corrente"
+msgid ""
+"observers can specify a combination of \"selectors\" to narrow the set of "
+"event notifications they will receive, and"
+msgstr ""
+"os observadores podem especificar uma combinação de \"seletores\" para "
+"reduzir o conjunto de eventos que irão receber notificações, e"
 
-#. Tag: title
+#. Tag: para
 #: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "Observadores de eventos"
+#, fuzzy, no-c-format
+msgid ""
+"observers can be notified immediately, or can specify that delivery of the "
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"os observadores podem ser notificados imediatamente ou podem especificar que "
+"a notificação do evento deveria esperar até o término da transação corrente"
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
-msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
-msgstr "Um <emphasis>método observador (observer method)</emphasis> é um método de um Web Bean com um parâmetro anotado<literal>@Observes</literal>."
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "Produtores de Eventos"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgid ""
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
+msgstr ""
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
-msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "O parâmetro anotado é chamado <emphasis>parâmetro de evento</emphasis>. O tipo do parâmetro de evento é observado pelo <emphasis>event type</emphasis>. Os métodos observadores também podem especificar \"seletores\", que são apenas instâncias de tipo de bindings de Web Beans. Quando um tipo de binding é utilizado como um seletor de evento, é chamado de <emphasis>tipo de binding de evento</emphasis>."
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
-#. Tag: para
-#: events.xml:43
+#. Tag: title
+#: events.xml:57
 #, no-c-format
-msgid "We specify the event bindings of the observer method by annotating the event parameter:"
-msgstr "Especificamos os bindings de eventos do observador, anotando o parâmetro do evento:"
+msgid "Event observers"
+msgstr "Observadores de eventos"
 
+#. Tag: para
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"Um <emphasis>método observador (observer method)</emphasis> é um método de "
+"um Web Bean com um parâmetro anotado<literal>@Observes</literal>."
+
 #. Tag: programlisting
-#: events.xml:46
-#: events.xml:190
+#: events.xml:64
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"O parâmetro anotado é chamado <emphasis>parâmetro de evento</emphasis>. O "
+"tipo do parâmetro de evento é observado pelo <emphasis>event type</"
+"emphasis>. Os métodos observadores também podem especificar \"seletores\", "
+"que são apenas instâncias de tipo de bindings de Web Beans. Quando um tipo "
+"de binding é utilizado como um seletor de evento, é chamado de "
+"<emphasis>tipo de binding de evento</emphasis>."
+
+#. Tag: programlisting
+#: events.xml:72 events.xml:240
 #, no-c-format
-msgid "An observer method need not specify any event bindings &#151; in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
-msgstr "Um método observador não necessita especificar nenhum binding de evento &#151; nesse caso, ele está interessado em <emphasis>todos</emphasis> os eventos de um determinado tipo. Se ele especificar o bindings de evento, ele estará apenas interessado em eventos que também têm esses bindings de evento."
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
-msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
-msgstr "O método observador pode ter parâmetros adicionais que são injetados de acordo com a semântica usual de injeção de parâmetros em métodos de Web Beans"
+#: events.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"Um método observador não necessita especificar nenhum binding de evento "
+"&#151; nesse caso, ele está interessado em <emphasis>todos</emphasis> os "
+"eventos de um determinado tipo. Se ele especificar o bindings de evento, ele "
+"estará apenas interessado em eventos que também têm esses bindings de evento."
 
+#. Tag: para
+#: events.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"O método observador pode ter parâmetros adicionais que são injetados de "
+"acordo com a semântica usual de injeção de parâmetros em métodos de Web Beans"
+
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "Produtores de Eventos"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
-msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
-msgstr "O evento produtor pode obter um objeto <emphasis>notificador de evento (event notifier)</emphasis> por injeção:"
+msgid ""
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
-msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
-msgstr "A anotação <literal>@Observable</literal> define, implicitamente, uma Web Bean com o escopo <literal>@Dependent</literal> e tipo de implantação <literal>@Standard</literal>, com uma implementação fornecida pelo gerenciador do Web Bean."
+#: events.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"Um produtor lança eventos chamando o método <literal>fire()</literal> da "
+"interface <literal>Event</literal> e passando um objeto <emphasis>event "
+"object</emphasis>:"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
-msgstr "Um produtor lança eventos chamando o método <literal>fire()</literal> da interface <literal>Event</literal> e passando um objeto <emphasis>event object</emphasis>:"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
-msgstr "Um objeto de evento pode ser uma instância de qualquer classe Java que não tem nenhum tipo de variáveis ou parâmetros tipo curinga. O evento será entregue a cada método observador  que:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "O evento será entregue a todo método observador (observer method) que:"
 
 #. Tag: para
-#: events.xml:83
-#: events.xml:107
-#: events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "tenha um parâmetro evento em que o  evento objeto é atribuído, e"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "não especifique nenhum evento bindings."
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
-msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "O gerenciador do Web Bean simplesmente chama  todos os métodos de observação, passando o objeto do evento como o valor do parâmetro do evento. Se algum método observador  lança uma exceção, o gerenciador do Web Bean deixa de chamar os métodos do observador, e a exceção é relançada pelo método <literal>fire()</literal>."
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"O gerenciador do Web Bean simplesmente chama  todos os métodos de "
+"observação, passando o objeto do evento como o valor do parâmetro do evento. "
+"Se algum método observador  lança uma exceção, o gerenciador do Web Bean "
+"deixa de chamar os métodos do observador, e a exceção é relançada pelo "
+"método <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
-msgstr "Para especificar um \"seletor\", o produtor do evento pode passar uma instância do tipo de binding do evento para o método <literal>fire()</literal>:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
-msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
-msgstr "O classe auxiliar <literal>AnnotationLiteral</literal> permite instanciar tipo de binding inline, o que é  difícil de se fazer em Java."
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "O evento será entregue a todo método observador (observer method) que:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
-msgstr "não especifique nenhum binding de evento <emphasis>exceto</emphasis> para o binding de evento passado para o <literal>fire()</literal>."
+#: events.xml:144
+#, fuzzy, no-c-format
+msgid ""
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"Em seguida, todos os eventos disparados por essa instância de "
+"<literal>Event</literal> tem o binding de evento anotada. O evento será "
+"entregue a cada método observador que:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
-msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
-msgstr "Alternativamente, bindings de eventos podem ser especificados anotando o ponto de injeção do notificador do evento:"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "tenha um parâmetro evento em que o  evento objeto é atribuído, e"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
+msgid ""
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"não especifique nenhum binding de evento <emphasis>exceto</emphasis> para o "
+"binding de evento passado para o <literal>fire()</literal>."
 
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
-msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
-msgstr "Em seguida, todos os eventos disparados por essa instância de <literal>Event</literal> tem o binding de evento anotada. O evento será entregue a cada método observador que:"
+msgid ""
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
-msgstr "não especifique nenhum  binding de evento <emphasis>exceto</emphasis> para os bindings de evento passados para o <literal>fire()</literal> ou os bindings de evento anotados do ponto de injeção do notificador de evento."
+msgid ""
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "Observadores transacionais"
+
+#. Tag: para
+#: events.xml:180
 #, no-c-format
-msgid "Registering observers dynamically"
-msgstr "Resgistrando observadores (observers) dinamicamente"
+msgid ""
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:186
 #, no-c-format
-msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
-msgstr "Frequentemente, é útil  registrar um evento observador dinamicamente. A aplicação pode implementar a interface <literal>Observer</literal> e registrar a instância com um evento notificador chamando o método <literal>observe()</literal>."
+msgid ""
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:144
-#, no-c-format
-msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
-msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+#: events.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:146
+#: events.xml:193
 #, no-c-format
-msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
-msgstr "Tipos de binding de eventos podem ser especificados pelo notificador do evento no ponto de injeção, ou passando instâncias do tipo de binding de evento para o método observador <literal>observe()</literal> method:"
-
-#. Tag: programlisting
-#: events.xml:149
-#, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "Bindings de eventos com os membros"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "Um tipo de binding de evento pode ter anotações membro:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -293,186 +439,282 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "O valor do membro é utilizado para reduzir as mensagens entregues ao observador:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"O valor do membro é utilizado para reduzir as mensagens entregues ao "
+"observador:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
-msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
-msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgid ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
-msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
-msgstr "Membros de tipo de binding de evento podem ser especificados estaticamente pelo produtor do evento, por meio de anotações no ponto de notificação do evento:"
+#: events.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Event qualifier type members may be specified statically by the event "
+"producer, via annotations at the event notifier injection point:"
+msgstr ""
+"Membros de tipo de binding de evento podem ser especificados estaticamente "
+"pelo produtor do evento, por meio de anotações no ponto de notificação do "
+"evento:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
-msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
-msgstr "Alternativamente, o valor do membro do tipo de binding de evento pode ser determinado dinamicamente pelo produtor do evento. Vamos começar escrevendo uma subclasse abstrata de <literal>AnnotationLiteral</literal>:"
+#: events.xml:217
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"Alternativamente, o valor do membro do tipo de binding de evento pode ser "
+"determinado dinamicamente pelo produtor do evento. Vamos começar escrevendo "
+"uma subclasse abstrata de <literal>AnnotationLiteral</literal>:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
-msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
-msgstr "O produtor do evento (event producer) passa uma instância dessa classe para <literal>fire()</literal>:"
+#: events.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"The event producer passes an instance of this class to <literal>select()</"
+"literal>:"
+msgstr ""
+"O produtor do evento (event producer) passa uma instância dessa classe para "
+"<literal>fire()</literal>:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+#: events.xml:226
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "Múltiplos  bindings de eventos"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "Tipos de  binding de evento podem ser combinados, por exemplo:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
-msgid "When this event occurs, all of the following observer methods will be notified:"
-msgstr "Quando esse evento ocorre, todos os métodos observadores que seguem esse evento serão notificados:"
+msgid ""
+"When this event occurs, all of the following observer methods will be "
+"notified:"
+msgstr ""
+"Quando esse evento ocorre, todos os métodos observadores que seguem esse "
+"evento serão notificados:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
-msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
-msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "Observadores transacionais"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
-msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
-msgstr "Observadores transacionais recebem notificações de eventos durante, antes ou após a conclusão da transação em que o evento foi disparado. Por exemplo: o seguinte método observador necessita atualizar um conjunto de resultados de uma consulta que está armazenada no contexto da aplicação, mas apenas quando as transações que atualizam a àrvore de <literal>Category</literal>forem concluídas com sucesso:"
+msgid ""
+"Transactional observers receive their event notifications during the before "
+"or after completion phase of the transaction in which the event was raised. "
+"For example, the following observer method needs to refresh a query result "
+"set that is cached in the application context, but only when transactions "
+"that update the <literal>Category</literal> tree succeed:"
+msgstr ""
+"Observadores transacionais recebem notificações de eventos durante, antes ou "
+"após a conclusão da transação em que o evento foi disparado. Por exemplo: o "
+"seguinte método observador necessita atualizar um conjunto de resultados de "
+"uma consulta que está armazenada no contexto da aplicação, mas apenas quando "
+"as transações que atualizam a àrvore de <literal>Category</literal>forem "
+"concluídas com sucesso:"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
-msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
-msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+#: events.xml:256
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
+"CategoryUpdateEvent event) { ... }]]>"
+msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "Existem três tipos de observadores transacionais:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
-msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
-msgstr "<literal>@AfterTransactionSuccess</literal> observadores são chamados durante a fase após a conclusão da transação, mas somente se a transação tiver sido concluída com sucesso"
+msgid ""
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
-msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
-msgstr "<literal>@AfterTransactionFailure</literal> observadores são chamados durante a fase após a conclusão da transação, mas somente se a transação não tiver sido concluída com sucesso"
+#: events.xml:265
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"<literal>@AfterTransactionSuccess</literal> observadores são chamados "
+"durante a fase após a conclusão da transação, mas somente se a transação "
+"tiver sido concluída com sucesso"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
-msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
-msgstr "<literal>@AfterTransactionCompletion</literal> observadores são chamados durante a fase  após a conclusão da transação"
+#: events.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"<literal>@AfterTransactionFailure</literal> observadores são chamados "
+"durante a fase após a conclusão da transação, mas somente se a transação não "
+"tiver sido concluída com sucesso"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
-msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
-msgstr "<literal>@BeforeTransactionCompletion</literal> observadores são chamados durante a fase antes da conclusão da transação"
+#: events.xml:277
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@AfterTransactionCompletion</literal> observadores são chamados "
+"durante a fase  após a conclusão da transação"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
-msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
-msgstr "Observadores transacionais  são muito importantes para um modelo de objetos stateful como o Web Beans, porque o estado é muitas vezes mantido por mais de uma única transação atômica."
+#: events.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@BeforeTransactionCompletion</literal> observadores são chamados "
+"durante a fase antes da conclusão da transação"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"Observadores transacionais  são muito importantes para um modelo de objetos "
+"stateful como o Web Beans, porque o estado é muitas vezes mantido por mais "
+"de uma única transação atômica."
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
-msgstr "Imagine que fizemos cache do conjunto de resultados da consulta JPA no escopo de aplicação (application scope):"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
+msgstr ""
+"Imagine que fizemos cache do conjunto de resultados da consulta JPA no "
+"escopo de aplicação (application scope):"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -486,7 +728,8 @@
 "    @Produces @Catalog \n"
 "    List<Product> getCatalog() {\n"
 "        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
 "                .getResultList();\n"
 "        }\n"
 "        return products;\n"
@@ -495,39 +738,50 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
-msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
-msgstr "De tempos em tempos, um <literal>Product</literal> é criado ou excluído. Quando isso ocorre, é preciso atualizar o catálogo de <literal>Product</literal>. Mas devemos esperar até <emphasis>depois</emphasis> da transação ser concluída com sucesso antes de realizar essa atualização!"
+msgid ""
+"From time to time, a <literal>Product</literal> is created or deleted. When "
+"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
+"we should wait until <emphasis>after</emphasis> the transaction completes "
+"successfully before performing this refresh!"
+msgstr ""
+"De tempos em tempos, um <literal>Product</literal> é criado ou excluído. "
+"Quando isso ocorre, é preciso atualizar o catálogo de <literal>Product</"
+"literal>. Mas devemos esperar até <emphasis>depois</emphasis> da transação "
+"ser concluída com sucesso antes de realizar essa atualização!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
-msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
-msgstr "O Web Bean que cria e remove <literal>Products</literal> pode lançar eventos, por exemplo:"
+#: events.xml:305
+#, fuzzy, no-c-format
+msgid ""
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
+msgstr ""
+"O Web Bean que cria e remove <literal>Products</literal> pode lançar "
+"eventos, por exemplo:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -551,28 +805,31 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
-msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
-msgstr "E agora <literal>Catalog</literal> pode observar os eventos após o término da transação concluída com sucesso:"
+msgid ""
+"And now <literal>Catalog</literal> can observe the events after successful "
+"completion of the transaction:"
+msgstr ""
+"E agora <literal>Catalog</literal> pode observar os eventos após o término "
+"da transação concluída com sucesso:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
+"product) {\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
-"        products.add(product);\n"
-"    }\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
+"product) {\n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -580,13 +837,136 @@
 "\n"
 "    ...\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
 "        products.add(product);\n"
 "    }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
 "        products.remove(product);\n"
 "    }\n"
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "A habilidade de notificação de eventos da Web Beans permite aos Web Beans "
+#~ "interagirem de  maneira totalmente desacoplada. <emphasis>Produtores</"
+#~ "emphasis> de eventos disparam eventos que são entregues aos "
+#~ "<emphasis>observadores</emphasis> de eventos pelo gerenciador do Web "
+#~ "Bean. Esse esquema básico pode soar como o familiar padrão observador/"
+#~ "observável padrão, mas há várias diferenças:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr ""
+#~ "Especificamos os bindings de eventos do observador, anotando o parâmetro "
+#~ "do evento:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "O evento produtor pode obter um objeto <emphasis>notificador de evento "
+#~ "(event notifier)</emphasis> por injeção:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "A anotação <literal>@Observable</literal> define, implicitamente, uma Web "
+#~ "Bean com o escopo <literal>@Dependent</literal> e tipo de implantação "
+#~ "<literal>@Standard</literal>, com uma implementação fornecida pelo "
+#~ "gerenciador do Web Bean."
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Um objeto de evento pode ser uma instância de qualquer classe Java que "
+#~ "não tem nenhum tipo de variáveis ou parâmetros tipo curinga. O evento "
+#~ "será entregue a cada método observador  que:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "Para especificar um \"seletor\", o produtor do evento pode passar uma "
+#~ "instância do tipo de binding do evento para o método <literal>fire()</"
+#~ "literal>:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "O classe auxiliar <literal>AnnotationLiteral</literal> permite instanciar "
+#~ "tipo de binding inline, o que é  difícil de se fazer em Java."
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr ""
+#~ "Alternativamente, bindings de eventos podem ser especificados anotando o "
+#~ "ponto de injeção do notificador do evento:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "não especifique nenhum  binding de evento <emphasis>exceto</emphasis> "
+#~ "para os bindings de evento passados para o <literal>fire()</literal> ou "
+#~ "os bindings de evento anotados do ponto de injeção do notificador de "
+#~ "evento."
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "Resgistrando observadores (observers) dinamicamente"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "Frequentemente, é útil  registrar um evento observador dinamicamente. A "
+#~ "aplicação pode implementar a interface <literal>Observer</literal> e "
+#~ "registrar a instância com um evento notificador chamando o método "
+#~ "<literal>observe()</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "Tipos de binding de eventos podem ser especificados pelo notificador do "
+#~ "evento no ponto de injeção, ou passando instâncias do tipo de binding de "
+#~ "evento para o método observador <literal>observe()</literal> method:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/pt-BR/example.po
===================================================================
--- doc/trunk/reference/pt-BR/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-07 18:51+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 20:31-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -21,17 +21,23 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
-msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
-msgstr "Ilustraremos essas idéias com um exemplo completo. Nós  implementaremos um login/logout de usuário de uma aplicação que utiliza JSF. Primeiro, definiremos um Web Bean que irá armazenar o nome do usuário (username) e a senha (password) fornecidos durante o login:"
+#, fuzzy, no-c-format
+msgid ""
+"Let's illustrate these ideas with a full example. We're going to implement "
+"user login/logout for an application that uses JSF. First, we'll define a "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"Ilustraremos essas idéias com um exemplo completo. Nós  implementaremos um "
+"login/logout de usuário de uma aplicação que utiliza JSF. Primeiro, "
+"definiremos um Web Bean que irá armazenar o nome do usuário (username) e a "
+"senha (password) fornecidos durante o login:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -40,7 +46,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -59,23 +64,26 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Esse Web Bean é vinculado ao prompt de login do seguinte formulário JSF:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
+msgstr ""
+"Esse Web Bean é vinculado ao prompt de login do seguinte formulário JSF:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
 "<![CDATA[<h:form>\n"
@@ -85,53 +93,63 @@
 "        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
 "        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
 "    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
-msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
-msgstr "O verdadeiro trabalho é realizado por um Web Bean em escopo de sessão que mantém informações sobre o atual usuário conectado e expõe a entidade <literal>User</literal> para outros Web Beans:"
+#, fuzzy, no-c-format
+msgid ""
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"O verdadeiro trabalho é realizado por um Web Bean em escopo de sessão que "
+"mantém informações sobre o atual usuário conectado e expõe a entidade "
+"<literal>User</literal> para outros Web Beans:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -146,7 +164,8 @@
 "    public void login() {\n"
 "            \n"
 "        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
 "           .setParameter(\"username\", credentials.getUsername())\n"
 "           .setParameter(\"password\", credentials.getPassword())\n"
 "           .getResultList();\n"
@@ -172,19 +191,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "Certamente, <literal>@LoggedIn</literal> é uma anotação de binding (binding annotation):"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -192,26 +227,44 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "Agora, qualquer outro Web Bean pode facilmente injetar o usuário atual:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr ""
+"Agora, qualquer outro Web Bean pode facilmente injetar o usuário atual:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -228,8 +281,32 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
-msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
-msgstr "Esperamos que esse exemplo tenha dado um gostinho do modelo de programação com Web Beans. No capítulo seguinte, exploraremos a injeção de dependência da Web Beans em profundidade."
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
 
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
+msgid ""
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"Esperamos que esse exemplo tenha dado um gostinho do modelo de programação "
+"com Web Beans. No capítulo seguinte, exploraremos a injeção de dependência "
+"da Web Beans em profundidade."
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr ""
+#~ "Certamente, <literal>@LoggedIn</literal> é uma anotação de binding "
+#~ "(binding annotation):"

Modified: doc/trunk/reference/pt-BR/extend.po
===================================================================
--- doc/trunk/reference/pt-BR/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 12:48-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,280 +14,291 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "Estendendo a Web Beans"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
-msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
-msgstr "A Web Beans pretende ser uma plataforma para frameworks, extensões e integração com outras tecnologias. Portanto,a  Web Beans expõe um conjunto de SPIs para a utilização pelos desenvolvedores de extensões portáveis para Web Beans. Por exemplo, os seguintes tipos de extensões estavam previstas pelos designers da Web Beans:"
+#: extend.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"A Web Beans pretende ser uma plataforma para frameworks, extensões e "
+"integração com outras tecnologias. Portanto,a  Web Beans expõe um conjunto "
+"de SPIs para a utilização pelos desenvolvedores de extensões portáveis para "
+"Web Beans. Por exemplo, os seguintes tipos de extensões estavam previstas "
+"pelos designers da Web Beans:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
-msgstr "Integração com motores de gerenciamento de processos de negócios (Business Process Management )"
+msgstr ""
+"Integração com motores de gerenciamento de processos de negócios (Business "
+"Process Management )"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
-msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
-msgstr "integração com frameworks de terceiros, tais como Spring, Seam, GWT ou Wicket, e"
+msgid ""
+"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
+"and"
+msgstr ""
+"integração com frameworks de terceiros, tais como Spring, Seam, GWT ou "
+"Wicket, e"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "nova tecnologia baseada no modelo de programação da Web Beans."
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
-msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
-msgstr "O nervo central para estender a Web Beans é o objeto <literal>Manager</literal>."
+msgid "More formally, according to the spec:"
+msgstr ""
 
-#. Tag: title
-#: extend.xml:29
+#. Tag: para
+#: extend.xml:32
 #, no-c-format
-msgid "The <literal>Manager</literal> object"
-msgstr "O objeto <literal>Manager</literal>"
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:31
+#: extend.xml:35
 #, no-c-format
-msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "A interface <literal>Manager</literal> permite, programaticamente, registrar e obter Web Beans, interceptadores, decoradores,  observadores e contextos."
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
 
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object."
+msgstr ""
+"O nervo central para estender a Web Beans é o objeto <literal>Manager</"
+"literal>."
+
+#. Tag: title
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
+msgstr "O objeto <literal>Manager</literal>"
+
+#. Tag: para
+#: extend.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"A interface <literal>Manager</literal> permite, programaticamente, registrar "
+"e obter Web Beans, interceptadores, decoradores,  observadores e contextos."
+
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr "Nós podemos obter uma instância do <literal>Manager</literal> via injeção:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+msgstr ""
+"Nós podemos obter uma instância do <literal>Manager</literal> via injeção:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "A classe <literal>Bean</literal> "
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
-msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
-msgstr "Instâncias da classe abstrata <literal>Bean</literal> representam Web Beans. Existe uma instância do <literal>Bean</literal> registrado com o objeto <literal>Manager</literal> para todos os Web Beans da aplicação."
+#: extend.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr ""
+"O nervo central para estender a Web Beans é o objeto <literal>Manager</"
+"literal>."
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "A interface <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"Instâncias da classe abstrata <literal>Bean</literal> representam Web Beans. "
+"Existe uma instância do <literal>Bean</literal> registrado com o objeto "
+"<literal>Manager</literal> para todos os Web Beans da aplicação."
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
-msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
-msgstr "É possível estender a classe <literal>Bean</literal> e registrar instâncias através da chamada <literal>Manager.addBean()</literal>, para fornecer suporte para novos tipos de Web Beans, além dos definidos pela especificação Web Beans (Web Beans simples e coporativos, métodos produtores e endpoints JMS). Por exemplo, poderíamos usar a classe <literal>Bean</literal> para permitir que os objetos gerenciados por um outro framework possam ser injetados nos Web Beans."
+#: extend.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"É possível estender a classe <literal>Bean</literal> e registrar instâncias "
+"através da chamada <literal>Manager.addBean()</literal>, para fornecer "
+"suporte para novos tipos de Web Beans, além dos definidos pela especificação "
+"Web Beans (Web Beans simples e coporativos, métodos produtores e endpoints "
+"JMS). Por exemplo, poderíamos usar a classe <literal>Bean</literal> para "
+"permitir que os objetos gerenciados por um outro framework possam ser "
+"injetados nos Web Beans."
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
-msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
-msgstr "Existem duas subclasses de <literal>Bean</literal> definidas pela especificação de Web Beans: <literal>Interceptor</literal> e <literal>Decorator</literal>."
+#: extend.xml:104
+#, fuzzy, no-c-format
+msgid ""
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
+"specification: <literal>Interceptor</literal> and <literal>Decorator</"
+"literal>."
+msgstr ""
+"Existem duas subclasses de <literal>Bean</literal> definidas pela "
+"especificação de Web Beans: <literal>Interceptor</literal> e "
+"<literal>Decorator</literal>."
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "A interface <literal>Context</literal>"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
-msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
-msgstr "A interface <literal>Context</literal> suporta a adição de novos escopos a Web Beans, ou extensões dos escopos existentes para novos ambientes."
+#: extend.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Context</literal> interface supports addition of new scopes to "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"A interface <literal>Context</literal> suporta a adição de novos escopos a "
+"Web Beans, ou extensões dos escopos existentes para novos ambientes."
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -300,8 +311,193 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
-msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
-msgstr "Por exemplo, nós poderíamos implementar <literal>Context</literal> para adicionar um escopo de processo de negócios a Web Beans, ou para adicionar suporte ao escopo de conversação a uma aplicação que utiliza o Wicket."
+#: extend.xml:121
+#, fuzzy, no-c-format
+msgid ""
+"For example, we might implement <literal>Context</literal> to add a business "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"Por exemplo, nós poderíamos implementar <literal>Context</literal> para "
+"adicionar um escopo de processo de negócios a Web Beans, ou para adicionar "
+"suporte ao escopo de conversação a uma aplicação que utiliza o Wicket."
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "Estendendo a Web Beans"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "A classe <literal>Bean</literal> "
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/pt-BR/extensions.po
===================================================================
--- doc/trunk/reference/pt-BR/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-13 11:28-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,46 +15,55 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
-#, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+#: extensions.xml:8
+#, fuzzy, no-c-format
+msgid "CDI extensions available as part of Weld"
 msgstr "Extensões da JSR-299 disponíveis como parte da Web Beans"
 
 #. Tag: para
-#: extensions.xml:7
-#, no-c-format
-msgid "These modules are usable on any JSR-299 implementation, not just Web Beans!"
-msgstr "Estes módulos são utilizáveis em qualquer implementação da JSR-299, e não apenas na Web Beans!"
+#: extensions.xml:11
+#, fuzzy, no-c-format
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
+msgstr ""
+"Estes módulos são utilizáveis em qualquer implementação da JSR-299, e não "
+"apenas na Web Beans!"
 
 #. Tag: title
-#: extensions.xml:15
-#, no-c-format
-msgid "Web Beans Logger"
+#: extensions.xml:17
+#, fuzzy, no-c-format
+msgid "Weld Logger"
 msgstr "Web Beans Logger"
 
 #. Tag: para
-#: extensions.xml:17
-#, no-c-format
-msgid "Adding logging to your application is now even easier with simple injection of a logger object into any JSR-299 bean. Simply annotate a org.jboss.webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an appropriate logger object will be injected into any instance of the bean."
-msgstr "Adicionar logging na sua aplicação é agora ainda mais fácil com a simples injeção de um objeto logger em qualquer bean JSR-299. Basta anotar um membro tipo org.jboss.webbeans.log.Log com <emphasis>@Logger</emphasis> e um adequado objeto logger será injetado em qualquer instância do bean."
+#: extensions.xml:19
+#, fuzzy, no-c-format
+msgid ""
+"Adding logging to your application is now even easier with simple injection "
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
+msgstr ""
+"Adicionar logging na sua aplicação é agora ainda mais fácil com a simples "
+"injeção de um objeto logger em qualquer bean JSR-299. Basta anotar um membro "
+"tipo org.jboss.webbeans.log.Log com <emphasis>@Logger</emphasis> e um "
+"adequado objeto logger será injetado em qualquer instância do bean."
 
 #. Tag: programlisting
-#: extensions.xml:25
-#, no-c-format
+#: extensions.xml:26
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class Checkout {\n"
@@ -72,25 +82,51 @@
 "}]]>"
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
-msgid "The example shows how objects can be interpolated into a message. This interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so see the JavaDoc for that class for more details. In this case, the ShoppingCart should have implemented the <emphasis>toString()</emphasis> method to produce a human readable value that is meaningful in messages. Normally, this call would have involved evaluating cart.toString() with String concatenation to produce a single String argument. Thus it was necessary to surround the call with an if-statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String concatenation if the message was not actually going to be used. However, when using @Logger injected logging, the conditional test can be left out since the object arguments are not evaluated unless the message is going to be logged."
+msgid ""
+"The example shows how objects can be interpolated into a message. This "
+"interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
+"see the JavaDoc for that class for more details. In this case, the "
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
-#, no-c-format
-msgid "You can add the Web Beans Logger to your project by including webbeans-logger.jar and webbeans-logging.jar to your project. Alternatively, express a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> Maven artifact."
-msgstr "Você pode adicionar o Web Beans Logger no seu projeto através da inclusão de webbeans-logger.jar e webbeans-logging.jar no seu projeto. Alternativamente, expressar uma dependência do artefato Maven <literal>org.jboss.webbeans:webbeans-logger</literal> ."
+#: extensions.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
+msgstr ""
+"Você pode adicionar o Web Beans Logger no seu projeto através da inclusão de "
+"webbeans-logger.jar e webbeans-logging.jar no seu projeto. Alternativamente, "
+"expressar uma dependência do artefato Maven <literal>org.jboss.webbeans:"
+"webbeans-logger</literal> ."
 
 #. Tag: para
-#: extensions.xml:51
-#, no-c-format
-msgid "If you are using Web Beans as your JSR-299 implementation, there is no need to include <literal>webbeans-logging.jar</literal> as it's already included."
-msgstr "Se você estiver utilizando a Web Beans como sua implementação da JSR-299, não há necessidade de incluir <literal>webbeans-logging.jar</literal> pois ele já está incluído."
+#: extensions.xml:46
+#, fuzzy, no-c-format
+msgid ""
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
+msgstr ""
+"Se você estiver utilizando a Web Beans como sua implementação da JSR-299, "
+"não há necessidade de incluir <literal>webbeans-logging.jar</literal> pois "
+"ele já está incluído."
 
 #~ msgid "TODO"
 #~ msgstr "TODO"
+
 #~ msgid "XSD Generator for JSR-299 XML deployment descriptors"
 #~ msgstr "Gerador XSD para descritores de implantação XML da JSR-299   "
-

Modified: doc/trunk/reference/pt-BR/gettingstarted.po
===================================================================
--- doc/trunk/reference/pt-BR/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-13 11:16-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,1925 +14,2827 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
-#, fuzzy, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "Web Beans, a Implementação de Referência da JSR-299"
+#: gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Weld"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:6
+#: gettingstarted.xml:7
 #, no-c-format
-msgid "The Web Beans is being developed at <ulink url=\"http://seamframework.org/WebBeans\">the Seam project</ulink>. You can download the latest developer release of Web Beans from the <ulink url=\"http://seamframework.org/Download\">the downloads page</ulink>."
-msgstr "A Web Beans está sendo desenvolvida no <ulink url=\"http://seamframework.org/WebBeans\">projeto Seam</ulink>. Você pode baixar a última versão da Web Beans na <ulink url=\"http://seamframework.org/Download\">página de downloads</ulink>."
+msgid ""
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:13
+#: gettingstarted.xml:16
 #, no-c-format
-msgid "Web Beans comes with a two deployable example applications: <literal>webbeans-numberguess</literal>, a war example, containing only simple beans, and <literal>webbeans-translator</literal> an ear example, containing enterprise beans. There are also two variations on the numberguess example, the tomcat example (suitable for deployment to Tomcat) and the jsf2 example, which you can use if you are running JSF2. To run the examples you'll need the following:"
-msgstr "A Web Beans vem com duas aplicações de exemplo: <literal>webbeans-numberguess</literal> - um war, contendo apenas beans simples (simple beans)  e <literal>webbeans-translator</literal>, e um ear, contendo beans corporativos (enterprise beans) -. Existem ,ainda, duas variações do exemplo numberguess: o exemplo tomcat (adequado para a implantação no Tomcat) e o exemplo jsf2, que você pode usar se estiver utilizando JSF2. Para executar os exemplos, você precisará do seguinte:"
+msgid ""
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:25
+#. Tag: title
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "a última versão da Web Beans,"
+msgid "Prerequisites"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:28
+#: gettingstarted.xml:24
 #, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.1.GA, e"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:31
-#, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
-msgstr "Apache Tomcat 6.0.x, e"
+#: gettingstarted.xml:30
+#, fuzzy, no-c-format
+msgid "the latest release of Weld, which contains the examples"
+msgstr "a última versão da Web Beans,"
 
 #. Tag: para
-#: gettingstarted.xml:34
+#: gettingstarted.xml:33
 #, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0."
+msgid "Ant 1.7.0, to build and deploy the examples"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:39
-#, no-c-format
-msgid "Using JBoss AS 5"
-msgstr "Utilizando o JBoss AS 5"
-
 #. Tag: para
-#: gettingstarted.xml:41
+#: gettingstarted.xml:36
 #, no-c-format
-msgid "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
-msgstr "Você precisará fazer o download do JBoss AS 5.0.1.GA em <ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink> e descompactá-lo. Por exemplo:\""
-
-#. Tag: programlisting
-#: gettingstarted.xml:47
-#, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:49
-#: gettingstarted.xml:177
+#: gettingstarted.xml:39
 #, no-c-format
-msgid "Next, download Web Beans from <ulink url=\"http://seamframework.org/Download\">seamframework.org</ulink>, and unzip it. For example"
-msgstr "Depois, faça o download da Web Beans em <ulink url=\"http://seamframework.org/Download\">seamframework.org</ulink> e descompacte-o. Por exemplo"
-
-#. Tag: programlisting
-#: gettingstarted.xml:55
-#: gettingstarted.xml:183
-#, no-c-format
 msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:58
-#, no-c-format
-msgid "Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>jboss.home</literal> property. For example:"
-msgstr "Em seguida, temos de dizer aos Web Beans onde o JBoss está localizado. Editar o <literal>jboss-as/build.properties</literal> e definir a propriedade <literal>jboss.home</literal>. Por exemplo:"
+#: gettingstarted.xml:42
+#, fuzzy, no-c-format
+msgid "GlassFish 3.0,"
+msgstr "Utilizando o GlassFish"
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
-#, no-c-format
-msgid "To install Web Beans, you'll need Ant 1.7.0 installed, and the <literal>ANT_HOME</literal> environment variable set. For example:"
-msgstr "Para instalar a Web Beans, você precisará do Ant 1.7.0 instalado e a variável de ambiente <literal>ANT_HOME</literal> setada. Por exemplo:"
+#: gettingstarted.xml:45
+#, fuzzy, no-c-format
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
+msgstr "Apache Tomcat 6.0.x, e"
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:48
 #, no-c-format
-msgid "JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the server."
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:53
 #, no-c-format
 msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
+#: gettingstarted.xml:58
 #, no-c-format
-msgid "Then, you can install the update. The update script will use Maven to download Web Beans automatically."
-msgstr "Então, você pode instalar a atualização. O script de atualização  utilizará o Maven para fazer o download da Web Beans automaticamente."
-
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
-"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
-"$ ant update"
 
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:64
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "Agora, você está pronto para fazer a publicação do seu primeiro exemplo!"
+msgid ""
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:92
+#: gettingstarted.xml:71
 #, no-c-format
-msgid "The build scripts for the examples offer a number of targets for JBoss AS, these are:"
-msgstr "Os scripts para criar os exemplos oferecem uma série de alvos para JBoss AS, entre eles:"
+msgid ""
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:76
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
-msgstr "<literal>ant restart</literal> - implanta o exemplo no formato explodido"
+msgid ""
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:104
-#, no-c-format
-msgid "<literal>ant explode</literal> - update an exploded example, without restarting the deployment"
-msgstr "<literal>ant explode</literal> - atualiza o exemplo explodido, sem reiniciar "
+#. Tag: title
+#: gettingstarted.xml:81
+#, fuzzy, no-c-format
+msgid "Deploying to JBoss AS"
+msgstr "Utilizando o JBoss AS 5"
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:83
 #, no-c-format
-msgid "<literal>ant deploy</literal> - deploy the example in compressed jar format"
-msgstr "<literal>ant deploy</literal> - implanta o exemplo no formato jar compactado"
+msgid ""
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:115
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - remove o exemplo do servidor"
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:120
-#, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - limpa o exemplo"
-
-#. Tag: para
-#: gettingstarted.xml:127
-#, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "Para implantar o exemplo numberguess:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"$ cd examples/numberguess\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
-msgstr "Inicializando o JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
-#, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
-msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#: gettingstarted.xml:108
+#, fuzzy, no-c-format
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.1.GA"
 
 #. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr "Se você utiliza o Windows, utilize o script <literal>run.bat</literal>."
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr ""
+"Agora, você está pronto para fazer a publicação do seu primeiro exemplo!"
 
 #. Tag: para
-#: gettingstarted.xml:145
-#: gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
-msgid "Wait for the application to deploy, and enjoy hours of fun at <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
-msgstr "Aguarde até que a aplicação seja implantada, e desfrute de horas de diversão em <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+msgid ""
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:150
-#, no-c-format
-msgid "Web Beans includes a second simple example that will translate your text into Latin. The numberguess example is a war example, and uses only simple beans; the translator example is an ear example, and includes enterprise beans, packaged in an EJB module. To try it out:"
-msgstr "Web Beans inclui um segundo exemplo simples que irá traduzir o seu texto para o Latim. O exemplo numberguess é um war e usa apenas beans simples; o exemplo translator é um exemplo ear e inclui benas corporativos, empacotados em um módulo EJB. Para experimentá-lo:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:157
-#, no-c-format
+#: gettingstarted.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
-"$ cd examples/translator\n"
+"$ cd examples/numberguess\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:121
 #, no-c-format
-msgid "Wait for the application to deploy, and visit <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
-msgstr "Aguarde até que a aplicação seja implantada, e acesse  <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:167
+#. Tag: programlisting
+#: gettingstarted.xml:125
 #, no-c-format
-msgid "Using Apache Tomcat 6.0"
-msgstr "Utilizando o Apache Tomcat 6.0"
+msgid ""
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:169
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid "You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. For example:"
-msgstr "Depois, faça o download do Tomcat 6.0.18 ou posterior em <ulink url=\"http://tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, e descompacte-o. Por exemplo"
+msgid "a Windows command window:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:175
+#: gettingstarted.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:185
+#: gettingstarted.xml:133 gettingstarted.xml:375
 #, no-c-format
-msgid "Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>tomcat.home</literal> property. For example:"
-msgstr "Em seguida, temos de dizer aos Web Beans onde o Tomcat está localizado. Editar o <literal>jboss-as/build.properties</literal> e definir a propriedade <literal>tomcat.home</literal>. Por exemplo:"
+msgid "or you can start the server using an IDE, like Eclipse."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
+#. Tag: para
+#: gettingstarted.xml:138
 #, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
+msgid ""
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:194
+#: gettingstarted.xml:145
 #, no-c-format
-msgid "The build scripts for the examples offer a number of targets for Tomcat, these are:"
-msgstr "Os scripts para criar os exemplos oferecem uma série de alvos para Tomcat. São eles:"
+msgid ""
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:152
 #, no-c-format
-msgid "<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
-msgstr "<literal>ant tomcat.restart</literal> - publica o exemplo no formato explodido"
+msgid ""
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:206
-#, no-c-format
-msgid "<literal>ant tomcat.explode</literal> - update an exploded example, without restarting the deployment"
-msgstr "<literal>ant tomcat.explode</literal> - atualiza o exemplo explodido, sem reiniciar "
+#: gettingstarted.xml:158
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
+msgstr ""
+"<literal>ant restart</literal> - implanta o exemplo no formato explodido"
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:163
 #, no-c-format
-msgid "<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar format"
-msgstr "<literal>ant tomcat.deploy</literal> - publica o exemplo no formato jar compactado"
+msgid ""
+"<literal>ant explode</literal> - update an exploded example, without "
+"restarting the deployment"
+msgstr ""
+"<literal>ant explode</literal> - atualiza o exemplo explodido, sem reiniciar "
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
-msgid "<literal>ant tomcat.undeploy</literal> - remove the example (in compressed jar format) from the server"
-msgstr "<literal>ant tomcat.deploy</literal> - publica o exemplo no formato jar compactado"
+msgid ""
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
+msgstr ""
+"<literal>ant deploy</literal> - implanta o exemplo no formato jar compactado"
 
 #. Tag: para
-#: gettingstarted.xml:222
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded format) from the server"
-msgstr "<literal>ant tomcat.undeploy</literal> - remove o exemplo do servidor"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
+msgstr "<literal>ant undeploy</literal> - remove o exemplo do servidor"
 
 #. Tag: para
-#: gettingstarted.xml:227
+#: gettingstarted.xml:178
 #, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
-msgstr "<literal>ant tomcat.clean</literal> - clean the example"
+msgid "<literal>ant clean</literal> - clean the example"
+msgstr "<literal>ant clean</literal> - limpa o exemplo"
 
 #. Tag: para
-#: gettingstarted.xml:234
+#: gettingstarted.xml:185
 #, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "Para implantar o exemplo numberguess no tomcat:"
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
-#, no-c-format
+#: gettingstarted.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"$ cd examples/translator\n"
+"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "Start Tomcat:"
-msgstr "Inicializando o Tomcat:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
+msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
-#, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
+#. Tag: para
+#: gettingstarted.xml:200
+#, fuzzy, no-c-format
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
+msgstr ""
+"Aqui nós definiremos o caminho do contexto, que nos dá uma url amigável "
+"(<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
+"localhost:8080/webbeans-translator</ulink>). ulink&gt;) ."
 
 #. Tag: para
-#: gettingstarted.xml:247
+#: gettingstarted.xml:206
 #, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
-msgstr "Se você utiliza o Windows, utilize o script <literal>startup.bat</literal>."
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
+msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
+#: gettingstarted.xml:213
+#, fuzzy, no-c-format
+msgid "Deploying to GlassFish"
 msgstr "Utilizando o GlassFish"
 
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:215
 #, no-c-format
-msgid "TODO"
-msgstr "TODO"
+msgid ""
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
+msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:266
-#, no-c-format
-msgid "The numberguess example"
-msgstr "O exemplo numberguess"
-
 #. Tag: para
-#: gettingstarted.xml:268
+#: gettingstarted.xml:221
 #, no-c-format
-msgid "In the numberguess application you get given 10 attempts to guess a number between 1 and 100. After each attempt, you will be told whether you are too high, or too low."
-msgstr "Na aplicação numberguess você terá 10 tentativas para adivinhar um número entre 1 e 100. Após cada tentativa, você será informado se você disse muito acima, ou muito abaixo."
+msgid ""
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:274
-#, no-c-format
-msgid "The numberguess example is comprised of a number of Web Beans, configuration files, and Facelet JSF pages, packaged as a war. Let's start with the configuration files."
-msgstr "O exemplo numberguess é composto de um número de Web Beans, arquivos de configuração e páginas Facelet JSF , empacotados como um war. Vamos começar com os arquivos de configuração."
-
-#. Tag: para
-#: gettingstarted.xml:280
-#, no-c-format
-msgid "All the configuration files for this example are located in <literal>WEB-INF/</literal>, which is stored in <literal>WebContent</literal> in the source tree. First, we have <literal>faces-config.xml</literal>, in which we tell JSF to use Facelets:"
-msgstr "Todos os arquivos de configuração para este exemplo estão localizados no <literal>WEB-INF/</literal>, que é armazenado no <literal>WebContent</literal> na árvore de fontes. Primeiro, temos  <literal>faces-config.xml</literal>, onde dizemos para o JSF usar o Facelets:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:231
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:233
 #, no-c-format
-msgid "There is an empty <literal>web-beans.xml</literal> file, which marks this application as a Web Beans application."
-msgstr "Existe um arquivo <literal>web-beans.xml</literal> vazio, que assinala essa aplicação como uma aplicação Web Beans."
+msgid ""
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:240
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "Finalmente no <literal>web.xml</literal>:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, fuzzy, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> </calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use Web Beans with any Servlet based web framework. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=!
 \"30\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages2\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout!
  arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.jsf</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> </calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use Web Beans with any Servlet based web framework. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"3!
 0\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout !
 arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
 
-#. Tag: para
-#: gettingstarted.xml:399
-#, no-c-format
-msgid "The example exists of 4 classes, the first two of which are binding types. First, there is the <literal>@Random</literal> binding type, used for injecting a random number:"
-msgstr "No exemplo, existem 4 classes: as duas primeiras são tipos de binding. Primeiro, há o tipo de binding <literal>@Random</literal>, utilizado para a injeção de um número aleatório:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:405
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:248
 #, no-c-format
-msgid "There is also the <literal>@MaxNumber</literal> binding type, used for injecting the maximum number that can be injected:"
-msgstr "Há também o binding type <literal>@MaxNumber</literal>, utilizado para injetar o número máximo que pode ser injetado:"
-
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
 
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:255
 #, no-c-format
-msgid "The <literal>Generator</literal> class is responsible for creating the random number, via a producer method. It also exposes the maximum possible number via a producer method:"
-msgstr "A classe <literal>Generator</literal> é responsável por criar um número aleatório, através de um método produtor. Ela também expõe o número máximo possível através de um método produtor:"
+msgid ""
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:420
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:264
 #, no-c-format
-msgid "You'll notice that the <literal>Generator</literal> is application scoped; therefore we don't get a different random each time."
-msgstr "Você perceberá que o <literal>Generator</literal> está no escopo de aplicação; portanto, não obtemos um número aleatório diferente a cada vez."
+msgid ""
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:276
 #, no-c-format
-msgid "The final Web Bean in the application is the session scoped <literal>Game</literal>."
-msgstr "O Web Bean final da aplicação é o <literal>Game</literal> em escopo de sessão."
-
-#. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
-msgid "You'll note that we've used the <literal>@Named</literal> annotation, so that we can use the bean through EL in the JSF page. Finally, we've used constructor injection to initialize the game with a random number. And of course, we need to tell the player when they've won, so we give feedback with a <literal>FacesMessage</literal>."
-msgstr "Você  notará que nós utilizamos a  anotação  <literal>@Named</literal>, para que possamos utilizar o bean através EL na página JSF. Finalmente, utilizamos injeção de construtor para inicializar o jogo com um número aleatório. E, claro, precisamos de dizer ao jogador quando ele venceu. Por isso, informaremos através do <literal>FacesMessage</literal>."
-
-#. Tag: programlisting
-#: gettingstarted.xml:440
-#, no-c-format
 msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
 
 #. Tag: title
-#: gettingstarted.xml:443
+#: gettingstarted.xml:285
 #, fuzzy, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "O exemplo numberguess para o Tomcat"
+msgid "Deploying to Apache Tomcat"
+msgstr "Utilizando o Apache Tomcat 6.0"
 
 #. Tag: para
-#: gettingstarted.xml:445
-#, fuzzy, no-c-format
-msgid "The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans should be deployed as a Web Application library in <literal>WEB-INF/lib</literal>. For your convenience we provide a single jar suitable for running Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
-msgstr "O numberguess para Tomcat difere em várias maneiras. Em primeiro lugar, Web Beans devem ser implementados como uma biblioteca de aplicação Web em <literal>WEB-INF/lib</literal>. Para sua comodidade, fornecemos um único jar adequado para executar Web Beans no Tomcat <literal>webbeans-tomcat.jar</literal>."
+#: gettingstarted.xml:287
+#, no-c-format
+msgid ""
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:291
 #, no-c-format
-msgid "Of course, you must also include JSF and EL, as well common annotations (<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
-msgstr "Claro, você também deve incluir JSF e EL, bem como anotações comuns (common annotations)  (<literal>jsr250-api.jar</literal>), que um servidor JEE inclui por padrão."
+msgid ""
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
+#: gettingstarted.xml:297
 #, fuzzy, no-c-format
-msgid "Secondly, we need to explicitly specify the servlet listener (used to boot Web Beans, and control it's interaction with requests) in <literal>web.xml</literal>:"
-msgstr "Em segundo lugar, precisamos indicar explicitamente o Tomcat servlet listener (utilizado para \"bootar\" a Web Beans, e controlar sua interação com as requisições) no  <literal>web.xml</literal>:"
+msgid ""
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
+msgstr ""
+"Depois, faça o download do Tomcat 6.0.18 ou posterior em <ulink url=\"http://"
+"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, e descompacte-"
+"o. Por exemplo"
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
+#: gettingstarted.xml:302
+#, fuzzy, no-c-format
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
+msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+
+#. Tag: para
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
 
 #. Tag: title
-#: gettingstarted.xml:472
+#: gettingstarted.xml:312
 #, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "O exemplo numberguess para o Apache Wicket"
+msgid "Deploying with Ant"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:473
+#: gettingstarted.xml:314
 #, no-c-format
-msgid "Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows you to inject into Wicket components, and also allows you to use a conversation context with Wicket. In this section, we'll walk you through the Wicket version of the numberguess example."
+msgid ""
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "tomcat.home=/Applications/apache-tomcat-6.0.18"
+
 #. Tag: para
-#: gettingstarted.xml:482
-#, no-c-format
-msgid "You may want to review the Wicket documentation at <ulink url=\"http://wicket.apache.org/\">http://wicket.apache.org/</ulink>."
-msgstr ""
+#: gettingstarted.xml:323
+#, fuzzy, no-c-format
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "Para implantar o exemplo numberguess no tomcat:"
 
 #. Tag: para
-#: gettingstarted.xml:488
+#: gettingstarted.xml:327
 #, no-c-format
-msgid "Like the previous example, the Wicket WebBeans examples make use of the <literal>webbeans-servlet</literal> module. The use of the <ulink url=\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in the Wicket community, and is chosen here as the runtime container in order to facilitate comparison between the standard Wicket examples and these examples, and also to show how the webbeans-servlet integration is not dependent upon Tomcat as the servlet container."
+msgid ""
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:499
-#, no-c-format
-msgid "These examples make use of the Eclipse IDE; instructions are also given to deploy the application from the command line."
+#. Tag: programlisting
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr "Criando o projeto Eclipse"
-
 #. Tag: para
-#: gettingstarted.xml:507
+#: gettingstarted.xml:335
 #, no-c-format
-msgid "To generate an Eclipse project from the example:"
+msgid ""
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:511
-#, no-c-format
+#. Tag: para
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
 msgstr ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"<literal>ant tomcat.restart</literal> - publica o exemplo no formato "
+"explodido"
 
 #. Tag: para
-#: gettingstarted.xml:513
+#: gettingstarted.xml:346
 #, no-c-format
-msgid "Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing Projects into Workspace</emphasis>, select the root directory of the numberguess example, and click finish. Note that if you do not intend to run the example with jetty from within eclipse, omit the \"-Pjetty.\" This will create a project in your workspace called <literal>webbeans-wicket-numberguess</literal>"
+msgid ""
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
+"<literal>ant tomcat.explode</literal> - atualiza o exemplo explodido, sem "
+"reiniciar "
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
+#. Tag: para
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
 msgstr ""
+"<literal>ant tomcat.deploy</literal> - publica o exemplo no formato jar "
+"compactado"
 
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - remove o exemplo do servidor"
+
+#. Tag: para
+#: gettingstarted.xml:363
 #, no-c-format
-msgid "This project follows the <literal>wicket-quickstart</literal> approach of creating an instance of Jetty in the <literal>Start</literal> class. So running the example is as simple as right-clicking on that Start class in <literal>src/test/java</literal> in the <emphasis>Package Explorer</emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You should see console output related to Jetty starting up; then visit able <literal>http://localhost:8080</literal> to view the app. To debug choose <emphasis>Debug as Java Application</emphasis>."
+msgid ""
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
+#. Tag: programlisting
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
+
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:548
+#: gettingstarted.xml:379
 #, no-c-format
-msgid "This example can also be deployed from the command line in a (similar to the other examples). Assuming you have set up the <literal>build.properties</literal> file in the <literal>examples</literal> directory to specify the location of JBoss AS or Tomcat, as previously described, you can run <literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</literal> directory, and access the application at <literal>http://localhost:8080/webbeans-numberguess-wicket</literal>."
+msgid ""
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:562
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "Understanding the code"
-msgstr "Entendendo o código"
+msgid "Deploying with Maven"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:564
+#: gettingstarted.xml:390
 #, no-c-format
-msgid "JSF uses Unified EL expressions to bind view layer components in JSP or Facelet views to beans, Wicket defines it's components in Java. The markup is plain html with a one-to-one mapping between html elements and the view components. All view logic, including binding of components to models and controlling the response of view actions, is handled in Java. The integration of Web Beans with Wicket takes advantage of the same binding annotations used in your business layer to provide injection into your WebPage subclass (or into other custom wicket component subclasses)."
+msgid ""
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:576
+#: gettingstarted.xml:396
 #, no-c-format
-msgid "The code in the wicket numberguess example is very similar to the JSF-based numberguess example. The business layer is identical!"
+msgid ""
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:581
+#: gettingstarted.xml:403
 #, no-c-format
-msgid "Differences are:"
-msgstr "Diferenças são:"
-
-#. Tag: para
-#: gettingstarted.xml:586
-#, no-c-format
-msgid "Each wicket application must have a <literal>WebApplication</literal> subclass, In our case, our application class is <literal>SampleApplication</literal>:"
+msgid ""
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:593
+#: gettingstarted.xml:410
 #, no-c-format
-msgid "This class specifies which page wicket should treat as our home page, in our case, <literal>HomePage.class</literal>"
+msgid ""
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:599
+#. Tag: programlisting
+#: gettingstarted.xml:414
 #, no-c-format
-msgid "In <literal>HomePage</literal> we see typical wicket code to set up page elements. The bit that is interesting is the injection of the <literal>Game</literal> bean:"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:605
-#, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
-msgstr "<![CDATA[ @Current Game game;]]>"
-
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:416
 #, no-c-format
-msgid "The <literal>Game</literal> bean is can then be used, for example, by the code for submitting a guess:"
+msgid ""
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:612
+#: gettingstarted.xml:420
 #, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
 msgstr ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
 
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:422
 #, no-c-format
-msgid "All injections may be serialized; actual storage of the bean is managed by JSR-299. Note that Wicket components, like the HomePage and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgid ""
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:427
 #, no-c-format
-msgid "Wicket components allow injection, but they <emphasis>cannot</emphasis> use interceptors, decorators and lifecycle callbacks such as <literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+msgid ""
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid "The example uses AJAX for processing of button events, and dynamically hides buttons that are no longer relevant, for example when the user has won the game."
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:434
 #, no-c-format
-msgid "In order to activate wicket for this webapp, the Wicket filter is added to web.xml, and our application class is specified:"
+msgid ""
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:441
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\n"
-"</listener>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:443
 #, no-c-format
-msgid "Note that the servlet listener is also added, as in the Tomcat example, in order to boostrap Web Beans when Jetty starts, and to hook Web Beans into the Jetty servlet request and session lifecycles."
+msgid ""
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:658
+#: gettingstarted.xml:453
 #, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "O exemplo numberguess para o Java SE com Swing"
+msgid "Deploying to Jetty"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:457
 #, no-c-format
-msgid "This example can be found in the <literal>examples/se/numberguess</literal> folder of the Web Beans distribution."
+msgid ""
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
+#: gettingstarted.xml:464
 #, no-c-format
-msgid "To run this example:"
-msgstr "Para rodar esse exemplo:"
-
-#. Tag: para
-#: gettingstarted.xml:673
-#, no-c-format
-msgid "Open a command line/terminal window in the <literal>examples/se/numberguess</literal> directory"
+msgid ""
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:679
+#: gettingstarted.xml:470
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid ""
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:479
 #, no-c-format
-msgid "Ensure that the <literal>JAVA_HOME</literal> environment variable is pointing to your JDK installation"
+msgid ""
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr "execute o seguinte comando"
-
 #. Tag: programlisting
-#: gettingstarted.xml:693
-#, no-c-format
-msgid "mvn -Drun"
-msgstr "mvn -Drun"
-
-#. Tag: para
-#: gettingstarted.xml:699
+#: gettingstarted.xml:485
 #, fuzzy, no-c-format
-msgid "There is an empty <literal>beans.xml</literal> file in the root package (<literal>src/main/resources/beans.xml</literal>), which marks this application as a Web Beans application."
-msgstr "Existe um arquivo <literal>web-beans.xml</literal> vazio, que assinala essa aplicação como uma aplicação Web Beans."
+msgid ""
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
+msgstr ""
+"<![CDATA[cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
 
 #. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:487
 #, no-c-format
-msgid "The game's main logic is located in <literal>Game.java</literal>. Here is the code for that class, highlighting the changes made from the web application version:"
+msgid ""
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
+#. Tag: para
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id=\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id=\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The bean is application scoped instead of session scoped, since an instance of the application represents a single 'session'. </para> </callout> <callout arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</literal> to add messages to. Instead the <literal>Game</literal> class provides additional information about the state of the current game including: </para> <itemizedlist> <listitem> <para> If the game has been won or lost </para> </listitem> <listitem> <para> If the most recent guess was invalid </para> </listitem> </itemizedlist> <para> This allows the Swing UI to query the state of the game, which it does indirectly via a class called <literal>MessageGenerator,</literal> in order to determine the appropriate messages to display to the user during the game. </p!
 ara> </callout> <callout arearefs=\"validation\"> <para> Validation of user input is performed during the <literal>check()</literal> method, since there is no dedicated validation phase </para> </callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a call to the injected <literal>rndGenerator</literal> in order to get the random number at the start of each game. It cannot use <literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})</literal> as the JSF example does because there will not be any active contexts like there is during a JSF request. </para> </callout> </calloutlist> </programlistingco> <para> The <literal>MessageGenerator</literal> class depends on the current instance of <literal>Game</literal>, and queries its state in order to determine the appropriate messages to provide as the prompt for the user's next guess and the response to the previous guess. The code for <literal>MessageGenerator<!
 /literal> is as follows: </para> <programlistingco> <areaspec>!
  <area i
d=\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The instance of <literal>Game</literal> for the application is injected here. </para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</literal>'s state is interrogated to determine the appropriate challenge message. </para> </callout> <callout arearefs=\"result\"> <para> And again to determine whether to congratulate, console or encourage the user to continue. </para> </callout> </calloutlist> </programlistingco> <para> Finally we come to the <literal>NumberGuessFrame</literal> class which provides the Swing front end to our guessing game. </para> <programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public cl!
 ass NumberGuessFrame  extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The injected instance of the game (logic and state). </para> </callout> <callout arearefs=\"messagesIn\"> <para> The injected message generator for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> This application is started in the usual Web Beans SE way, by observing the <literal>@Deployed Manager</literal> event. </para> </callout> <callout arearefs=\"init\"> <para> This method initialises all of the Swing components. Note the use of the <literal>msgGenerator</literal>. </para> </callout> <callout arearefs=\"guess1\"> <para> <literal>guessButtonActionPerformed</literal> is called when the 'Guess' button is clicked, and it does the following: </para> <itemizedlist> <listitem> <para> Gets the guess entered by the user and sets it as the current guess in the <literal>Game</literal> </para> </listitem> <listitem> <para> Calls <literal>game.check()</literal> to validate and perform one!
  'turn' of the game </para> </listitem> <listitem> <para> Calls <literal>refreshUI</literal>. If there were validation errors with the input, this will have been captured during <literal>game.check()</literal> and as such will be reflected in the messeges returned by <literal>MessageGenerator</literal> and subsequently presented to the user. If there are no validation errors then the user will be told to guess again (higher or lower) or that the game has ended either in a win (correct guess) or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </callout> <callout arearefs=\"replay\"> <para> <literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset()</literal> to start a new game and refreshes the messages in the UI. </para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> to update the messages to the user based on the current state of the Game. </para> </callout> </c!
 alloutlist> </programlistingco>"
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id=\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id=\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The bean is application scoped instead of session scoped, since an instance of the application represents a single 'session'. </para> </callout> <callout arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</literal> to add messages to. Instead the <literal>Game</literal> class provides additional information about the state of the current game including: </para> <itemizedlist> <listitem> <para> If the game has been won or lost </para> </listitem> <listitem> <para> If the most recent guess was invalid </para> </listitem> </itemizedlist> <para> This allows the Swing UI to query the state of the game, which it does indirectly via a class called <literal>MessageGenerator,</literal> in order to determine the appropriate messages to display to the user during the game. </p!
 ara> </callout> <callout arearefs=\"validation\"> <para> Validation of user input is performed during the <literal>check()</literal> method, since there is no dedicated validation phase </para> </callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a call to the injected <literal>rndGenerator</literal> in order to get the random number at the start of each game. It cannot use <literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})</literal> as the JSF example does because there will not be any active contexts like there is during a JSF request. </para> </callout> </calloutlist> </programlistingco> <para> The <literal>MessageGenerator</literal> class depends on the current instance of <literal>Game</literal>, and queries its state in order to determine the appropriate messages to provide as the prompt for the user's next guess and the response to the previous guess. The code for <literal>MessageGenerator<!
 /literal> is as follows: </para> <programlistingco> <areaspec>!
  <area i
d=\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The instance of <literal>Game</literal> for the application is injected here. </para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</literal>'s state is interrogated to determine the appropriate challenge message. </para> </callout> <callout arearefs=\"result\"> <para> And again to determine whether to congratulate, console or encourage the user to continue. </para> </callout> </calloutlist> </programlistingco> <para> Finally we come to the <literal>NumberGuessFrame</literal> class which provides the Swing front end to our guessing game. </para> <programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public cl!
 ass NumberGuessFrame  extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The injected instance of the game (logic and state). </para> </callout> <callout arearefs=\"messagesIn\"> <para> The injected message generator for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> This application is started in the usual Web Beans SE way, by observing the <literal>@Deployed Manager</literal> event. </para> </callout> <callout arearefs=\"init\"> <para> This method initialises all of the Swing components. Note the use of the <literal>msgGenerator</literal>. </para> </callout> <callout arearefs=\"guess1\"> <para> <literal>guessButtonActionPerformed</literal> is called when the 'Guess' button is clicked, and it does the following: </para> <itemizedlist> <listitem> <para> Gets the guess entered by the user and sets it as the current guess in the <literal>Game</literal> </para> </listitem> <listitem> <para> Calls <literal>game.check()</literal> to validate and perform one!
  'turn' of the game </para> </listitem> <listitem> <para> Calls <literal>refreshUI</literal>. If there were validation errors with the input, this will have been captured during <literal>game.check()</literal> and as such will be reflected in the messeges returned by <literal>MessageGenerator</literal> and subsequently presented to the user. If there are no validation errors then the user will be told to guess again (higher or lower) or that the game has ended either in a win (correct guess) or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </callout> <callout arearefs=\"replay\"> <para> <literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset()</literal> to start a new game and refreshes the messages in the UI. </para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> to update the messages to the user based on the current state of the Game. </para> </callout> </c!
 alloutlist> </programlistingco>"
 
-#. Tag: title
-#: gettingstarted.xml:917
+#. Tag: programlisting
+#: gettingstarted.xml:501
 #, no-c-format
-msgid "The translator example"
-msgstr "O exemplo translator"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:503
 #, no-c-format
-msgid "The translator example will take any sentences you enter, and translate them to Latin."
-msgstr "O exemplo translator pegará qualquer frase que você fornecer e a  traduzirá para o Latim."
+msgid ""
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:510
 #, no-c-format
-msgid "The translator example is built as an ear, and contains EJBs. As a result, it's structure is more complex than the numberguess example."
-msgstr "O exemplo translator é construído como um ear e contém EJBs. Como resultado, a sua estrutura é mais complexa do que o exemplo numberguess."
+msgid ""
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:930
-#, no-c-format
-msgid "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make this structure much simpler!"
-msgstr "EJB 3.1 e Java EE 6 permitem a você empacotar EJBs em um war, o que tornará esta estrutura muito mais simples!"
+#: gettingstarted.xml:516
+#, fuzzy, no-c-format
+msgid "First, initialize the Eclipse project:"
+msgstr "Criando o projeto Eclipse"
 
-#. Tag: para
-#: gettingstarted.xml:936
-#, no-c-format
-msgid "First, let's take a look at the ear aggregator, which is located in <literal>webbeans-translator-ear</literal> module. Maven automatically generates the <literal>application.xml</literal> for us:"
-msgstr "Primeiro, vamos dar uma olhada no ear aggregator, que está localizado módulo <literal>webbeans-translator-ear</literal>. Maven gera automaticamente o<literal>application.xml</literal> para nós:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:942
+#: gettingstarted.xml:520
 #, no-c-format
-msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:522
 #, no-c-format
-msgid "Here we set the context path, which gives us a nice url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>)."
-msgstr "Aqui nós definiremos o caminho do contexto, que nos dá uma url amigável (<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>). ulink&gt;) ."
+msgid ""
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:950
-#, no-c-format
-msgid "If you aren't using Maven to generate these files, you would need <literal>META-INF/application.xml</literal>:"
-msgstr "Se você não está usando o Maven para gerar esses arquivos, você precisaria <literal>META-INF/application.xml</literal>:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:526
 #, 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 http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![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 http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
+#: gettingstarted.xml:528
 #, no-c-format
-msgid "Next, lets look at the war. Just as in the numberguess example, we have a <literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr "Em seguida, vamos ver o war. Tal como no exemplo numberguess, temos um <literal>faces-config.xml</literal> (para habilitar o Facelets) e um <literal>web.xml</literal> (para habilitar o JSF) no <literal>WebContent/WEB-INF</literal>."
+msgid ""
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:536
 #, no-c-format
-msgid "More intersting is the facelet used to translate text. Just as in the numberguess example we have a template, which surrounds the form (ommitted here for brevity):"
-msgstr "Mais interessante é o facelet utilizado para traduzir texto. Tal como no exemplo numberguess, temos um template, que envolve o formulário (omitido aqui por brevitude):"
-
-#. Tag: programlisting
-#: gettingstarted.xml:971
-#, no-c-format
 msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
 
-#. Tag: para
-#: gettingstarted.xml:973
-#, no-c-format
-msgid "The user can enter some text in the lefthand textarea, and hit the translate button to see the result to the right."
-msgstr "O usuário pode digitar um texto no textarea esquerdo e clicar no botão traduzir para ver o resultado à direita."
+#, fuzzy
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "Web Beans, a Implementação de Referência da JSR-299"
 
-#. Tag: para
-#: gettingstarted.xml:978
-#, no-c-format
-msgid "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</literal>. In <literal>src/main/resources/META-INF</literal> there is just an empty <literal>web-beans.xml</literal>, used to mark the archive as containing Web Beans."
-msgstr "Por fim, vamos olhar  o módulo EJB <literal>webbeans-translator-ejb</literal>. Em <literal>src/main/resources/META-INF</literal> existe apenas um <literal>web-beans.xml</literal> vazio, utilizado para marcar o arquivo como contendo Web Beans."
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "A Web Beans está sendo desenvolvida no <ulink url=\"http://seamframework."
+#~ "org/WebBeans\">projeto Seam</ulink>. Você pode baixar a última versão da "
+#~ "Web Beans na <ulink url=\"http://seamframework.org/Download\">página de "
+#~ "downloads</ulink>."
 
-#. Tag: para
-#: gettingstarted.xml:986
-#, no-c-format
-msgid "We've saved the most interesting bit to last, the code! The project has two simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</literal> and two enterprise beans, <literal>TranslatorControllerBean</literal> and <literal>SentenceTranslator</literal>. You should be getting quite familiar with what a Web Bean looks like by now, so we'll just highlight the most interesting bits here."
-msgstr "Deixamos o pedaço mais interessante para o final: o código! O projeto tem dois beans simples, <literal>SentenceParser</literal> e <literal>TextTranslator</literal> e dois beans corporativos<literal>TranslatorControllerBean</literal> e <literal>SentenceTranslator</literal>. Você deve estar bastante familiarizado com o que um Web Bean parece até agora. Então, vamos apenas destacar as partes mais interessantes aqui."
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "A Web Beans vem com duas aplicações de exemplo: <literal>webbeans-"
+#~ "numberguess</literal> - um war, contendo apenas beans simples (simple "
+#~ "beans)  e <literal>webbeans-translator</literal>, e um ear, contendo "
+#~ "beans corporativos (enterprise beans) -. Existem ,ainda, duas variações "
+#~ "do exemplo numberguess: o exemplo tomcat (adequado para a implantação no "
+#~ "Tomcat) e o exemplo jsf2, que você pode usar se estiver utilizando JSF2. "
+#~ "Para executar os exemplos, você precisará do seguinte:"
 
-#. Tag: para
-#: gettingstarted.xml:996
-#, no-c-format
-msgid "Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> are dependent beans, and <literal>TextTranslator</literal> uses constructor initialization:"
-msgstr "Tanto <literal>SentenceParser</literal> quanto <literal>TextTranslator</literal> são beans dependentes, e <literal>TextTranslator</literal> usa inicialização por construtor :"
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.1.GA, e"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1002
-#, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
-msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0."
 
-#. Tag: para
-#: gettingstarted.xml:1004
-#, no-c-format
-msgid "<literal>TextTranslator</literal> is a stateless bean (with a local business interface), where the magic happens - of course, we couldn't develop a full translator, but we gave it a good go!"
-msgstr "<literal>TextTranslator</literal> é um bean stateless (com uma interface de negócios local), onde a mágica acontece . Obviamente, não poderíamos desenvolver um tradutor completo, mas lhe demos um bom caminho!"
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "Você precisará fazer o download do JBoss AS 5.0.1.GA em <ulink url="
+#~ "\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink> e "
+#~ "descompactá-lo. Por exemplo:\""
 
-#. Tag: para
-#: gettingstarted.xml:1010
-#, no-c-format
-msgid "Finally, there is UI orientated controller, that collects the text from the user, and dispatches it to the translator. This is a request scoped, named, stateful session bean, which injects the translator."
-msgstr "Finalmente, há um controlador orientado à interface, que recolhe o texto do usuário e despacha para o tradutor. Esse é um escopo de requisição, com o nome, stateful session bean, que injeta o tradutor."
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "Depois, faça o download da Web Beans em <ulink url=\"http://seamframework."
+#~ "org/Download\">seamframework.org</ulink> e descompacte-o. Por exemplo"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr "O bean também tem getters e setters para todos os campos da página."
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr "Como esse é um stateful session bean, temos de ter um método de remoção:"
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Em seguida, temos de dizer aos Web Beans onde o JBoss está localizado. "
+#~ "Editar o <literal>jboss-as/build.properties</literal> e definir a "
+#~ "propriedade <literal>jboss.home</literal>. Por exemplo:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "Para instalar a Web Beans, você precisará do Ant 1.7.0 instalado e a "
+#~ "variável de ambiente <literal>ANT_HOME</literal> setada. Por exemplo:"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid "The Web Beans manager will call the remove method for you when the bean is destroyed; in this case at the end of the request."
-msgstr "O gerenciador do Web Beans chamará o método remover para você quando o bean for destruído - neste caso, no final da requisição."
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, no-c-format
-msgid "That concludes our short tour of the Web Beans examples. For more on Web Beans , or to help out, please visit <ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
-msgstr "Está encerrado o nosso curto passeio pelos exemplos de Web Beans. Para mais informações sobre a Web Beans, ou para ajudar, por favor visite <ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
+#~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "Então, você pode instalar a atualização. O script de atualização  "
+#~ "utilizará o Maven para fazer o download da Web Beans automaticamente."
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid "We need help in all areas - bug fixing, writing new features, writing examples and translating this reference guide."
-msgstr "Precisamos de ajuda em todas as áreas - correção de bugs, escrita de novas funcionalidades, escrita de exemplos e tradução deste guia de referência."
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+#~ "$ ant update"
 
 #~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr ""
+#~ "Os scripts para criar os exemplos oferecem uma série de alvos para JBoss "
+#~ "AS, entre eles:"
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "Para implantar o exemplo numberguess:"
+
+#~ msgid "Start JBoss AS:"
+#~ msgstr "Inicializando o JBoss AS:"
+
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+
+#~ msgid "If you use Windows, use the <literal>run.bat</literal>script."
+#~ msgstr ""
+#~ "Se você utiliza o Windows, utilize o script <literal>run.bat</literal>."
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "Aguarde até que a aplicação seja implantada, e desfrute de horas de "
+#~ "diversão em <ulink url=\"http://localhost:8080/webbeans-numberguess\"></"
+#~ "ulink>!"
+
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Web Beans inclui um segundo exemplo simples que irá traduzir o seu texto "
+#~ "para o Latim. O exemplo numberguess é um war e usa apenas beans simples; "
+#~ "o exemplo translator é um exemplo ear e inclui benas corporativos, "
+#~ "empacotados em um módulo EJB. Para experimentá-lo:"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "Aguarde até que a aplicação seja implantada, e acesse  <ulink url="
+#~ "\"http://localhost:8080/webbeans-translator\"></ulink>!"
+
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "Em seguida, temos de dizer aos Web Beans onde o Tomcat está localizado. "
+#~ "Editar o <literal>jboss-as/build.properties</literal> e definir a "
+#~ "propriedade <literal>tomcat.home</literal>. Por exemplo:"
+
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr ""
+#~ "Os scripts para criar os exemplos oferecem uma série de alvos para "
+#~ "Tomcat. São eles:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.deploy</literal> - publica o exemplo no formato jar "
+#~ "compactado"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove o exemplo do servidor"
+
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant tomcat.clean</literal> - clean the example"
+
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+
+#~ msgid "Start Tomcat:"
+#~ msgstr "Inicializando o Tomcat:"
+
+#~ msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#~ msgstr ""
+#~ "Se você utiliza o Windows, utilize o script <literal>startup.bat</"
+#~ "literal>."
+
+#~ msgid "TODO"
+#~ msgstr "TODO"
+
+#~ msgid "The numberguess example"
+#~ msgstr "O exemplo numberguess"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "Na aplicação numberguess você terá 10 tentativas para adivinhar um número "
+#~ "entre 1 e 100. Após cada tentativa, você será informado se você disse "
+#~ "muito acima, ou muito abaixo."
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "O exemplo numberguess é composto de um número de Web Beans, arquivos de "
+#~ "configuração e páginas Facelet JSF , empacotados como um war. Vamos "
+#~ "começar com os arquivos de configuração."
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "Todos os arquivos de configuração para este exemplo estão localizados no "
+#~ "<literal>WEB-INF/</literal>, que é armazenado no <literal>WebContent</"
+#~ "literal> na árvore de fontes. Primeiro, temos  <literal>faces-config.xml</"
+#~ "literal>, onde dizemos para o JSF usar o Facelets:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Existe um arquivo <literal>web-beans.xml</literal> vazio, que assinala "
+#~ "essa aplicação como uma aplicação Web Beans."
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "Finalmente no <literal>web.xml</literal>:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.jsf</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> "
+#~ "<area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/> "
+#~ "<area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "No exemplo, existem 4 classes: as duas primeiras são tipos de binding. "
+#~ "Primeiro, há o tipo de binding <literal>@Random</literal>, utilizado para "
+#~ "a injeção de um número aleatório:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "Há também o binding type <literal>@MaxNumber</literal>, utilizado para "
+#~ "injetar o número máximo que pode ser injetado:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "A classe <literal>Generator</literal> é responsável por criar um número "
+#~ "aleatório, através de um método produtor. Ela também expõe o número "
+#~ "máximo possível através de um método produtor:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "Você perceberá que o <literal>Generator</literal> está no escopo de "
+#~ "aplicação; portanto, não obtemos um número aleatório diferente a cada vez."
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "O Web Bean final da aplicação é o <literal>Game</literal> em escopo de "
+#~ "sessão."
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "Você  notará que nós utilizamos a  anotação  <literal>@Named</literal>, "
+#~ "para que possamos utilizar o bean através EL na página JSF. Finalmente, "
+#~ "utilizamos injeção de construtor para inicializar o jogo com um número "
+#~ "aleatório. E, claro, precisamos de dizer ao jogador quando ele venceu. "
+#~ "Por isso, informaremos através do <literal>FacesMessage</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "O exemplo numberguess para o Tomcat"
+
+#, fuzzy
+#~ msgid ""
+#~ "The numberguess for Tomcat differs in a couple of ways. Firstly, Web "
+#~ "Beans should be deployed as a Web Application library in <literal>WEB-INF/"
+#~ "lib</literal>. For your convenience we provide a single jar suitable for "
+#~ "running Web Beans in any servlet container <literal>webbeans-servlet.jar</"
+#~ "literal>."
+#~ msgstr ""
+#~ "O numberguess para Tomcat difere em várias maneiras. Em primeiro lugar, "
+#~ "Web Beans devem ser implementados como uma biblioteca de aplicação Web em "
+#~ "<literal>WEB-INF/lib</literal>. Para sua comodidade, fornecemos um único "
+#~ "jar adequado para executar Web Beans no Tomcat <literal>webbeans-tomcat."
+#~ "jar</literal>."
+
+#~ msgid ""
+#~ "Of course, you must also include JSF and EL, as well common annotations "
+#~ "(<literal>jsr250-api.jar</literal>) which a JEE server includes by "
+#~ "default."
+#~ msgstr ""
+#~ "Claro, você também deve incluir JSF e EL, bem como anotações comuns "
+#~ "(common annotations)  (<literal>jsr250-api.jar</literal>), que um "
+#~ "servidor JEE inclui por padrão."
+
+#, fuzzy
+#~ msgid ""
+#~ "Secondly, we need to explicitly specify the servlet listener (used to "
+#~ "boot Web Beans, and control it's interaction with requests) in "
+#~ "<literal>web.xml</literal>:"
+#~ msgstr ""
+#~ "Em segundo lugar, precisamos indicar explicitamente o Tomcat servlet "
+#~ "listener (utilizado para \"bootar\" a Web Beans, e controlar sua "
+#~ "interação com as requisições) no  <literal>web.xml</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "O exemplo numberguess para o Apache Wicket"
+
+#~ msgid "Understanding the code"
+#~ msgstr "Entendendo o código"
+
+#~ msgid "Differences are:"
+#~ msgstr "Diferenças são:"
+
+#~ msgid ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+#~ "   @Override\n"
+#~ "   public Class getHomePage() {\n"
+#~ "      return HomePage.class;\n"
+#~ "   }\n"
+#~ "}]]>"
+
+#~ msgid "<![CDATA[ @Current Game game;]]>"
+#~ msgstr "<![CDATA[ @Current Game game;]]>"
+
+#~ msgid ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+#~ msgstr ""
+#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
+#~ "{ \n"
+#~ "   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+#~ "      if (game.check()) {]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+#~ "class>\n"
+#~ "   <init-param>\n"
+#~ "      <param-name>applicationClassName</param-name>\n"
+#~ "      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
+#~ "param-value>\n"
+#~ "   </init-param>\n"
+#~ "</filter>\n"
+#~ "\n"
+#~ "<filter-mapping>\n"
+#~ "   <filter-name>wicket.numberguess-example</filter-name>\n"
+#~ "   <url-pattern>/*</url-pattern>\n"
+#~ "</filter-mapping>\n"
+#~ " \n"
+#~ "<listener>\n"
+#~ "   <listener-class>org.jboss.webbeans.environment.servlet.Listener</"
+#~ "listener-class>\n"
+#~ "</listener>]]>"
+
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "O exemplo numberguess para o Java SE com Swing"
+
+#~ msgid "To run this example:"
+#~ msgstr "Para rodar esse exemplo:"
+
+#~ msgid "execute the following command"
+#~ msgstr "execute o seguinte comando"
+
+#~ msgid "mvn -Drun"
+#~ msgstr "mvn -Drun"
+
+#, fuzzy
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "Existe um arquivo <literal>web-beans.xml</literal> vazio, que assinala "
+#~ "essa aplicação como uma aplicação Web Beans."
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> "
+#~ "The bean is application scoped instead of session scoped, since an "
+#~ "instance of the application represents a single 'session'. </para> </"
+#~ "callout> <callout arearefs=\"name\"> <para> The bean is not named, since "
+#~ "it doesn't need to be accessed via EL </para> </callout> <callout "
+#~ "arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</"
+#~ "literal> to add messages to. Instead the <literal>Game</literal> class "
+#~ "provides additional information about the state of the current game "
+#~ "including: </para> <itemizedlist> <listitem> <para> If the game has been "
+#~ "won or lost </para> </listitem> <listitem> <para> If the most recent "
+#~ "guess was invalid </para> </listitem> </itemizedlist> <para> This allows "
+#~ "the Swing UI to query the state of the game, which it does indirectly via "
+#~ "a class called <literal>MessageGenerator,</literal> in order to determine "
+#~ "the appropriate messages to display to the user during the game. </para> "
+#~ "</callout> <callout arearefs=\"validation\"> <para> Validation of user "
+#~ "input is performed during the <literal>check()</literal> method, since "
+#~ "there is no dedicated validation phase </para> </callout> <callout "
+#~ "arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a "
+#~ "call to the injected <literal>rndGenerator</literal> in order to get the "
+#~ "random number at the start of each game. It cannot use <literal>manager."
+#~ "getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})"
+#~ "</literal> as the JSF example does because there will not be any active "
+#~ "contexts like there is during a JSF request. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+#~ "literal> class depends on the current instance of <literal>Game</"
+#~ "literal>, and queries its state in order to determine the appropriate "
+#~ "messages to provide as the prompt for the user's next guess and the "
+#~ "response to the previous guess. The code for <literal>MessageGenerator</"
+#~ "literal> is as follows: </para> <programlistingco> <areaspec> <area id="
+#~ "\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id="
+#~ "\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> "
+#~ "The instance of <literal>Game</literal> for the application is injected "
+#~ "here. </para> </callout> <callout arearefs=\"challenge\"> <para> The "
+#~ "<literal>Game</literal>'s state is interrogated to determine the "
+#~ "appropriate challenge message. </para> </callout> <callout arearefs="
+#~ "\"result\"> <para> And again to determine whether to congratulate, "
+#~ "console or encourage the user to continue. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> Finally we come to the "
+#~ "<literal>NumberGuessFrame</literal> class which provides the Swing front "
+#~ "end to our guessing game. </para> <programlistingco> <areaspec> <area id="
+#~ "\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id="
+#~ "\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "The injected instance of the game (logic and state). </para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> The injected message generator "
+#~ "for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "This application is started in the usual Web Beans SE way, by observing "
+#~ "the <literal>@Deployed Manager</literal> event. </para> </callout> "
+#~ "<callout arearefs=\"init\"> <para> This method initialises all of the "
+#~ "Swing components. Note the use of the <literal>msgGenerator</literal>. </"
+#~ "para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+#~ "button is clicked, and it does the following: </para> <itemizedlist> "
+#~ "<listitem> <para> Gets the guess entered by the user and sets it as the "
+#~ "current guess in the <literal>Game</literal> </para> </listitem> "
+#~ "<listitem> <para> Calls <literal>game.check()</literal> to validate and "
+#~ "perform one 'turn' of the game </para> </listitem> <listitem> <para> "
+#~ "Calls <literal>refreshUI</literal>. If there were validation errors with "
+#~ "the input, this will have been captured during <literal>game.check()</"
+#~ "literal> and as such will be reflected in the messeges returned by "
+#~ "<literal>MessageGenerator</literal> and subsequently presented to the "
+#~ "user. If there are no validation errors then the user will be told to "
+#~ "guess again (higher or lower) or that the game has ended either in a win "
+#~ "(correct guess) or a loss (ran out of guesses). </para> </listitem> </"
+#~ "itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal> simply calls <literal>game."
+#~ "reset()</literal> to start a new game and refreshes the messages in the "
+#~ "UI. </para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> "
+#~ "to update the messages to the user based on the current state of the "
+#~ "Game. </para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+#~ "\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+#~ "\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
+#~ "areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+#~ "public class Game implements Serializable\n"
+#~ "{\n"
+#~ "\n"
+#~ "    private int number;\n"
+#~ "    private int guess;\n"
+#~ "    private int smallest;\n"
+#~ "\n"
+#~ "    @MaxNumber\n"
+#~ "    private int maxNumber;\n"
+#~ "\n"
+#~ "    private int biggest;\n"
+#~ "    private int remainingGuesses;\n"
+#~ "    private boolean validNumberRange = true;\n"
+#~ "\n"
+#~ "    @Current Generator rndGenerator;\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "\n"
+#~ "    public boolean isValidNumberRange()\n"
+#~ "    {\n"
+#~ "        return validNumberRange;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameWon()\n"
+#~ "    {\n"
+#~ "        return guess == number;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean isGameLost()\n"
+#~ "    {\n"
+#~ "        return guess != number && remainingGuesses <= 0;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public boolean check()\n"
+#~ "    {\n"
+#~ "        boolean result = false;\n"
+#~ "\n"
+#~ "        if ( checkNewNumberRangeIsValid() )\n"
+#~ "        {\n"
+#~ "            if ( guess > number )\n"
+#~ "            {\n"
+#~ "                biggest = guess - 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess < number )\n"
+#~ "            {\n"
+#~ "                smallest = guess + 1;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            if ( guess == number )\n"
+#~ "            {\n"
+#~ "                result = true;\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            remainingGuesses--;\n"
+#~ "        }\n"
+#~ "\n"
+#~ "        return result;\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private boolean checkNewNumberRangeIsValid()\n"
+#~ "    {\n"
+#~ "        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
+#~ "biggest ) );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    @PostConstruct\n"
+#~ "    public void reset()\n"
+#~ "    {\n"
+#~ "        this.smallest = 0;\n"
+#~ "        ...\n"
+#~ "        this.number = rndGenerator.next();\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> "
+#~ "The bean is application scoped instead of session scoped, since an "
+#~ "instance of the application represents a single 'session'. </para> </"
+#~ "callout> <callout arearefs=\"name\"> <para> The bean is not named, since "
+#~ "it doesn't need to be accessed via EL </para> </callout> <callout "
+#~ "arearefs=\"messages1\"> <para> There is no JSF <literal>FacesContext</"
+#~ "literal> to add messages to. Instead the <literal>Game</literal> class "
+#~ "provides additional information about the state of the current game "
+#~ "including: </para> <itemizedlist> <listitem> <para> If the game has been "
+#~ "won or lost </para> </listitem> <listitem> <para> If the most recent "
+#~ "guess was invalid </para> </listitem> </itemizedlist> <para> This allows "
+#~ "the Swing UI to query the state of the game, which it does indirectly via "
+#~ "a class called <literal>MessageGenerator,</literal> in order to determine "
+#~ "the appropriate messages to display to the user during the game. </para> "
+#~ "</callout> <callout arearefs=\"validation\"> <para> Validation of user "
+#~ "input is performed during the <literal>check()</literal> method, since "
+#~ "there is no dedicated validation phase </para> </callout> <callout "
+#~ "arearefs=\"reset\"> <para> The <literal>reset()</literal> method makes a "
+#~ "call to the injected <literal>rndGenerator</literal> in order to get the "
+#~ "random number at the start of each game. It cannot use <literal>manager."
+#~ "getInstanceByType(Integer.class, new AnnotationLiteral&lt;Random&gt;(){})"
+#~ "</literal> as the JSF example does because there will not be any active "
+#~ "contexts like there is during a JSF request. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+#~ "literal> class depends on the current instance of <literal>Game</"
+#~ "literal>, and queries its state in order to determine the appropriate "
+#~ "messages to provide as the prompt for the user's next guess and the "
+#~ "response to the previous guess. The code for <literal>MessageGenerator</"
+#~ "literal> is as follows: </para> <programlistingco> <areaspec> <area id="
+#~ "\"game\" coords=\"3\"/> <area id=\"challenge\" coords=\"5\"/> <area id="
+#~ "\"result\" coords=\"16\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class MessageGenerator\n"
+#~ "{\n"
+#~ "    @Current Game game;\n"
+#~ "\n"
+#~ "    public String getChallengeMessage()\n"
+#~ "    {\n"
+#~ "        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of "
+#~ "a number between \" );\n"
+#~ "        challengeMsg.append( game.getSmallest() );\n"
+#~ "        challengeMsg.append( \" and \" );\n"
+#~ "        challengeMsg.append( game.getBiggest() );\n"
+#~ "        challengeMsg.append( \". Can you guess what it is?\" );\n"
+#~ "\n"
+#~ "        return challengeMsg.toString();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    public String getResultMessage()\n"
+#~ "    {\n"
+#~ "        if ( game.isGameWon() )\n"
+#~ "        {\n"
+#~ "            return \"You guess it! The number was \" + game.getNumber();\n"
+#~ "        } else if ( game.isGameLost() )\n"
+#~ "        {\n"
+#~ "            return \"You are fail! The number was \" + game.getNumber();\n"
+#~ "        } else if ( ! game.isValidNumberRange() )\n"
+#~ "        {\n"
+#~ "            return \"Invalid number range!\";\n"
+#~ "        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
+#~ "        {\n"
+#~ "            return \"What is your first guess?\";\n"
+#~ "        } else\n"
+#~ "        {\n"
+#~ "            String direction = null;\n"
+#~ "\n"
+#~ "            if ( game.getGuess() < game.getNumber() )\n"
+#~ "            {\n"
+#~ "                direction = \"Higher\";\n"
+#~ "            } else\n"
+#~ "            {\n"
+#~ "                direction = \"Lower\";\n"
+#~ "            }\n"
+#~ "\n"
+#~ "            return direction + \"! You have \" + game.getRemainingGuesses"
+#~ "() + \" guesses left.\";\n"
+#~ "        }\n"
+#~ "    }\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> "
+#~ "The instance of <literal>Game</literal> for the application is injected "
+#~ "here. </para> </callout> <callout arearefs=\"challenge\"> <para> The "
+#~ "<literal>Game</literal>'s state is interrogated to determine the "
+#~ "appropriate challenge message. </para> </callout> <callout arearefs="
+#~ "\"result\"> <para> And again to determine whether to congratulate, "
+#~ "console or encourage the user to continue. </para> </callout> </"
+#~ "calloutlist> </programlistingco> <para> Finally we come to the "
+#~ "<literal>NumberGuessFrame</literal> class which provides the Swing front "
+#~ "end to our guessing game. </para> <programlistingco> <areaspec> <area id="
+#~ "\"gameIn\" coords=\"3\"/> <area id=\"messagesIn\" coords=\"4\"/> <area id="
+#~ "\"start\" coords=\"6\"/> <area id=\"init\" coords=\"18\"/> <area id="
+#~ "\"guess1\" coords=\"34\"/> <area id=\"replay\" coords=\"44\"/> <area id="
+#~ "\"refresh\" coords=\"50\"/> </areaspec> <programlisting role=\"JAVA\"><!"
+#~ "[CDATA[public class NumberGuessFrame  extends javax.swing.JFrame\n"
+#~ "{\n"
+#~ "    private @Current Game game;\n"
+#~ "    private @Current MessageGenerator msgGenerator;\n"
+#~ "\n"
+#~ "    public void start( @Observes @Deployed Manager manager )\n"
+#~ "    {\n"
+#~ "        java.awt.EventQueue.invokeLater( new Runnable()\n"
+#~ "            {\n"
+#~ "                public void run()\n"
+#~ "                {\n"
+#~ "                    initComponents();\n"
+#~ "                    setVisible( true );\n"
+#~ "                }\n"
+#~ "            } );\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void initComponents() {\n"
+#~ "\n"
+#~ "        buttonPanel = new javax.swing.JPanel();\n"
+#~ "        mainMsgPanel = new javax.swing.JPanel();\n"
+#~ "        mainLabel = new javax.swing.JLabel();\n"
+#~ "        messageLabel = new javax.swing.JLabel();\n"
+#~ "        guessText = new javax.swing.JTextField();\n"
+#~ "        ...\n"
+#~ "        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+#~ "        mainMsgPanel.add(mainLabel);\n"
+#~ "\n"
+#~ "        messageLabel.setText(msgGenerator.getResultMessage());\n"
+#~ "        mainMsgPanel.add(messageLabel);\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "        int guess =  Integer.parseInt(guessText.getText());\n"
+#~ "\n"
+#~ "        game.setGuess( guess );\n"
+#~ "        game.check();\n"
+#~ "        refreshUI();\n"
+#~ "\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void replayBtnActionPerformed( java.awt.event.ActionEvent "
+#~ "evt )\n"
+#~ "    {\n"
+#~ "       game.reset();\n"
+#~ "       refreshUI();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    private void refreshUI()\n"
+#~ "    {\n"
+#~ "        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+#~ "        messageLabel.setText( msgGenerator.getResultMessage() );\n"
+#~ "        guessText.setText( \"\" );\n"
+#~ "        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+#~ "        guessText.requestFocus();\n"
+#~ "    }\n"
+#~ "\n"
+#~ "    // swing components\n"
+#~ "    private javax.swing.JPanel borderPanel;\n"
+#~ "    ...\n"
+#~ "    private javax.swing.JButton replayBtn;\n"
+#~ "\n"
+#~ "}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> "
+#~ "The injected instance of the game (logic and state). </para> </callout> "
+#~ "<callout arearefs=\"messagesIn\"> <para> The injected message generator "
+#~ "for UI messages. </para> </callout> <callout arearefs=\"start\"> <para> "
+#~ "This application is started in the usual Web Beans SE way, by observing "
+#~ "the <literal>@Deployed Manager</literal> event. </para> </callout> "
+#~ "<callout arearefs=\"init\"> <para> This method initialises all of the "
+#~ "Swing components. Note the use of the <literal>msgGenerator</literal>. </"
+#~ "para> </callout> <callout arearefs=\"guess1\"> <para> "
+#~ "<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+#~ "button is clicked, and it does the following: </para> <itemizedlist> "
+#~ "<listitem> <para> Gets the guess entered by the user and sets it as the "
+#~ "current guess in the <literal>Game</literal> </para> </listitem> "
+#~ "<listitem> <para> Calls <literal>game.check()</literal> to validate and "
+#~ "perform one 'turn' of the game </para> </listitem> <listitem> <para> "
+#~ "Calls <literal>refreshUI</literal>. If there were validation errors with "
+#~ "the input, this will have been captured during <literal>game.check()</"
+#~ "literal> and as such will be reflected in the messeges returned by "
+#~ "<literal>MessageGenerator</literal> and subsequently presented to the "
+#~ "user. If there are no validation errors then the user will be told to "
+#~ "guess again (higher or lower) or that the game has ended either in a win "
+#~ "(correct guess) or a loss (ran out of guesses). </para> </listitem> </"
+#~ "itemizedlist> </callout> <callout arearefs=\"replay\"> <para> "
+#~ "<literal>replayBtnActionPerformed</literal> simply calls <literal>game."
+#~ "reset()</literal> to start a new game and refreshes the messages in the "
+#~ "UI. </para> </callout> <callout arearefs=\"refresh\"> <para> "
+#~ "<literal>refreshUI</literal> uses the <literal>MessageGenerator</literal> "
+#~ "to update the messages to the user based on the current state of the "
+#~ "Game. </para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid "The translator example"
+#~ msgstr "O exemplo translator"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr ""
+#~ "O exemplo translator pegará qualquer frase que você fornecer e a  "
+#~ "traduzirá para o Latim."
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "O exemplo translator é construído como um ear e contém EJBs. Como "
+#~ "resultado, a sua estrutura é mais complexa do que o exemplo numberguess."
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 e Java EE 6 permitem a você empacotar EJBs em um war, o que "
+#~ "tornará esta estrutura muito mais simples!"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "Primeiro, vamos dar uma olhada no ear aggregator, que está localizado "
+#~ "módulo <literal>webbeans-translator-ear</literal>. Maven gera "
+#~ "automaticamente o<literal>application.xml</literal> para nós:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "Se você não está usando o Maven para gerar esses arquivos, você "
+#~ "precisaria <literal>META-INF/application.xml</literal>:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "Em seguida, vamos ver o war. Tal como no exemplo numberguess, temos um "
+#~ "<literal>faces-config.xml</literal> (para habilitar o Facelets) e um "
+#~ "<literal>web.xml</literal> (para habilitar o JSF) no <literal>WebContent/"
+#~ "WEB-INF</literal>."
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "Mais interessante é o facelet utilizado para traduzir texto. Tal como no "
+#~ "exemplo numberguess, temos um template, que envolve o formulário (omitido "
+#~ "aqui por brevitude):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "O usuário pode digitar um texto no textarea esquerdo e clicar no botão "
+#~ "traduzir para ver o resultado à direita."
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "Por fim, vamos olhar  o módulo EJB <literal>webbeans-translator-ejb</"
+#~ "literal>. Em <literal>src/main/resources/META-INF</literal> existe apenas "
+#~ "um <literal>web-beans.xml</literal> vazio, utilizado para marcar o "
+#~ "arquivo como contendo Web Beans."
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "Deixamos o pedaço mais interessante para o final: o código! O projeto tem "
+#~ "dois beans simples, <literal>SentenceParser</literal> e "
+#~ "<literal>TextTranslator</literal> e dois beans "
+#~ "corporativos<literal>TranslatorControllerBean</literal> e "
+#~ "<literal>SentenceTranslator</literal>. Você deve estar bastante "
+#~ "familiarizado com o que um Web Bean parece até agora. Então, vamos apenas "
+#~ "destacar as partes mais interessantes aqui."
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "Tanto <literal>SentenceParser</literal> quanto <literal>TextTranslator</"
+#~ "literal> são beans dependentes, e <literal>TextTranslator</literal> usa "
+#~ "inicialização por construtor :"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> é um bean stateless (com uma interface "
+#~ "de negócios local), onde a mágica acontece . Obviamente, não poderíamos "
+#~ "desenvolver um tradutor completo, mas lhe demos um bom caminho!"
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "Finalmente, há um controlador orientado à interface, que recolhe o texto "
+#~ "do usuário e despacha para o tradutor. Esse é um escopo de requisição, "
+#~ "com o nome, stateful session bean, que injeta o tradutor."
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr "O bean também tem getters e setters para todos os campos da página."
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "Como esse é um stateful session bean, temos de ter um método de remoção:"
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "O gerenciador do Web Beans chamará o método remover para você quando o "
+#~ "bean for destruído - neste caso, no final da requisição."
+
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "Está encerrado o nosso curto passeio pelos exemplos de Web Beans. Para "
+#~ "mais informações sobre a Web Beans, ou para ajudar, por favor visite "
+#~ "<ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://"
+#~ "www.seamframework.org/WebBeans/Development</ulink>."
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "Precisamos de ajuda em todas as áreas - correção de bugs, escrita de "
+#~ "novas funcionalidades, escrita de exemplos e tradução deste guia de "
+#~ "referência."
+
+#~ msgid ""
 #~ "As Web Beans is a new piece of software, you need to update JBoss AS to "
 #~ "run the Web Beans RI. Future versions of JBoss AS will include these "
 #~ "updates, and this step won't be necessary."
@@ -1941,4 +2843,3 @@
 #~ "do JBoss AS para poder executar a implementação de referência de Web "
 #~ "Beans (Web Beans RI). Futuras versões do JBoss AS incluirão essas "
 #~ "atualizações e esse passo será desnecessário."
-

Modified: doc/trunk/reference/pt-BR/injection.po
===================================================================
--- doc/trunk/reference/pt-BR/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-06 08:34-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -15,34 +15,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "Injeção de Dependências"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans suporta três principais mecanismos de injeção de dependências:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Injeção de parametros no construtor:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>Initializer</emphasis>  injeção por parâmetro de método:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -58,23 +76,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>Initializer</emphasis>  injeção por parâmetro de método:"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -90,18 +114,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "E injeção direta de campos:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -112,55 +145,91 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
-msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
-msgstr "A injeção de dependências sempre ocorre quando a instância do Web Bean é instanciada."
+msgid ""
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
-msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
-msgstr "Em primeiro lugar, a gerenciador do Web Bean chama o construtor do Web Bean para obter uma instância do Web Bean."
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
+msgstr ""
+"A injeção de dependências sempre ocorre quando a instância do Web Bean é "
+"instanciada."
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
-msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
-msgstr "Em seguida, o gerenciador do Web Bean inicializa os valores de todos os campos injetados do Web Bean."
+#: injection.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"Em primeiro lugar, a gerenciador do Web Bean chama o construtor do Web Bean "
+"para obter uma instância do Web Bean."
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr "Em seguida, o gerenciador do Web Bean chama todos os métodos do Web Bean."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
+msgstr ""
+"Em seguida, o gerenciador do Web Bean inicializa os valores de todos os "
+"campos injetados do Web Bean."
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
-msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
-msgstr "Finalmente, o método <literal>@PostConstruct</literal> do Web Bean, se for o caso, é chamado."
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
+msgstr ""
+"Em seguida, o gerenciador do Web Bean chama todos os métodos do Web Bean."
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"Finalmente, o método <literal>@PostConstruct</literal> do Web Bean, se for o "
+"caso, é chamado."
+
+#. Tag: para
+#: injection.xml:86
 #, no-c-format
-msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "Injeção de parâmetros no construtor não é suportado em EJB beans, uma vez que o EJB é instanciado pelo container EJB e não pelo gerenciador do Web Bean."
+msgid ""
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
-msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "Métodos produtores também suportam injeção de parâmetros:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -172,66 +241,115 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
-msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
-msgstr "Por fim, métodos de observação (que iremos detalhar em <xref linkend=\"events\"/>), métodos de disposal e métodos destrutores, todos suportam injeção de parâmetros."
+msgid ""
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:58
+#. Tag: title
+#: injection.xml:110
 #, no-c-format
-msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
+msgid "What gets injected"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:67
+#: injection.xml:112
 #, no-c-format
-msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
-msgstr "O objetivo deste algoritmo é permitir que vários Web Beans implementem o mesmo tipo de API e também:"
+msgid ""
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
-msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
-msgstr "permitir que o cliente escolha a implementação que lhe melhor convier utilizando <emphasis>anotações de binding (binding annotations)</emphasis>,"
+#: injection.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
+msgstr ""
+"O objetivo deste algoritmo é permitir que vários Web Beans implementem o "
+"mesmo tipo de API e também:"
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:126
+#, fuzzy, no-c-format
+msgid ""
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"permitir que o cliente escolha a implementação que lhe melhor convier "
+"utilizando <emphasis>anotações de binding (binding annotations)</emphasis>,"
+
+#. Tag: para
+#: injection.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"allow the application deployer to select which implementation is appropriate "
+"for a particular deployment, without changes to the client, by enabling or "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"permitir ao implantador (deployer) da aplicação escolher qual a implentação "
+"é adequada para uma determinada implantação, sem alterações para o cliente, "
+"por ativar ou desativar <emphasis>tipos de implantação (deployment types)</"
+"emphasis>, ou"
+
+#. Tag: para
+#: injection.xml:137
 #, no-c-format
-msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
-msgstr "permitir ao implantador (deployer) da aplicação escolher qual a implentação é adequada para uma determinada implantação, sem alterações para o cliente, por ativar ou desativar <emphasis>tipos de implantação (deployment types)</emphasis>, ou"
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:143
 #, no-c-format
-msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
-msgstr "permitir uma implementação de uma API sobrescrever uma outra implementação da mesma API em tempo de implantação, sem alterações no cliente, utilizando <emphasis>precedência do tipo de implantação (deployment type precedence)</emphasis>."
+msgid ""
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "Vamos explorer como o gerenciador do Web Beans determina qual o Web Bean deve ser injetado."
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "Anotações de ligação (binding annotations)"
 
 #. Tag: para
-#: injection.xml:93
+#: injection.xml:159
 #, no-c-format
-msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
+msgid ""
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
+"<literal>PaymentProcessor</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -240,33 +358,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
-msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
-msgstr "Onde <literal>@PayByCheque</literal> e <literal>@PayByCreditCard</literal> são anotações de binding:"
+#: injection.xml:169
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"Onde <literal>@PayByCheque</literal> e <literal>@PayByCreditCard</literal> "
+"são anotações de binding:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -274,110 +396,176 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
-msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
-msgstr "Um desenvolvedor cliente de um Web Bean utiliza a anotação de binding para especificar exatamente quais Web Bean devem ser injetados."
+#: injection.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"Um desenvolvedor cliente de um Web Bean utiliza a anotação de binding para "
+"especificar exatamente quais Web Bean devem ser injetados."
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "Utilizando injeção por campos (field injection):"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "Utilizando injeção de método de inicialização:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "Ou utilizando injeção de construtor"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
+msgid "Qualifiers with members"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -388,621 +576,696 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "Em cada caso, o valor do membro é significante:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
+#: injection.xml:232
 #, no-c-format
-msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "Combinações de anotações de binding"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
-msgstr "Um ponto de injeção pode até mesmo especificar múltiplas anotações de binding:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
+msgstr ""
+"Um ponto de injeção pode até mesmo especificar múltiplas anotações de "
+"binding:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
-msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
-msgstr "Neste caso, só o Web Bean que tem <emphasis>ambas</emphasis> anotações de binding são elegíveis para injeção."
+#: injection.xml:250
+#, fuzzy, no-c-format
+msgid ""
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"Neste caso, só o Web Bean que tem <emphasis>ambas</emphasis> anotações de "
+"binding são elegíveis para injeção."
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "Anotações de binding e métodos produtores "
-
-#. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "Mesmo métodos produtores podem especificar anotações de binding:"
-
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:260
 #, no-c-format
-msgid "The default binding type"
-msgstr "O tipo padrão de binding"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:262
 #, no-c-format
-msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
+msgid ""
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:168
-#, no-c-format
-msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
-msgstr "Há duas situações comuns nas quais é necessário indicar explicitamente <literal>@Current</literal>:"
-
-#. Tag: para
-#: injection.xml:173
-#, no-c-format
-msgid "on a field, in order to declare it as an injected field with the default binding type, and"
-msgstr "em um campo, a fim de declará-lo como um campo injetado com o tipo de binding padrão, e"
-
-#. Tag: para
-#: injection.xml:177
-#, no-c-format
-msgid "on a Web Bean which has another binding type in addition to the default binding type."
-msgstr "em um Web Bean, que tem um outro tipo de binding além do tipo padrão de binding."
-
-#. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipo de deploy"
-
-#. Tag: para
-#: injection.xml:189
-#, no-c-format
-msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
+#. Tag: programlisting
+#: injection.xml:266
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
 msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:268
 #, no-c-format
-msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
+msgid ""
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:197
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:276
 #, no-c-format
-msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
-msgstr "Suponha que temos alguns Web Beans que interajam com um sistema externo para processar pagamentos:"
-
-#. Tag: programlisting
-#: injection.xml:202
-#, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
-#. Tag: para
-#: injection.xml:204
+#. Tag: title
+#: injection.xml:285
 #, no-c-format
-msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
-msgstr "Uma vez que esse Web Bean não especifica explicitamente um tipo de implantação, ele tem o tipo de implantação padrão <literal>@Production</literal>."
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:287
 #, no-c-format
-msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
+msgid ""
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:298
 #, no-c-format
-msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "Ativando tipos de implantação (deployment types)"
-
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:304
 #, no-c-format
-msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
+msgid ""
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:309
 #, no-c-format
-msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
+msgid ""
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:321
 #, no-c-format
-msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:327
 #, no-c-format
-msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:332
 #, no-c-format
-msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
 msgstr ""
 
-#. Tag: title
-#: injection.xml:244
+#. Tag: para
+#: injection.xml:337
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "Precedencia dos tipos de deploy"
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:246
+#: injection.xml:343
 #, no-c-format
-msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation &#151; <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider what happens when the manager encounters this injection point:"
+msgid ""
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
 msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-
 #. Tag: para
-#: injection.xml:253
+#: injection.xml:350
 #, no-c-format
-msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
+msgid ""
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:258
+#: injection.xml:358
 #, no-c-format
-msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
+msgid "Just remember: \"There can be only one.\""
 msgstr ""
 
 #. Tag: para
-#: injection.xml:264
+#: injection.xml:361
 #, no-c-format
-msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
+msgid ""
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:271
+#: injection.xml:366
 #, no-c-format
-msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
 msgstr ""
 
 #. Tag: title
-#: injection.xml:284
+#: injection.xml:373
 #, no-c-format
-msgid "Example deployment types"
-msgstr "Exemplo de tipos de deploy"
+msgid "Client proxies"
+msgstr "Proxies clientes"
 
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
+#: injection.xml:375
+#, fuzzy, no-c-format
+msgid ""
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
 msgstr ""
+"Clientes de um Web Bean injetado, geralmente não possuem uma referência "
+"direta a uma instância do Web Bean ."
 
 #. Tag: para
-#: injection.xml:290
+#: injection.xml:380
 #, no-c-format
-msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
+msgid ""
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:386
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:393
 #, no-c-format
-msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
+msgid ""
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:401
 #, no-c-format
-msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
+msgid ""
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
 msgstr ""
+"Os seguintes tipos Java não podem ser \"proxied\" pelo gerenciador do Web "
+"Bean:"
 
-#. Tag: title
-#: injection.xml:313
+#. Tag: para
+#: injection.xml:411
+#, fuzzy, no-c-format
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "classes que não têm um construtor não privado sem parâmetros, e"
+
+#. Tag: para
+#: injection.xml:414
 #, no-c-format
-msgid "Fixing unsatisfied dependencies"
+msgid ""
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
 msgstr ""
+"classes que são declaradas <literal>final</literal> ou que tenham um método "
+"<literal>final</literal>,"
 
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:419
 #, no-c-format
-msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
+msgid "arrays and primitive types."
+msgstr "arrays e tipos primitivos."
+
+#. Tag: para
+#: injection.xml:423
+#, no-c-format
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:430
 #, no-c-format
-msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
+msgid ""
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:437
 #, no-c-format
-msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point &#151; or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:442
 #, no-c-format
-msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:448
 #, no-c-format
-msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
+msgid "But we didn't get around to implementing this yet."
 msgstr ""
 
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "Proxies clientes"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "Obtendo um Web Bean via lookup programaticamente"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
-msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
-msgstr "Clientes de um Web Bean injetado, geralmente não possuem uma referência direta a uma instância do Web Bean ."
+msgid ""
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
-msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
+msgid "we would like to iterate over all beans of a certain type."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
-msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
+#: injection.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
 msgstr ""
+"A aplicação pode obter uma instância da interface <literal>Manager</literal> "
+"por injeção:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "Os seguintes tipos Java não podem ser \"proxied\" pelo gerenciador do Web Bean:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
+#: injection.xml:489
 #, no-c-format
-msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
-msgstr "classes que são declaradas <literal>final</literal> ou que tenham um método <literal>final</literal>,"
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "classes que não têm um construtor não privado sem parâmetros, e"
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "arrays e tipos primitivos."
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
-msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
+#: injection.xml:504
+#, fuzzy, no-c-format
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
 msgstr ""
+"Web Beans simples suportam apenas chamadas a <literal>@PostConstruct</"
+"literal> e <literal>@PreDestroy</literal>."
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "Obtendo um Web Bean via lookup programaticamente"
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
-msgstr "A aplicação pode obter uma instância da interface <literal>Manager</literal> por injeção:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
-msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
-msgstr "O objeto <literal>Manager</literal> fornece um conjunto de métodos para a obtenção de uma instância de um Web Bean programaticamente."
+msgid ""
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-msgstr "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
-msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
+msgid ""
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
-msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to create a named subclass:"
+msgid ""
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
-msgstr "Chamadas ao ciclo de vida, <literal>@Resource</literal>, <literal>@EJB</literal> e <literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
-msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
-msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
-msgstr "Web Beans simples suportam apenas chamadas a <literal>@PostConstruct</literal> e <literal>@PreDestroy</literal>."
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
-msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
+msgid ""
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
 msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
-msgstr "A chamada ao <literal>@PostConstruct</literal> sempre ocorre após todas as dependências serem injetadas."
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "O objeto <literal>InjectionPoint</literal>"
 
 #. Tag: para
-#: injection.xml:442
+#: injection.xml:558
 #, no-c-format
-msgid "There are certain kinds of dependent objects &#151; Web Beans with scope <literal>@Dependent</literal> &#151; that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
+msgid ""
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
-msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
+msgid ""
+"The log category for a <literal>Logger</literal> depends upon the class of "
+"the object that owns it."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
-msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
+msgid ""
+"Injection of a HTTP parameter or header value depends upon what parameter or "
+"header name was specified at the injection point."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
-msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
-msgstr "Injeção do resultado da avaliação de uma expressão EL depende da expressão que foi especificada no ponto de injeção."
+msgid ""
+"Injection of the result of an EL expression evaluation depends upon the "
+"expression that was specified at the injection point."
+msgstr ""
+"Injeção do resultado da avaliação de uma expressão EL depende da expressão "
+"que foi especificada no ponto de injeção."
 
 #. Tag: para
-#: injection.xml:461
+#: injection.xml:577
 #, no-c-format
-msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
+msgid ""
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
+"injection point to which it belongs."
 msgstr ""
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
-msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
+msgid ""
+"Let's look at an example. The following code is verbose, and vulnerable to "
+"refactoring problems:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
-msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
+msgid ""
+"This clever little producer method lets you inject a JDK <literal>Logger</"
+"literal> without explicitly specifying the log category:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1010,31 +1273,34 @@
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "Podemos agora escrever:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
+#: injection.xml:595
 #, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
+msgid ""
+"Not convinced? Then here's a second example. To inject HTTP parameters, we "
+"need to define a qualifier type:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1052,13 +1318,13 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
+#: injection.xml:600
 #, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1068,20 +1334,21 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "O seguinte método produtor faz o trabalho:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1090,25 +1357,31 @@
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
+#: injection.xml:608
 #, no-c-format
-msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
+msgid ""
+"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
+"literal> annotation is ignored by the container since it is annotated "
+"<literal>@NonBinding.</literal>)"
 msgstr ""
 
 #. Tag: para
-#: injection.xml:495
+#: injection.xml:611
 #, no-c-format
-msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
+msgid ""
+"The container provides a built-in bean that implements the "
+"<literal>InjectionPoint</literal> interface:"
 msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1127,3 +1400,268 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr ""
+#~ "Web Beans suporta três principais mecanismos de injeção de dependências:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Injeção de parametros no construtor:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "Injeção de parâmetros no construtor não é suportado em EJB beans, uma vez "
+#~ "que o EJB é instanciado pelo container EJB e não pelo gerenciador do Web "
+#~ "Bean."
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "Métodos produtores também suportam injeção de parâmetros:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "Por fim, métodos de observação (que iremos detalhar em <xref linkend="
+#~ "\"events\"/>), métodos de disposal e métodos destrutores, todos suportam "
+#~ "injeção de parâmetros."
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "permitir uma implementação de uma API sobrescrever uma outra "
+#~ "implementação da mesma API em tempo de implantação, sem alterações no "
+#~ "cliente, utilizando <emphasis>precedência do tipo de implantação "
+#~ "(deployment type precedence)</emphasis>."
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr ""
+#~ "Vamos explorer como o gerenciador do Web Beans determina qual o Web Bean "
+#~ "deve ser injetado."
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "Em cada caso, o valor do membro é significante:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "Combinações de anotações de binding"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "Anotações de binding e métodos produtores "
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "Mesmo métodos produtores podem especificar anotações de binding:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "O tipo padrão de binding"
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "Há duas situações comuns nas quais é necessário indicar explicitamente "
+#~ "<literal>@Current</literal>:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "em um campo, a fim de declará-lo como um campo injetado com o tipo de "
+#~ "binding padrão, e"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "em um Web Bean, que tem um outro tipo de binding além do tipo padrão de "
+#~ "binding."
+
+#~ msgid "Deployment types"
+#~ msgstr "Tipo de deploy"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr ""
+#~ "Suponha que temos alguns Web Beans que interajam com um sistema externo "
+#~ "para processar pagamentos:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "Uma vez que esse Web Bean não especifica explicitamente um tipo de "
+#~ "implantação, ele tem o tipo de implantação padrão <literal>@Production</"
+#~ "literal>."
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "Ativando tipos de implantação (deployment types)"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Precedencia dos tipos de deploy"
+
+#~ msgid "Example deployment types"
+#~ msgstr "Exemplo de tipos de deploy"
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "O objeto <literal>Manager</literal> fornece um conjunto de métodos para a "
+#~ "obtenção de uma instância de um Web Bean programaticamente."
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "Chamadas ao ciclo de vida, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> e <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "A chamada ao <literal>@PostConstruct</literal> sempre ocorre após todas "
+#~ "as dependências serem injetadas."

Modified: doc/trunk/reference/pt-BR/interceptors.po
===================================================================
--- doc/trunk/reference/pt-BR/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-06 08:34-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,106 +14,143 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "Interceptadores"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
-msgid "Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending the functionality in two directions:"
-msgstr "Web Beans re utiliza a arquitetura básica do interceptor de EJB 3.0, que extende a funcionalidade em duas direções:"
+#: interceptors.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr ""
+"Web Beans possui uma abordagem mais sofisticadas baseada em anotações para "
+"associar interceptores aos Web Beans."
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "Qualquer Web Bean pode ter interceptores, não apenas session beans."
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
-msgid "Web Beans features a more sophisticated annotation-based approach to binding interceptors to Web Beans."
-msgstr "Web Beans possui uma abordagem mais sofisticadas baseada em anotações para associar interceptores aos Web Beans."
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+#: interceptors.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "A especificação de EJB define dois tipos de pontos de interceptação:"
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "interceptação de métodos de negócios, e"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "interceptadores de chamadas de ciclo de vida"
 
 #. Tag: para
-#: interceptors.xml:33
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "A especificação de EJB define dois tipos de pontos de interceptação:"
+
+#. Tag: para
+#: interceptors.xml:29
 #, no-c-format
-msgid "A <emphasis>business method interceptor</emphasis> applies to invocations of methods of the Web Bean by clients of the Web Bean:"
+msgid ""
+"A <emphasis>business method interceptor</emphasis> applies to invocations of "
+"methods of the bean by clients of the bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
-msgid "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations of lifecycle callbacks by the container:"
+msgid ""
+"A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
+"of lifecycle callbacks by the container:"
 msgstr ""
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
 #: interceptors.xml:43
 #, no-c-format
-msgid "An interceptor class may intercept both lifecycle callbacks and business methods."
+msgid ""
+"An interceptor class may intercept both lifecycle callbacks and business "
+"methods."
 msgstr ""
 
+#. Tag: para
+#: interceptors.xml:47
+#, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "Bindings de interceptadores"
 
 #. Tag: para
-#: interceptors.xml:51
+#: interceptors.xml:57
 #, no-c-format
-msgid "Suppose we want to declare that some of our Web Beans are transactional. The first thing we need is an <emphasis>interceptor binding annotation</emphasis> to specify exactly which Web Beans we're interested in:"
+msgid ""
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -124,13 +161,15 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
-msgid "Now we can easily specify that our <literal>ShoppingCart</literal> is a transactional object:"
+msgid ""
+"Now we can easily specify that our <literal>ShoppingCart</literal> is a "
+"transactional object:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -140,17 +179,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -158,47 +197,56 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "Implementando interceptadores (interceptors)"
 
 #. Tag: para
-#: interceptors.xml:71
+#: interceptors.xml:81
 #, no-c-format
-msgid "That's great, but somewhere along the line we're going to have to actually implement the interceptor that provides this transaction management aspect. All we need to do is create a standard EJB interceptor, and annotate it <literal>@Interceptor</literal> and <literal>@Transactional</literal>."
+msgid ""
+"That's great, but somewhere along the line we're going to have to actually "
+"implement the interceptor that provides this transaction management aspect. "
+"All we need to do is create a standard interceptor, and annotate it "
+"<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid "All Web Beans interceptors are simple Web Beans, and can take advantage of dependency injection and contextual lifecycle management."
+msgid "Interceptors can take advantage of dependency injection:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -207,111 +255,136 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "Habiliatando interceptadores (interceptors)"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
-msgid "Finally, we need to <emphasis>enable</emphasis> our interceptor in <literal>web-beans.xml</literal>."
-msgstr "Finalmente, temos que <emphasis>ativar</emphasis> nossos interceptadores no <literal>web-beans.xml</literal>."
+msgid ""
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "Bem, a declaração XML resolve dois problemas:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all the interceptors in our system, ensuring deterministic behavior, and"
-msgstr "o que nos permite especificar totalmente a ordem para todos os interceptores em nosso sistema, garantindo um comportamento determinístico, e"
+msgid ""
+"it enables us to specify a total ordering for all the interceptors in our "
+"system, ensuring deterministic behavior, and"
+msgstr ""
+"o que nos permite especificar totalmente a ordem para todos os interceptores "
+"em nosso sistema, garantindo um comportamento determinístico, e"
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:109
+#: interceptors.xml:130
 #, no-c-format
-msgid "For example, we could specify that our security interceptor runs before our <literal>TransactionInterceptor</literal>."
+msgid ""
+"For example, we could specify that our security interceptor runs before our "
+"transaction interceptor."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
-msgid "Suppose we want to add some extra information to our <literal>@Transactional</literal> annotation:"
-msgstr "Suponhamos que queremos acrescentar algumas informações adicionais para o nossa anotação <literal>@Transactional</literal>: "
+msgid ""
+"Suppose we want to add some extra information to our "
+"<literal>@Transactional</literal> annotation:"
+msgstr ""
+"Suponhamos que queremos acrescentar algumas informações adicionais para o "
+"nossa anotação <literal>@Transactional</literal>: "
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -322,56 +395,68 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
+#: interceptors.xml:150
 #, no-c-format
-msgid "Web Beans will use the value of <literal>requiresNew</literal> to choose between two different interceptors, <literal>TransactionInterceptor</literal> and <literal>RequiresNewTransactionInterceptor</literal>."
+msgid ""
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
-msgid "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like this:"
+msgid ""
+"Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
+"this:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
+#: interceptors.xml:163
 #, no-c-format
-msgid "But what if we only have one interceptor and we want the manager to ignore the value of <literal>requiresNew</literal> when binding interceptors? We can use the <literal>@NonBinding</literal> annotation:"
+msgid ""
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -382,19 +467,23 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:147
+#: interceptors.xml:176
 #, no-c-format
-msgid "Usually we use combinations of interceptor bindings types to bind multiple interceptors to a Web Bean. For example, the following declaration would be used to bind <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal> to the same Web Bean:"
+msgid ""
+"Usually we use combinations of interceptor bindings types to bind multiple "
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -404,13 +493,15 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
-msgid "However, in very complex cases, an interceptor itself may specify some combination of interceptor binding types:"
+msgid ""
+"However, in very complex cases, an interceptor itself may specify some "
+"combination of interceptor binding types:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -420,17 +511,19 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
-msgid "Then this interceptor could be bound to the <literal>checkout()</literal> method using any one of the following combinations:"
+msgid ""
+"Then this interceptor could be bound to the <literal>checkout()</literal> "
+"method using any one of the following combinations:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -438,12 +531,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -452,12 +545,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -466,12 +559,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -480,35 +573,45 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
-msgid "One limitation of the Java language support for annotations is the lack of annotation inheritance. Really, annotations should have reuse built in, to allow this kind of thing to work:"
+msgid ""
+"One limitation of the Java language support for annotations is the lack of "
+"annotation inheritance. Really, annotations should have reuse built in, to "
+"allow this kind of thing to work:"
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
+#: interceptors.xml:216
 #, no-c-format
-msgid "Well, fortunately, Web Beans works around this missing feature of Java. We may annotate one interceptor binding type with other interceptor binding types. The interceptor bindings are transitive &#151; any Web Bean with the first interceptor binding inherits the interceptor bindings declared as meta-annotations."
+msgid ""
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -520,64 +623,111 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
+#: interceptors.xml:225
 #, no-c-format
-msgid "Any Web Bean annotated <literal>@Action</literal> will be bound to both <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it exists.)"
+msgid ""
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
+"<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
+"literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
+"exists.)"
 msgstr ""
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:197
+#: interceptors.xml:236
 #, no-c-format
-msgid "The <literal>@Interceptors</literal> annotation defined by the EJB specification is supported for both enterprise and simple Web Beans, for example:"
+msgid ""
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
 msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
 "    public void checkout() { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:212
+#: interceptors.xml:255
 #, no-c-format
-msgid "the interceptor ordering is non-global &#151; it is determined by the order in which interceptors are listed at the class level."
+msgid ""
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
 msgstr ""
 
 #. Tag: para
-#: interceptors.xml:217
+#: interceptors.xml:262
 #, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr ""
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans re utiliza a arquitetura básica do interceptor de EJB 3.0, que "
+#~ "extende a funcionalidade em duas direções:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr "Qualquer Web Bean pode ter interceptores, não apenas session beans."
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Finalmente, temos que <emphasis>ativar</emphasis> nossos interceptadores "
+#~ "no <literal>web-beans.xml</literal>."
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"

Modified: doc/trunk/reference/pt-BR/intro.po
===================================================================
--- doc/trunk/reference/pt-BR/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-06 13:01-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,39 +16,125 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Introdução a Web Beans"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
-msgid "So you're already keen to get started writing your first Web Bean? Or perhaps you're skeptical, wondering what kinds of hoops the Web Beans specification will make you jump through! The good news is that you've probably already written and used hundreds, perhaps thousands of Web Beans. You might not even remember the first Web Bean you wrote."
-msgstr "Então você está interessado em começar a escrever o seu primeiro Web Bean? Ou talvez você é cético, imaginando que tipos de hoops a especificação Web Beans fará com que você passe! A boa notícia é que você provavelmente já escreveu e utilizou centenas, talvez milhares de Web Beans. Você pode até não se lembrar do primeiro Web Bean que escreveu."
+#, fuzzy, no-c-format
+msgid ""
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"Então você está interessado em começar a escrever o seu primeiro Web Bean? "
+"Ou talvez você é cético, imaginando que tipos de hoops a especificação Web "
+"Beans fará com que você passe! A boa notícia é que você provavelmente já "
+"escreveu e utilizou centenas, talvez milhares de Web Beans. Você pode até "
+"não se lembrar do primeiro Web Bean que escreveu."
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "Seu primeiro Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "O que é um Web Bean?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
-msgid "With certain, very special exceptions, every Java class with a constructor that accepts no parameters is a Web Bean. That includes every JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the JavaBeans and EJBs you've been writing every day have not been able to take advantage of the new services defined by the Web Beans specification, but you'll be able to use every one of them as Web Beans &#151; injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them &#151; without touching your existing code."
-msgstr "Com certeza, com raras exceções especiais, toda classe Java com um construtor sem parâmetros é um Web Bean. Isso inclui todos os JavaBean. Além disso, todo session bean no estilo EJB 3 é um Web Bean. Claro, JavaBeans e EJBs que você tem escrito todos os dias, não tem sido capazes de aproveitar os novos serviços definidos pela especificação Web Beans, mas você será capaz de usar cada um deles como Web Beans - injetando-os em outros Web Beans, configurando-os através da Web Beans XML configuration facility, e até acrescentando interceptadores e decoradores &#151; sem tocar o seu código existente."
+msgid ""
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
-msgid "Suppose that we have two existing Java classes, that we've been using for years in various applications. The first class parses a string into a list of sentences:"
-msgstr "Suponha que temos duas classes Java existentes, que temos utilizado por anos em várias aplicações. A primeira classe faz a divisão (parse) de uma string em uma lista de sentenças:"
+msgid ""
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
+#. Tag: para
+#: intro.xml:27
 #, no-c-format
 msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
+msgstr ""
+"Suponha que temos duas classes Java existentes, que temos utilizado por anos "
+"em várias aplicações. A primeira classe faz a divisão (parse) de uma string "
+"em uma lista de sentenças:"
+
+#. Tag: programlisting
+#: intro.xml:68
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -56,18 +142,24 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
-msgid "The second existing class is a stateless session bean front-end for an external system that is able to translate sentences from one language to another:"
-msgstr "A segunda classe existente é um stateless session bean de fachada (front-end) para um sistema externo que é capaz de traduzir frases de uma língua para outra:"
+msgid ""
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
+msgstr ""
+"A segunda classe existente é um stateless session bean de fachada (front-"
+"end) para um sistema externo que é capaz de traduzir frases de uma língua "
+"para outra:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -76,18 +168,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "Onde <literal>Translator</literal> é a interface local:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -96,34 +188,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
-msgid "Unfortunately, we don't have a preexisting class that translates whole text documents. So let's write a Web Bean that does this job:"
-msgstr " Infelizmente, não temos uma classe pré-existente que traduz todo o texto de documentos. Então vamos escrever um Web Bean que faz este trabalho:"
+#: intro.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+" Infelizmente, não temos uma classe pré-existente que traduz todo o texto de "
+"documentos. Então vamos escrever um Web Bean que faz este trabalho:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -132,7 +227,8 @@
 "    private Translator sentenceTranslator;\n"
 "    \n"
 "    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+"    TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
 "        this.sentenceParser = sentenceParser;\n"
 "        this.sentenceTranslator = sentenceTranslator;\n"
 "    }\n"
@@ -148,784 +244,637 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid "We may obtain an instance of <literal>TextTranslator</literal> by injecting it into a Web Bean, Servlet or EJB:"
-msgstr "Podemos obter uma instância de <literal>TextTranslator</literal> injetando-a em um Web Bean, Servlet ou EJB:"
-
-#. Tag: programlisting
-#: intro.xml:49
-#, no-c-format
+#: intro.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"Mas espere: <literal>TextTranslator</literal> não tem um construtor sem "
+"parâmetros! É ainda um Web Bean? Bem, uma classe que não tem um construtor "
+"sem parâmetros ainda pode ser um Web Bean, se tiver um construtor anotado "
+"com <literal>@Initializer</literal>."
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:93
 #, no-c-format
-msgid "Alternatively, we may obtain an instance by directly calling a method of the Web Bean manager:"
-msgstr "Alternativamente, nós podemos obter uma instância invocando diretamente o método do gerenciador do Web Bean:"
-
-#. Tag: programlisting
-#: intro.xml:54
-#, no-c-format
-msgid "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-msgstr "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-
-#. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid "But wait: <literal>TextTranslator</literal> does not have a constructor with no parameters! Is it still a Web Bean? Well, a class that does not have a constructor with no parameters can still be a Web Bean if it has a constructor annotated <literal>@Initializer</literal>."
-msgstr "Mas espere: <literal>TextTranslator</literal> não tem um construtor sem parâmetros! É ainda um Web Bean? Bem, uma classe que não tem um construtor sem parâmetros ainda pode ser um Web Bean, se tiver um construtor anotado com <literal>@Initializer</literal>."
-
-#. Tag: para
-#: intro.xml:61
-#, no-c-format
-msgid "As you've guessed, the <literal>@Initializer</literal> annotation has something to do with dependency injection! <literal>@Initializer</literal> may be applied to a constructor or method of a Web Bean, and tells the Web Bean manager to call that constructor or method when instantiating the Web Bean. The Web Bean manager will inject other Web Beans to the parameters of the constructor or method."
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:68
+#: intro.xml:100
 #, no-c-format
-msgid "At system initialization time, the Web Bean manager must validate that exactly one Web Bean exists which satisfies each injection point. In our example, if no implementation of <literal>Translator</literal> available &#151; if the <literal>SentenceTranslator</literal> EJB was not deployed &#151; the Web Bean manager would throw an <literal>UnsatisfiedDependencyException</literal>. If more than one implementation of <literal>Translator</literal> was available, the Web Bean manager would throw an <literal>AmbiguousDependencyException</literal>."
+msgid ""
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "O que é um Web Bean?"
-
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:107
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "Então, o que, <emphasis>exatamente</emphasis>, é um Web Bean?"
-
-#. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid "A Web Bean is an application class that contains business logic. A Web Bean may be called directly from Java code, or it may be invoked via Unified EL. A Web Bean may access transactional resources. Dependencies between Web Beans are managed automatically by the Web Bean manager. Most Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean manager."
+msgid ""
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
 msgstr ""
 
-#. Tag: para
-#: intro.xml:91
+#. Tag: programlisting
+#: intro.xml:116
 #, no-c-format
-msgid "Let's back up a second. What does it really mean to be \"contextual\"? Since Web Beans may be stateful, it matters <emphasis>which</emphasis> bean instance I have. Unlike a stateless component model (for example, stateless session beans) or a singleton component model (such as servlets, or singleton beans), different clients of a Web Bean see the Web Bean in different states. The client-visible state depends upon which instance of the Web Bean the client has a reference to."
+msgid ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
 msgstr ""
 
 #. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid "However, like a stateless or singleton model, but <emphasis>unlike</emphasis> stateful session beans, the client does not control the lifecycle of the instance by explicitly creating and destroying it. Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "No entanto, como o modelo stateless ou singleton, mas <emphasis>ao contrário</emphasis> dos stateful session beans, o cliente não controla o ciclo de vida da instância por explicitamente criar e destruí-lo. Em vez disso, o <emphasis>escopo</emphasis> do Web Bean determina:"
-
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "o ciclo de vida de cada instância do Web Bean e"
-
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "que os clientes compartilham uma referência a uma instância específica do Web Bean."
-
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid "For a given thread in a Web Beans application, there may be an <emphasis>active context</emphasis> associated with the scope of the Web Bean. This context may be unique to the thread (for example, if the Web Bean is request scoped), or it may be shared with certain other threads (for example, if the Web Bean is session scoped) or even all other threads (if it is application scoped)."
-msgstr ""
-
-#. Tag: para
 #: intro.xml:119
-#, no-c-format
-msgid "Clients (for example, other Web Beans) executing in the same context will see the same instance of the Web Bean. But clients in a different context will see a different instance."
-msgstr "Os clientes (por exemplo, outros Web Beans) executam no mesmo contexto verão a mesma instância do Web Bean. Mas os clientes em um contexto diferente verão uma outra instância."
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "Onde <literal>Translator</literal> é a interface local:"
 
 #. Tag: para
-#: intro.xml:123
+#: intro.xml:127
 #, no-c-format
-msgid "One great advantage of the contextual model is that it allows stateful Web Beans to be treated like services! The client need not concern itself with managing the lifecycle of the Web Bean it is using, <emphasis>nor does it even need to know what that lifecyle is.</emphasis> Web Beans interact by passing messages, and the Web Bean implementations define the lifecycle of their own state. The Web Beans are loosely coupled because:"
+msgid ""
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "ele interagem por uma API pública bem definida"
-
-#. Tag: para
 #: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "seus ciclos de vida são completamente desacoplados"
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"Podemos obter uma instância de <literal>TextTranslator</literal> injetando-a "
+"em um Web Bean, Servlet ou EJB:"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid "We can replace one Web Bean with a different Web Bean that implements the same API and has a different lifecycle (a different scope) without affecting the other Web Bean implementation. In fact, Web Beans defines a sophisticated facility for overriding Web Bean implementations at deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
 msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:145
+#: intro.xml:142
 #, no-c-format
-msgid "Note that not all clients of a Web Bean are Web Beans. Other objects such as Servlets or Message-Driven Beans &#151; which are by nature not injectable, contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "Note que nem todos os clientes de um Web Bean são Web Beans. Outros objetos, tais como Servlets ou Message-Driven Beans &#151; que são, por natureza, não injetável, objetos contextuais &#151; podem também obter referências a Web Beans por injeção."
-
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "Chega de mão abanando. Mais formalmente, de acordo com a especificação:"
-
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Um Web Bean compreende:"
-
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "Um conjunto (não vazio) de tipos de API (API types)"
-
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "Um conjunto (não vazio) de tipos de anotações de binding "
-
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "Um escopo"
-
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "Um tipo de publicação (deployment type)"
-
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "Opcionalmente, um nome Web Bean"
-
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "Um conjunto de tipos de interceptor binding"
-
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "A implementação de Web Bean"
-
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "Vamos ver o que alguns destes termos significam, para o desenvolvedor Web Bean."
-
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "Tipos de API, tipos de binding e injeção de dependências "
-
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid "Web Beans usually acquire references to other Web Beans via dependency injection. Any injected attribute specifies a \"contract\" that must be satisfied by the Web Bean to be injected. The contract is:"
+msgid ""
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:177
+#: intro.xml:148
 #, no-c-format
-msgid "an API type, together with"
-msgstr "um tipo de API, juntamente com"
-
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "um conjunto de tipos de binding"
-
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid "An API is a user-defined class or interface. (If the Web Bean is an EJB session bean, the API type is the <literal>@Local</literal> interface or bean-class local view). A binding type represents some client-visible semantic that is satisfied by some implementations of the API and not by others."
+msgid ""
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
 msgstr ""
 
 #. Tag: para
-#: intro.xml:186
+#: intro.xml:156
 #, no-c-format
-msgid "Binding types are represented by user-defined annotations that are themselves annotated <literal>@BindingType</literal>. For example, the following injection point has API type <literal>PaymentProcessor</literal> and binding type <literal>@CreditCard</literal>:"
+msgid ""
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
 msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Introdução a Web Beans"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid "If no binding type is explicitly specified at an injection point, the default binding type <literal>@Current</literal> is assumed."
-msgstr ""
+#~ msgid "Your first Web Bean"
+#~ msgstr "Seu primeiro Web Bean"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid "For each injection point, the Web Bean manager searches for a Web Bean which satisfies the contract (implements the API, and has all the binding types), and injects that Web Bean."
-msgstr ""
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "Com certeza, com raras exceções especiais, toda classe Java com um "
+#~ "construtor sem parâmetros é um Web Bean. Isso inclui todos os JavaBean. "
+#~ "Além disso, todo session bean no estilo EJB 3 é um Web Bean. Claro, "
+#~ "JavaBeans e EJBs que você tem escrito todos os dias, não tem sido capazes "
+#~ "de aproveitar os novos serviços definidos pela especificação Web Beans, "
+#~ "mas você será capaz de usar cada um deles como Web Beans - injetando-os "
+#~ "em outros Web Beans, configurando-os através da Web Beans XML "
+#~ "configuration facility, e até acrescentando interceptadores e decoradores "
+#~ "&#151; sem tocar o seu código existente."
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid "The following Web Bean has the binding type <literal>@CreditCard</literal> and implements the API type <literal>PaymentProcessor</literal>. It could therefore be injected to the example injection point:"
-msgstr ""
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "Alternativamente, nós podemos obter uma instância invocando diretamente o "
+#~ "método do gerenciador do Web Bean:"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid "If a Web Bean does not explicitly specify a set of binding types, it has exactly one binding type: the default binding type <literal>@Current</literal>."
-msgstr ""
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "Então, o que, <emphasis>exatamente</emphasis>, é um Web Bean?"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid "Web Beans defines a sophisticated but intuitive <emphasis>resolution algorithm</emphasis> that helps the container decide what to do if there is more than one Web Bean that satisfies a particular contract. We'll get into the details in <xref linkend=\"injection\"/>."
-msgstr ""
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "No entanto, como o modelo stateless ou singleton, mas <emphasis>ao "
+#~ "contrário</emphasis> dos stateful session beans, o cliente não controla o "
+#~ "ciclo de vida da instância por explicitamente criar e destruí-lo. Em vez "
+#~ "disso, o <emphasis>escopo</emphasis> do Web Bean determina:"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "Tipos de publicação (deployment types)"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "o ciclo de vida de cada instância do Web Bean e"
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid "<emphasis>Deployment types</emphasis> let us classify our Web Beans by deployment scenario. A deployment type is an annotation that represents a particular deployment scenario, for example <literal>@Mock</literal>, <literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We apply the annotation to Web Beans which should be deployed in that scenario. A deployment type allows a whole set of Web Beans to be conditionally deployed, with a just single line of configuration."
-msgstr ""
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr ""
+#~ "que os clientes compartilham uma referência a uma instância específica do "
+#~ "Web Bean."
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid "Many Web Beans just use the default deployment type <literal>@Production</literal>, in which case no deployment type need be explicitly specified. All three Web Bean in our example have the deployment type <literal>@Production</literal>."
-msgstr ""
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "Os clientes (por exemplo, outros Web Beans) executam no mesmo contexto "
+#~ "verão a mesma instância do Web Bean. Mas os clientes em um contexto "
+#~ "diferente verão uma outra instância."
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid "In a testing environment, we might want to replace the <literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr ""
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "ele interagem por uma API pública bem definida"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "seus ciclos de vida são completamente desacoplados"
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid "We would enable the deployment type <literal>@Mock</literal> in our testing environment, to indicate that <literal>MockSentenceTranslator</literal> and any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr ""
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "Note que nem todos os clientes de um Web Bean são Web Beans. Outros "
+#~ "objetos, tais como Servlets ou Message-Driven Beans &#151; que são, por "
+#~ "natureza, não injetável, objetos contextuais &#151; podem também obter "
+#~ "referências a Web Beans por injeção."
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid "We'll talk more about this unique and powerful feature in <xref linkend=\"deploymenttypes\"/>."
-msgstr "Iremos falar mais sobre essa única e poderosa funcionalidade em <xref linkend=\"deploymenttypes\"/>."
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr ""
+#~ "Chega de mão abanando. Mais formalmente, de acordo com a especificação:"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "Escopo"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Um Web Bean compreende:"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid "The <emphasis>scope</emphasis> defines the lifecycle and visibility of instances of the Web Bean. The Web Beans context model is extensible, accommodating arbitrary scopes. However, certain important scopes are built-in to the specification, and provided by the Web Bean manager. A scope is represented by an annotation type."
-msgstr ""
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "Um conjunto (não vazio) de tipos de API (API types)"
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid "For example, any web application may have <emphasis>session scoped</emphasis> Web Beans:"
-msgstr "Por exemplo, qualquer aplicação web pode ter Web Beans com <emphasis>escopo de sessão (session scoped)</emphasis>:"
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "Um conjunto (não vazio) de tipos de anotações de binding "
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "A scope"
+#~ msgstr "Um escopo"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid "An instance of a session scoped Web Bean is bound to a user session and is shared by all requests that execute in the context of that session."
-msgstr ""
+#~ msgid "A deployment type"
+#~ msgstr "Um tipo de publicação (deployment type)"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid "By default, Web Beans belong to a special scope called the <emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are pure dependent objects of the object into which they are injected, and their lifecycle is bound to the lifecycle of that object."
-msgstr "Por padrão, os Web Beans pertencem a um escopo especial chamado de <emphasis>dependent pseudo-scope</emphasis>. Web Beans com este escopo são objetos puramente dependentes do objeto em que são injetados, e seu ciclo de vida está atrelado ao ciclo de vida desse objeto."
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "Opcionalmente, um nome Web Bean"
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "Falaremos mais sobre escopos no <xref linkend=\"scopescontexts\"/>."
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "Um conjunto de tipos de interceptor binding"
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Nomes Web Beans e Unified EL"
+#~ msgid "A Web Bean implementation"
+#~ msgstr "A implementação de Web Bean"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Um Web Bean pode ter um <emphasis>name</emphasis>, que lhe permite ser utilizado em expressões da Unified EL. É fácil especificar o nome de um Web Bean:"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr ""
+#~ "Vamos ver o que alguns destes termos significam, para o desenvolvedor Web "
+#~ "Bean."
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "Tipos de API, tipos de binding e injeção de dependências "
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "Agora, podemos facilmente utilizar o Web Bean em qualquer página JSF ou JSP:"
+#~ msgid "an API type, together with"
+#~ msgstr "um tipo de API, juntamente com"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid "a set of binding types."
+#~ msgstr "um conjunto de tipos de binding"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "É ainda mais fácil, deixar o nome ser atribuído pelo gerenciador do Web Bean:"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid "In this case, the name defaults to <literal>shoppingCart</literal> &#151; the unqualified class name, with the first character changed to lowercase."
-msgstr "Neste caso, o nome fica <literal>shoppingCart</literal> &#151; o nome da classe não qualificado (unqualified class name), com o primeiro caractere alterado para minúsculas."
+#~ msgid "Deployment types"
+#~ msgstr "Tipos de publicação (deployment types)"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "Tipos de interceptor binding"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid "Web Beans supports the interceptor functionality defined by EJB 3, not only for EJB beans, but also for plain Java classes. In addition, Web Beans provides a new approach to binding interceptors to EJB beans and other Web Beans."
-msgstr "Web Beans suporta a funcionalidade de interceptador (interceptor) definida pela EJB 3, não apenas para beans EJB , mas também para classes Java simples (plain Java classes). Além disso, a Web Beans oferece uma nova abordagem para vincular interceptores (binding interceptors) para beans EJB e outros Web Beans."
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "Iremos falar mais sobre essa única e poderosa funcionalidade em <xref "
+#~ "linkend=\"deploymenttypes\"/>."
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid "It remains possible to directly specify the interceptor class via use of the <literal>@Interceptors</literal> annotation:"
-msgstr ""
+#~ msgid "Scope"
+#~ msgstr "Escopo"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "Por exemplo, qualquer aplicação web pode ter Web Beans com "
+#~ "<emphasis>escopo de sessão (session scoped)</emphasis>:"
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid "However, it is more elegant, and better practice, to indirect the interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "No entanto, é mais elegante, e uma melhor prática, indirecionar o binding do interceptador através de um <emphasis>interceptor binding type</emphasis>:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "Por padrão, os Web Beans pertencem a um escopo especial chamado de "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans com este escopo "
+#~ "são objetos puramente dependentes do objeto em que são injetados, e seu "
+#~ "ciclo de vida está atrelado ao ciclo de vida desse objeto."
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid "We'll discuss Web Beans interceptors and decorators in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr ""
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr "Falaremos mais sobre escopos no <xref linkend=\"scopescontexts\"/>."
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "Que tipos de objetos podem ser Web Beans?"
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Nomes Web Beans e Unified EL"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid "We've already seen that JavaBeans, EJBs and some other Java classes can be Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr ""
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Um Web Bean pode ter um <emphasis>name</emphasis>, que lhe permite ser "
+#~ "utilizado em expressões da Unified EL. É fácil especificar o nome de um "
+#~ "Web Bean:"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "Web Beans Simples"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid "The Web Beans specification says that a concrete Java class is a <emphasis>simple</emphasis> Web Bean if:"
-msgstr "A especificação de Web Beans diz que uma classe Java concreta é um Web Bean <emphasis>simples</emphasis> se:"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr ""
+#~ "Agora, podemos facilmente utilizar o Web Bean em qualquer página JSF ou "
+#~ "JSP:"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid "it is not an EE container-managed component, like an EJB, a Servlet or a JPA entity,"
-msgstr "não é um componente gerenciado pelo container, como um EJB, um Servlet ou uma entidade da JPA,"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr ""
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr ""
+#~ "É ainda mais fácil, deixar o nome ser atribuído pelo gerenciador do Web "
+#~ "Bean:"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "não é um tipo parametrizado, e"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid "it has a constructor with no parameters, or a constructor annotated <literal>@Initializer</literal>."
-msgstr "que tem um construtor sem parâmetros, ou um construtor anotado com <literal>@Initializer</literal>."
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "Neste caso, o nome fica <literal>shoppingCart</literal> &#151; o nome da "
+#~ "classe não qualificado (unqualified class name), com o primeiro caractere "
+#~ "alterado para minúsculas."
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "Assim, quase todo JavaBean é um Web Bean simples."
+#~ msgid "Interceptor binding types"
+#~ msgstr "Tipos de interceptor binding"
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid "Every interface implemented directly or indirectly by a simple Web Bean is an API type of the simple Web Bean. The class and its superclasses are also API types."
-msgstr ""
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Beans suporta a funcionalidade de interceptador (interceptor) "
+#~ "definida pela EJB 3, não apenas para beans EJB , mas também para classes "
+#~ "Java simples (plain Java classes). Além disso, a Web Beans oferece uma "
+#~ "nova abordagem para vincular interceptores (binding interceptors) para "
+#~ "beans EJB e outros Web Beans."
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "Web Beans corporativos (Enterprise Web Beans)"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid "The specification says that all EJB 3-style session and singleton beans are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web Beans &#151; since they are not intended to be injected into other objects &#151; but they can take advantage of most of the functionality of Web Beans, including dependency injection and interceptors."
-msgstr ""
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "No entanto, é mais elegante, e uma melhor prática, indirecionar o binding "
+#~ "do interceptador através de um <emphasis>interceptor binding type</"
+#~ "emphasis>:"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid "Every local interface of an enterprise Web Bean that does not have a wildcard type parameter or type variable, and every one of its superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean has a bean class local view, the bean class, and every one of its superclasses, is also an API type."
-msgstr ""
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid "Stateful session beans should declare a remove method with no parameters or a remove method annotated <literal>@Destructor</literal>. The Web Bean manager calls this method to destroy the stateful session bean instance at the end of its lifecycle. This method is called the <emphasis>destructor</emphasis> method of the enterprise Web Bean."
-msgstr ""
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "Que tipos de objetos podem ser Web Beans?"
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "Simple Web Beans"
+#~ msgstr "Web Beans Simples"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid "So when should we use an enterprise Web Bean instead of a simple Web Bean? Well, whenever we need the advanced enterprise services offered by EJB, such as:"
-msgstr "Então, quando deveremos usar Web Bean corporativo (enterprise) em vez de um simples Web Bean? Bem, sempre que tivermos a necessidade de serviços corporatvios (enterprise) avançados oferecidos pelo EJB, tais como:"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "A especificação de Web Beans diz que uma classe Java concreta é um Web "
+#~ "Bean <emphasis>simples</emphasis> se:"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "gerenciamento de transações e segurança em nível de método,"
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "não é um componente gerenciado pelo container, como um EJB, um Servlet ou "
+#~ "uma entidade da JPA,"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "gerenciamento de concorrência,"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "não é um tipo parametrizado, e"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
-msgstr ""
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "que tem um construtor sem parâmetros, ou um construtor anotado com "
+#~ "<literal>@Initializer</literal>."
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "remoto e invocação de web service, e"
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "Assim, quase todo JavaBean é um Web Bean simples."
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "temporizadores (timers) e métodos assíncronos"
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "Web Beans corporativos (Enterprise Web Beans)"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid "we should use an enterprise Web Bean. When we don't need any of these things, a simple Web Bean will serve just fine."
-msgstr "devemos utilizar um Web Bean corporativo (enterprise). Quando não precisamos de nenhuma destas coisas, um Web Bean simples vai servir muito bem."
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid "Many Web Beans (including any session or application scoped Web Bean) are available for concurrent access. Therefore, the concurrency management provided by EJB 3.1 is especially useful. Most session and application scoped Web Beans should be EJBs."
-msgstr "Muitos Web Beans (incluindo qualquer Web Bean em escopo de sessão ou de aplicação) estão disponíveis para acesso concorrente. Por isso, o gerenciamento de concorrência fornecida pelo EJB 3.1 é especialmente útil. A maioria dos Web Beans em escopo de sessão e aplicação devem ser EJBs."
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "Então, quando deveremos usar Web Bean corporativo (enterprise) em vez de "
+#~ "um simples Web Bean? Bem, sempre que tivermos a necessidade de serviços "
+#~ "corporatvios (enterprise) avançados oferecidos pelo EJB, tais como:"
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid "Web Beans which hold references to heavy-weight resources, or hold a lot of internal state benefit from the advanced container-managed lifecycle defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> model, with its support for passivation and instance pooling."
-msgstr ""
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "gerenciamento de transações e segurança em nível de método,"
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid "Finally, it's usually obvious when method-level transaction management, method-level security, timers, remote methods or asynchronous methods are needed."
-msgstr "Por último, isso normalmente é óbvio quando gerenciamento de transações e segurança em nível de método, temporizadores, métodos remotos ou assíncronos são necessários."
+#~ msgid "concurrency management,"
+#~ msgstr "gerenciamento de concorrência,"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid "It's usually easy to start with simple Web Bean, and then turn it into an EJB, just by adding an annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr ""
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "remoto e invocação de web service, e"
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "Métodos produtores (producer methods)"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "temporizadores (timers) e métodos assíncronos"
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid "A <emphasis>producer method</emphasis> is a method that is called by the Web Bean manager to obtain an instance of the Web Bean when no instance exists in the current context. A producer method lets the application take full control of the instantiation process, instead of leaving instantiation to the Web Bean manager. For example:"
-msgstr ""
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "devemos utilizar um Web Bean corporativo (enterprise). Quando não "
+#~ "precisamos de nenhuma destas coisas, um Web Bean simples vai servir muito "
+#~ "bem."
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "Muitos Web Beans (incluindo qualquer Web Bean em escopo de sessão ou de "
+#~ "aplicação) estão disponíveis para acesso concorrente. Por isso, o "
+#~ "gerenciamento de concorrência fornecida pelo EJB 3.1 é especialmente "
+#~ "útil. A maioria dos Web Beans em escopo de sessão e aplicação devem ser "
+#~ "EJBs."
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "O resultado do método produtor é injetado como qualquer outro Web Bean."
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "Por último, isso normalmente é óbvio quando gerenciamento de transações e "
+#~ "segurança em nível de método, temporizadores, métodos remotos ou "
+#~ "assíncronos são necessários."
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid "Producer methods"
+#~ msgstr "Métodos produtores (producer methods)"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid "The method return type and all interfaces it extends/implements directly or indirectly are API types of the producer method. If the return type is a class, all superclasses are also API types."
-msgstr ""
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "Alguns métodos produtores retornam objetos que exigem destruição explícita :"
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "O resultado do método produtor é injetado como qualquer outro Web Bean."
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid "These producer methods may define matching <emphasis>disposal methods</emphasis>:"
-msgstr "Estes métodos produtores podem definir <emphasis>métodos eliminação (disposal methods)</emphasis>:"
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr ""
+#~ "Alguns métodos produtores retornam objetos que exigem destruição "
+#~ "explícita :"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid "This disposal method is called automatically by the Web Bean manager at the end of the request."
-msgstr "Este método de eliminação (disposal method) é chamado automaticamente pelo gerenciador do Web Bean no final da requisição."
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "Estes métodos produtores podem definir <emphasis>métodos eliminação "
+#~ "(disposal methods)</emphasis>:"
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
-msgstr "Falaremos mais sobre métodos produtores no <xref linkend=\"producermethods\"/>."
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS endpoints"
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr ""
+#~ "Este método de eliminação (disposal method) é chamado automaticamente "
+#~ "pelo gerenciador do Web Bean no final da requisição."
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the developer from the tedium of managing the lifecycles of all the various JMS objects required to send messages to queues and topics. We'll discuss JMS endpoints in <xref linkend=\"jms\"/>."
-msgstr ""
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "Falaremos mais sobre métodos produtores no <xref linkend=\"producermethods"
+#~ "\"/>."
 
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS endpoints"

Modified: doc/trunk/reference/pt-BR/master.po
===================================================================
--- doc/trunk/reference/pt-BR/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 12:52-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,50 +14,107 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "Nota"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
-msgid "JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
-msgstr "A JSR-299 mudou recentemente seu nome de \"Web Beans\" para \"Contextos Java e Injeção de Dependência\". O guia de referência ainda se refere a JSR-299 como \"Web Beans\" e a Implementação de Referência da JSR-299 como \"Web Beans RI\". Outra documentação, blogs, fóruns, etc  podem utilizar a nova nomenclatura, incluindo o novo nome para a Implementação de Referência da JSR-299 - \"Web Beans\"."
+msgid ""
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
+msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
-msgid "You'll also find that some of the more recent functionality to be specified is missing (such as producer fields, realization, asynchronous events, XML mapping of EE resources)."
-msgstr "Você também descobrirá que algumas das mais recentes funcionalidades não estão implementadas (como campos produtores, realização, eventos assíncronos, mapeamento XML dos recursos EE)."
+msgid ""
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
+msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "Utilizando objetos contextuais"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "Desenvolvendo código fracamente acoplado"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "Obtendo o máximo da tipificação forte"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans e o ecossistema Java EE"
 
 #. Tag: title
-#: master.xml:76
-#, no-c-format
-msgid "Web Beans Reference"
+#: master.xml:87
+#, fuzzy, no-c-format
+msgid "Weld reference"
 msgstr "Referência à Web Beans"
 
+#~ msgid "Note"
+#~ msgstr "Nota"
+
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "A JSR-299 mudou recentemente seu nome de \"Web Beans\" para \"Contextos "
+#~ "Java e Injeção de Dependência\". O guia de referência ainda se refere a "
+#~ "JSR-299 como \"Web Beans\" e a Implementação de Referência da JSR-299 "
+#~ "como \"Web Beans RI\". Outra documentação, blogs, fóruns, etc  podem "
+#~ "utilizar a nova nomenclatura, incluindo o novo nome para a Implementação "
+#~ "de Referência da JSR-299 - \"Web Beans\"."
+
+#~ msgid ""
+#~ "You'll also find that some of the more recent functionality to be "
+#~ "specified is missing (such as producer fields, realization, asynchronous "
+#~ "events, XML mapping of EE resources)."
+#~ msgstr ""
+#~ "Você também descobrirá que algumas das mais recentes funcionalidades não "
+#~ "estão implementadas (como campos produtores, realização, eventos "
+#~ "assíncronos, mapeamento XML dos recursos EE)."
+
+#~ msgid "Using contextual objects"
+#~ msgstr "Utilizando objetos contextuais"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "Desenvolvendo código fracamente acoplado"

Modified: doc/trunk/reference/pt-BR/next.po
===================================================================
--- doc/trunk/reference/pt-BR/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 12:56-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -22,18 +22,129 @@
 #. Tag: para
 #: next.xml:6
 #, no-c-format
-msgid "Because Web Beans is so new, there's not yet a lot of information available online."
-msgstr "Como a Web Beans é muito nova, ainda não existe muita informação disponível online."
+msgid ""
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"A implementação de referência de Web Beans (Web Beans RI) está sendo "
+"desenvolvida em <literal>http://seamframework.org/WebBeans</literal>. O blog "
+"do time de desenvolvimento da implementação de referência (RI) e do líder da "
+"especificação (Web Beans spec lead) em: <literal>http://in.relation.to</"
+"literal>. Esse artigo é substancialmente baseado em uma série de entradas de "
+"blogs  publicados lá."
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
-msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "Claro que a especificação de Web beans é a melhor fonte para mais informações sobre Web Beans. A especificação possui cerca de 100 páginas, duas vezes o tamanho desse artigo. Mas, evidentemente, abrange muitas informações que não abordamos. A especificação está disponível em <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+msgid ""
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
-msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
-msgstr "A implementação de referência de Web Beans (Web Beans RI) está sendo desenvolvida em <literal>http://seamframework.org/WebBeans</literal>. O blog do time de desenvolvimento da implementação de referência (RI) e do líder da especificação (Web Beans spec lead) em: <literal>http://in.relation.to</literal>. Esse artigo é substancialmente baseado em uma série de entradas de blogs  publicados lá."
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr ""
+#~ "Como a Web Beans é muito nova, ainda não existe muita informação "
+#~ "disponível online."
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "Claro que a especificação de Web beans é a melhor fonte para mais "
+#~ "informações sobre Web Beans. A especificação possui cerca de 100 páginas, "
+#~ "duas vezes o tamanho desse artigo. Mas, evidentemente, abrange muitas "
+#~ "informações que não abordamos. A especificação está disponível em "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."

Modified: doc/trunk/reference/pt-BR/part1.po
===================================================================
--- doc/trunk/reference/pt-BR/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 13:08-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,164 +14,373 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
-msgid "The Web Beans (JSR-299) specification defines a set of services for the Java EE environment that makes applications much easier to develop. Web Beans layers an enhanced lifecycle and interaction model over existing Java component types including JavaBeans and Enterprise Java Beans. As a complement to the traditional Java EE programming model, the Web Beans services provide:"
-msgstr "A especificação Web Beans (JSR-299) define um conjunto de serviços para o ambiente Java EE, o  que torna muito simples o desenvolvimento de aplicações. Web Beans adiciona um avançado ciclo de vida e um modelo interativo sobre os tipos de componentes Java existentes, incluindo os JavaBeans e Enterprise Java Beans. Como complemento ao tradicional modelo de programação Java EE, a Web Beans provê:"
+#: part1.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"A especificação Web Beans (JSR-299) define um conjunto de serviços para o "
+"ambiente Java EE, o  que torna muito simples o desenvolvimento de "
+"aplicações. Web Beans adiciona um avançado ciclo de vida e um modelo "
+"interativo sobre os tipos de componentes Java existentes, incluindo os "
+"JavaBeans e Enterprise Java Beans. Como complemento ao tradicional modelo de "
+"programação Java EE, a Web Beans provê:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
-msgid "an improved lifecycle for stateful components, bound to well-defined <emphasis>contexts</emphasis>,"
-msgstr "um ciclo de vida melhorado para componentes stateful, vinculados a <emphasis>contextos</emphasis> bem definidos,"
+#: part1.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"an improved lifecycle for stateful objects, bound to well-defined "
+"<emphasis>contexts</emphasis>,"
+msgstr ""
+"um ciclo de vida melhorado para componentes stateful, vinculados a "
+"<emphasis>contextos</emphasis> bem definidos,"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
-msgstr "uma abordagem typesafe para <emphasis>injeção de dependência</emphasis>,"
+msgstr ""
+"uma abordagem typesafe para <emphasis>injeção de dependência</emphasis>,"
 
 #. Tag: para
-#: part1.xml:21
-#, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr "interação via <emphasis>notificação de eventos</emphasis>, e"
 
 #. Tag: para
-#: part1.xml:25
-#, no-c-format
-msgid "a better approach to binding <emphasis>interceptors</emphasis> to components, along with a new kind of interceptor, called a <emphasis>decorator</emphasis>, that is more appropriate for use in solving business problems."
-msgstr "uma melhor abordagem para associar <emphasis>interceptadores</emphasis> a  componentes, juntamente com um novo tipo de interceptador, chamado de <emphasis>decorador</emphasis>, que é mais adequado para utilização na resolução de problemas de negócio."
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"uma melhor abordagem para associar <emphasis>interceptadores</emphasis> a  "
+"componentes, juntamente com um novo tipo de interceptador, chamado de "
+"<emphasis>decorador</emphasis>, que é mais adequado para utilização na "
+"resolução de problemas de negócio."
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:45
 #, no-c-format
-msgid "Dependency injection, together with contextual lifecycle management, saves the user of an unfamiliar API from having to ask and answer the following questions:"
-msgstr "Injeção de dependência, juntamente com o gerenciamento contextual do ciclo de vida, livra o usuário de uma API desconhecida  de ter de perguntar e reponders às seguintes questões:"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:51
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "qual o ciclo de vida desse objeto?"
+msgid ""
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:61
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "quantos clientes simultâneos eu posso ter?"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:68
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "é multithread?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:71
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "de onde posso obter um?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:75
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "eu preciso explicitamente destruí-lo?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:83
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "onde devo manter minha referência quando não estou usando-o diretamente?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:86
 #, no-c-format
-msgid "how can I add an indirection layer, so that the implementation of this object can vary at deployment time?"
-msgstr "como posso adicionar uma camada de indireção, de modo que a implementação desse objeto possa variar em tempo de implantação?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:89
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
-msgstr "como compartilhar esse objeto entre outros objetos?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:92
 #, no-c-format
-msgid "A Web Bean specifies only the type and semantics of other Web Beans it depends upon. It need not be aware of the actual lifecycle, concrete implementation, threading model or other clients of any Web Bean it depends upon. Even better, the concrete implementation, lifecycle and threading model of a Web Bean it depends upon may vary according to the deployment scenario, without affecting any client."
-msgstr "Um Web Bean especifica apenas o tipo e a semântica de outros Web Beans dos quais que ele dependa. Ele não precisa ser consciente do próprio ciclo de vida, implementação concreta, modelo de threading ou outro cliente de qualquer Web Bean de que ele dependa.Melhor ainda: a implementação concreta, ciclo de vida e o modelo de threading do Web Bean de que ele dependa  podem variar de acordo com o cenário de implantação, sem afetar qualquer cliente."
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
+#: part1.xml:95
 #, no-c-format
-msgid "Events, interceptors and decorators enhance the <emphasis>loose-coupling</emphasis> that is inherent in this model:"
-msgstr "Eventos, interceptadores e decoradores permitem o <emphasis>fraco acoplamento</emphasis> que é inerente nesse modelo:"
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:77
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers,"
-msgstr "<emphasis>notificadores de eventos</emphasis> desacoplam os produtores de eventos dos consumidores dos eventos,"
+#: part1.xml:99
+#, fuzzy, no-c-format
+msgid ""
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"Injeção de dependência, juntamente com o gerenciamento contextual do ciclo "
+"de vida, livra o usuário de uma API desconhecida  de ter de perguntar e "
+"reponders às seguintes questões:"
 
 #. Tag: para
-#: part1.xml:81
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic, and"
-msgstr "<emphasis>interceptadores</emphasis> desacoplam questões técnicas da lógica de negócios, e"
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "qual o ciclo de vida desse objeto?"
 
 #. Tag: para
-#: part1.xml:85
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> allow business concerns to be compartmentalized."
-msgstr "<emphasis>decoradores</emphasis> permitem que questões de negócios sejam compartimentadas."
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "quantos clientes simultâneos eu posso ter?"
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
-msgid "Most importantly, Web Beans provides all these facilities in a <emphasis>typesafe</emphasis> way. Web Beans never uses string-based identifiers to determine how collaborating objects fit together. And XML, though it remains an option, is rarely used. Instead, Web Beans uses the typing information that is already available in the Java object model, together with a new pattern, called <emphasis>binding annotations</emphasis>, to wire together Web Beans, their dependencies, their interceptors and decorators and their event consumers."
-msgstr "Mais importante, Web Beans oferece todas essas facilidades de uma maneira <emphasis>typesafe</emphasis>. Web Beans nunca utiliza identificadores baseados em strings para determinar o modo como os objetos se relacionam. XML  continua a ser uma opção, mas raramente é utilizado. Em vez disso, Web Beans utiliza a informação de tipo que está disponível no modelo de objeto Java, juntamente com um novo padrão, chamado <emphasis>anotações de binding</emphasis>, para interconectar Web Beans, suas dependências, seus interceptadores e decoradores e seus consumidores de eventos."
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "é multithread?"
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:114
 #, no-c-format
-msgid "The Web Beans services are general and apply to the following types of components that exist in the Java EE environment:"
-msgstr "Os serviços dos Web Beans são genéricos e aplicados aos seguintes tipo de componentes existentes no ambiente Java EE:"
+msgid "How do I get access to it from a client?"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "eu preciso explicitamente destruí-lo?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr ""
+"onde devo manter minha referência quando não estou usando-o diretamente?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"como posso adicionar uma camada de indireção, de modo que a implementação "
+"desse objeto possa variar em tempo de implantação?"
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
+msgstr "como compartilhar esse objeto entre outros objetos?"
+
+#. Tag: para
+#: part1.xml:137
 #, no-c-format
-msgid "all JavaBeans,"
-msgstr "todos JavaBeans,"
+msgid ""
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:108
+#: part1.xml:142
+#, fuzzy, no-c-format
+msgid ""
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Um Web Bean especifica apenas o tipo e a semântica de outros Web Beans dos "
+"quais que ele dependa. Ele não precisa ser consciente do próprio ciclo de "
+"vida, implementação concreta, modelo de threading ou outro cliente de "
+"qualquer Web Bean de que ele dependa.Melhor ainda: a implementação concreta, "
+"ciclo de vida e o modelo de threading do Web Bean de que ele dependa  podem "
+"variar de acordo com o cenário de implantação, sem afetar qualquer cliente."
+
+#. Tag: para
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"Eventos, interceptadores e decoradores permitem o <emphasis>fraco "
+"acoplamento</emphasis> que é inerente nesse modelo:"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
-msgid "all EJBs, and"
-msgstr "todos EJBs, e"
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers,"
+msgstr ""
+"<emphasis>notificadores de eventos</emphasis> desacoplam os produtores de "
+"eventos dos consumidores dos eventos,"
 
 #. Tag: para
-#: part1.xml:111
+#: part1.xml:159
 #, no-c-format
-msgid "all Servlets."
-msgstr "todos os Servlets."
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic, and"
+msgstr ""
+"<emphasis>interceptadores</emphasis> desacoplam questões técnicas da lógica "
+"de negócios, e"
 
 #. Tag: para
-#: part1.xml:115
+#: part1.xml:163
 #, no-c-format
-msgid "Web Beans even provides the necessary integration points so that other kinds of components defined by future Java EE specifications or by non-standard frameworks may be cleanly integrated with Web Beans, take advantage of the Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans provê ainda pontos de integração necessários para que outros tipos de componentes definidos pelas futuras especificações Java EE ou por frameworks não-padrão possam ser transparentemente integrados com a Web Beans, tirando proveito dos serviços da Web Beans e interagindo com qualquer outro tipo de Web Bean."
+msgid ""
+"<emphasis>decorators</emphasis> allow business concerns to be "
+"compartmentalized."
+msgstr ""
+"<emphasis>decoradores</emphasis> permitem que questões de negócios sejam "
+"compartimentadas."
 
 #. Tag: para
-#: part1.xml:120
+#: part1.xml:168
+#, fuzzy, no-c-format
+msgid ""
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"Mais importante, Web Beans oferece todas essas facilidades de uma maneira "
+"<emphasis>typesafe</emphasis>. Web Beans nunca utiliza identificadores "
+"baseados em strings para determinar o modo como os objetos se relacionam. "
+"XML  continua a ser uma opção, mas raramente é utilizado. Em vez disso, Web "
+"Beans utiliza a informação de tipo que está disponível no modelo de objeto "
+"Java, juntamente com um novo padrão, chamado <emphasis>anotações de binding</"
+"emphasis>, para interconectar Web Beans, suas dependências, seus "
+"interceptadores e decoradores e seus consumidores de eventos."
+
+#. Tag: para
+#: part1.xml:177
 #, no-c-format
-msgid "Web Beans was influenced by a number of existing Java frameworks, including Seam, Guice and Spring. However, Web Beans has its own very distinct character: more typesafe than Seam, more stateful and less XML-centric than Spring, more web and enterprise-application capable than Guice."
-msgstr "A Web Beans foi influenciada por inúmeros frameworks Java existentes, incluindo Seam, Guice e Spring. Entretanto, Web Beans tem suas prórias características: mais typesafe que o Seam, mais stateful e menos centrada em XML que o Spring, mais web e capaz para aplicações corporativas que o Guice."
+msgid ""
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:183
+#, fuzzy, no-c-format
+msgid ""
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans provê ainda pontos de integração necessários para que outros tipos "
+"de componentes definidos pelas futuras especificações Java EE ou por "
+"frameworks não-padrão possam ser transparentemente integrados com a Web "
+"Beans, tirando proveito dos serviços da Web Beans e interagindo com qualquer "
+"outro tipo de Web Bean."
+
+#. Tag: para
+#: part1.xml:189
+#, fuzzy, no-c-format
+msgid ""
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"A Web Beans foi influenciada por inúmeros frameworks Java existentes, "
+"incluindo Seam, Guice e Spring. Entretanto, Web Beans tem suas prórias "
+"características: mais typesafe que o Seam, mais stateful e menos centrada em "
+"XML que o Spring, mais web e capaz para aplicações corporativas que o Guice."
+
+#. Tag: para
+#: part1.xml:197
 #, no-c-format
-msgid "Most importantly, Web Beans is a JCP standard that integrates cleanly with Java EE, and with any Java SE environment where embeddable EJB Lite is available."
-msgstr "O mais importante: Web Beans é um padrão do JCP, que se integra transparentemente com o Java EE e com qualquer outro ambiente Java SE em que o EJB Lite embutível esteja disponível."
+msgid ""
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "de onde posso obter um?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Os serviços dos Web Beans são genéricos e aplicados aos seguintes tipo de "
+#~ "componentes existentes no ambiente Java EE:"
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "todos JavaBeans,"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "todos EJBs, e"
+
+#~ msgid "all Servlets."
+#~ msgstr "todos os Servlets."
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "O mais importante: Web Beans é um padrão do JCP, que se integra "
+#~ "transparentemente com o Java EE e com qualquer outro ambiente Java SE em "
+#~ "que o EJB Lite embutível esteja disponível."

Modified: doc/trunk/reference/pt-BR/part2.po
===================================================================
--- doc/trunk/reference/pt-BR/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 13:11-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,66 +16,113 @@
 #. Tag: para
 #: part2.xml:5
 #, no-c-format
-msgid "The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. We've already seen three means of achieving loose coupling:"
-msgstr "O primeiro grande tema da Web Beans é <emphasis>fraco acoplamento</emphasis>. Já vimos três meios de alcançar o fraco acoplamento:"
+msgid ""
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>tipos de implantação</emphasis> habilitam o polimorfismo em tempo de implantação,"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>método produtores</emphasis> habilitam o polimorfismo em tempo de execução, e"
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
-msgid "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean lifecycles."
-msgstr "<emphasis>gerenciamento contextual do ciclo de vida</emphasis> desacopla o ciclo de vida do Web Bean."
+msgid ""
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid "These techniques serve to enable loose coupling of client and server. The client is no longer tightly bound to an implementation of an API, nor is it required to manage the lifecycle of the server object. This approach lets <emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "Essas técnicas servem para habilitar o fraco acoplamento entre o cliente e o servidor. O cliente não está mais fortemente acoplado a uma implementação de uma API, nem é obrigado a gerenciar o ciclo de vida do objeto servidor. Essa abordagem permite que <emphasis>objetos stateful interajam como se fossem serviços</emphasis>."
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "O primeiro grande tema da Web Beans é <emphasis>fraco acoplamento</"
+#~ "emphasis>. Já vimos três meios de alcançar o fraco acoplamento:"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system can respond to change in a well-defined manner. In the past, frameworks that attempted to provide the facilities listed above invariably did it by sacrificing type safety. Web Beans is the first technology that achieves this level of loose coupling in a typesafe way."
-msgstr "O fraco acoplamento torna o sistema mais <emphasis>dinâmico</emphasis>. O sistema pode responder a mudanças de uma maneira bem definida. No passado, frameworks que tentaram prover essas facilidades acima listadas, invariavelmente acabaram sacrificando a type safety. A Web Beans é a primeira tecnologia que alcança esse nível de fraco acoplamento de uma meneira typesafe."
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "<emphasis>tipos de implantação</emphasis> habilitam o polimorfismo em "
+#~ "tempo de implantação,"
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid "Web Beans provides three extra important facilities that further the goal of loose coupling:"
-msgstr "Web Beans provê três facilidades extras importantes que ultrapassam o objetivo do fraco acoplamento:"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "<emphasis>método produtores</emphasis> habilitam o polimorfismo em tempo "
+#~ "de execução, e"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic,"
-msgstr "<emphasis>interceptadores</emphasis> desacomplam detalhes técnicos da lógica de negócios,"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>gerenciamento contextual do ciclo de vida</emphasis> desacopla "
+#~ "o ciclo de vida do Web Bean."
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> may be used to decouple some business concerns, and"
-msgstr "<emphasis>decoradores</emphasis> podem ser utilizados para desacoplar detalhes de negócios, e"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "Essas técnicas servem para habilitar o fraco acoplamento entre o cliente "
+#~ "e o servidor. O cliente não está mais fortemente acoplado a uma "
+#~ "implementação de uma API, nem é obrigado a gerenciar o ciclo de vida do "
+#~ "objeto servidor. Essa abordagem permite que <emphasis>objetos stateful "
+#~ "interajam como se fossem serviços</emphasis>."
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers."
-msgstr "<emphasis>notificadores de eventos</emphasis> desacoplam os produtores de eventos dos consumidores de eventos."
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "O fraco acoplamento torna o sistema mais <emphasis>dinâmico</emphasis>. O "
+#~ "sistema pode responder a mudanças de uma maneira bem definida. No "
+#~ "passado, frameworks que tentaram prover essas facilidades acima listadas, "
+#~ "invariavelmente acabaram sacrificando a type safety. A Web Beans é a "
+#~ "primeira tecnologia que alcança esse nível de fraco acoplamento de uma "
+#~ "meneira typesafe."
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "Primeiramente, exploraremos os interceptadores"
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr ""
+#~ "Web Beans provê três facilidades extras importantes que ultrapassam o "
+#~ "objetivo do fraco acoplamento:"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "<emphasis>interceptadores</emphasis> desacomplam detalhes técnicos da "
+#~ "lógica de negócios,"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "<emphasis>decoradores</emphasis> podem ser utilizados para desacoplar "
+#~ "detalhes de negócios, e"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "<emphasis>notificadores de eventos</emphasis> desacoplam os produtores de "
+#~ "eventos dos consumidores de eventos."
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "Primeiramente, exploraremos os interceptadores"

Modified: doc/trunk/reference/pt-BR/part3.po
===================================================================
--- doc/trunk/reference/pt-BR/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 13:21-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,102 +16,252 @@
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "O segundo grande tema da Web Beans é a <emphasis>tipificação forte</emphasis>. As informações sobre as dependências, interceptores e decoradores de um Web Bean, e as informações sobre os consumidores de eventos para um produtor de evento, estão contidas em construtores Java typesafe, que podem ser validados pelo compilador."
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "Você não vê identificadores baseados em strings no código Web Beans - não porque o framework está escondendo-os de você utilizando padrões de regras inteligentes &#151; o chamado \"configuração por convenção\" -, mas porque simplesmente não existem strings ali!"
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "A  vantagem óbvia dessa abordagem é que <emphasis>qualquer</emphasis> IDE pode fornecer auto completion, validação e refactoring sem necessidade de ferramentas especiais. Mas há uma segunda vantagem, menos imediatamente óbvia. Acontece que quando você começar a pensar na identificação de objetos, eventos ou interceptadores por meio de anotações - em vez de nomes -, você tem uma oportunidade para aumentar o nível semântico do seu código."
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
-msgstr "Web Beans incentiva você a desenvolver anotações que modelam conceitos. Por exemplo:"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:27
 #, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"O segundo grande tema da Web Beans é a <emphasis>tipificação forte</"
+"emphasis>. As informações sobre as dependências, interceptores e decoradores "
+"de um Web Bean, e as informações sobre os consumidores de eventos para um "
+"produtor de evento, estão contidas em construtores Java typesafe, que podem "
+"ser validados pelo compilador."
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Você não vê identificadores baseados em strings no código Web Beans - não "
+"porque o framework está escondendo-os de você utilizando padrões de regras "
+"inteligentes &#151; o chamado \"configuração por convenção\" -, mas porque "
+"simplesmente não existem strings ali!"
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"A  vantagem óbvia dessa abordagem é que <emphasis>qualquer</emphasis> IDE "
+"pode fornecer auto completion, validação e refactoring sem necessidade de "
+"ferramentas especiais. Mas há uma segunda vantagem, menos imediatamente "
+"óbvia. Acontece que quando você começar a pensar na identificação de "
+"objetos, eventos ou interceptadores por meio de anotações - em vez de nomes "
+"-, você tem uma oportunidade para aumentar o nível semântico do seu código."
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
+msgstr ""
+"Web Beans incentiva você a desenvolver anotações que modelam conceitos. Por "
+"exemplo:"
+
+#. Tag: para
+#: part3.xml:87
+#, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> ou"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "em vez de utilizar nomes compostos, como"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> ou"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "As anotações são reutilizáveis. Elas ajudam a descrever qualidades comuns de partes diferentes do sistema. Elas nos ajudam a categorizar e entender o nosso código. Elas nos ajudam a lidar com questões comuns, de uma maneira comum. Elas tornam o nosso código mais legível e mais compreensível."
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"As anotações são reutilizáveis. Elas ajudam a descrever qualidades comuns de "
+"partes diferentes do sistema. Elas nos ajudam a categorizar e entender o "
+"nosso código. Elas nos ajudam a lidar com questões comuns, de uma maneira "
+"comum. Elas tornam o nosso código mais legível e mais compreensível."
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "<emphasis>Estereótipos</emphasis> Web Beans levam essa idéia um pouco mais longe. Um estereótipo modela um <emphasis>papel</emphasis> comum na sua arquitetura de aplicação. Ele incorpora várias propriedades do papel - incluindo o escopo, bindings de interceptadores, tipos de implantação, etc - em um único pacote reutilizável."
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"<emphasis>Estereótipos</emphasis> Web Beans levam essa idéia um pouco mais "
+"longe. Um estereótipo modela um <emphasis>papel</emphasis> comum na sua "
+"arquitetura de aplicação. Ele incorpora várias propriedades do papel - "
+"incluindo o escopo, bindings de interceptadores, tipos de implantação, etc - "
+"em um único pacote reutilizável."
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "Mesmo os metadados da Web Beans são fortemente tipados! Não há um compilador para XML, então a Web Beans tira proveito de esquemas XML para validar os tipos Java e os atributos que aparecem em XML. Essa abordagem acaba por tornar o XML mais legível, assim como anotações deixam nosso código Java mais legível."
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"Nós agora estamos prontos para verificar mais algumas funcionalidades "
+"avançadas da Web Beans. Tenha em mente que essas funcionalidades existem "
+"para tornar nosso código fácil para validar e, ao mesmo tempo, mais fácil de "
+"entender. Na maioria das vezes você nem <emphasis>precisa</emphasis> se "
+"preocupar em utilizar essas funcionalidades, mas se forem fáceis de usar, "
+"você apreciará seu poder."
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "Nós agora estamos prontos para verificar mais algumas funcionalidades avançadas da Web Beans. Tenha em mente que essas funcionalidades existem para tornar nosso código fácil para validar e, ao mesmo tempo, mais fácil de entender. Na maioria das vezes você nem <emphasis>precisa</emphasis> se preocupar em utilizar essas funcionalidades, mas se forem fáceis de usar, você apreciará seu poder."
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "Mesmo os metadados da Web Beans são fortemente tipados! Não há um "
+#~ "compilador para XML, então a Web Beans tira proveito de esquemas XML para "
+#~ "validar os tipos Java e os atributos que aparecem em XML. Essa abordagem "
+#~ "acaba por tornar o XML mais legível, assim como anotações deixam nosso "
+#~ "código Java mais legível."

Modified: doc/trunk/reference/pt-BR/part4.po
===================================================================
--- doc/trunk/reference/pt-BR/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 20:34-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -16,18 +16,71 @@
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
-msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
-msgstr "A terceira motivação da Web Beans é <emphasis>integração</emphasis>. Web Beans foi projetada para trabalhar em conjunto com outras tecnologias, ajudando o desenvolvedor a trabalhar outras tecnologias conjuntamente. Web Beans é uma tecnologia aberta. Ela faz parte do ecossistema Java EE, e é por si só a base para um novo ecossistema de extensões portáveis e integração com os frameworks e as tecnologias existentes."
+msgid ""
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
-msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
-msgstr "Nós já vimos como Web Beans ajuda a integrar EJB e JSF, permitindo que EJBs sejam associados diretamente a páginas JSF . Isso é só o começo. Web Beans oferece o mesmo potencial para diversas outras tecnologias, tais como motores de Gerenciamento de Processos de Negócios, outros Frameworks Web  e modelos de componentes de terceiros. A plataforma Java EE nunca será capaz de padronizar todas as tecnologias interessantes que são utilizadas no mundo de desenvolvimento de aplicações Java, mas a Web Beans facilita a utilização das tecnologias que ainda não fazem parte da plataforma suavemente dentro do ambiente Java EE. "
+#, fuzzy, no-c-format
+msgid ""
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"Nós já vimos como Web Beans ajuda a integrar EJB e JSF, permitindo que EJBs "
+"sejam associados diretamente a páginas JSF . Isso é só o começo. Web Beans "
+"oferece o mesmo potencial para diversas outras tecnologias, tais como "
+"motores de Gerenciamento de Processos de Negócios, outros Frameworks Web  e "
+"modelos de componentes de terceiros. A plataforma Java EE nunca será capaz "
+"de padronizar todas as tecnologias interessantes que são utilizadas no mundo "
+"de desenvolvimento de aplicações Java, mas a Web Beans facilita a utilização "
+"das tecnologias que ainda não fazem parte da plataforma suavemente dentro do "
+"ambiente Java EE. "
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
-msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
-msgstr "Estamos prestes a ver como tirar o máximo proveito da plataforma Java EE em uma aplicação que utiliza Web Beans. Reuniremos, brevemente, um conjunto de SPIs que são fornecidas para suportar extensões portáveis para Web Beans. Talvez você nunca precisará usar essas SPIs diretamente, mas é bom saber que estão lá se você precisar delas. Mais importante: você tirará proveito delas indiretamente, toda vez que você utilizar uma extensão de terceiros."
+#: part4.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"We're about to see how to take full advantage of the Java EE platform in an "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"Estamos prestes a ver como tirar o máximo proveito da plataforma Java EE em "
+"uma aplicação que utiliza Web Beans. Reuniremos, brevemente, um conjunto de "
+"SPIs que são fornecidas para suportar extensões portáveis para Web Beans. "
+"Talvez você nunca precisará usar essas SPIs diretamente, mas é bom saber que "
+"estão lá se você precisar delas. Mais importante: você tirará proveito delas "
+"indiretamente, toda vez que você utilizar uma extensão de terceiros."
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "A terceira motivação da Web Beans é <emphasis>integração</emphasis>. Web "
+#~ "Beans foi projetada para trabalhar em conjunto com outras tecnologias, "
+#~ "ajudando o desenvolvedor a trabalhar outras tecnologias conjuntamente. "
+#~ "Web Beans é uma tecnologia aberta. Ela faz parte do ecossistema Java EE, "
+#~ "e é por si só a base para um novo ecossistema de extensões portáveis e "
+#~ "integração com os frameworks e as tecnologias existentes."

Modified: doc/trunk/reference/pt-BR/part5.po
===================================================================
--- doc/trunk/reference/pt-BR/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 15:56-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -15,13 +16,45 @@
 
 #. Tag: para
 #: part5.xml:5
-#, no-c-format
-msgid "Web Beans is the reference implementation of JSR-299, and is used by JBoss AS and Glassfish to provide JSR-299 services for Java Enterprise Edition applications. Web Beans also goes beyond the environments and APIs defined by the JSR-299 specification and provides support for a number of other environments (such as a servlet container such as Tomcat, or Java SE) and additional APIs and modules (such as logging, XSD generation for the JSR-299 XML deployment descriptors)."
-msgstr "Web Beans é a implementação de referência da JSR-299  e é utilizada pelo JBoss AS e pelo Glassfish para prover serviços JSR-299 para aplicações Java Enterprise Edition. Web Beans vai além dos ambientes e APIs definidos pela especificação JSR-299 e fornece suporte a uma série de outros ambientes (tais como um servlet container como o Tomcat, ou o Java SE) e APIs e módulos adicionais (como logging, geração de XSD para os descritores de implantação XML da JSR-299)."
+#, fuzzy, no-c-format
+msgid ""
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
+"environments (such as a servlet container such as Tomcat, or Java SE) and "
+"additional APIs and modules (such as logging and bean utilities)."
+msgstr ""
+"Web Beans é a implementação de referência da JSR-299  e é utilizada pelo "
+"JBoss AS e pelo Glassfish para prover serviços JSR-299 para aplicações Java "
+"Enterprise Edition. Web Beans vai além dos ambientes e APIs definidos pela "
+"especificação JSR-299 e fornece suporte a uma série de outros ambientes "
+"(tais como um servlet container como o Tomcat, ou o Java SE) e APIs e "
+"módulos adicionais (como logging, geração de XSD para os descritores de "
+"implantação XML da JSR-299)."
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
-msgid "If you want to get started quickly using Web Beans with JBoss AS or Tomcat and experiment with one of the examples, take a look at <xref linkend=\"ri\"/>. Otherwise read on for a exhaustive discussion of using Web Beans in all the environments and application servers it supports, as well the Web Beans extensions."
-msgstr "Se pretende começar a utilizar rapidamente a Web Beans com o JBoss AS ou com o Tomcat  e experimentar um dos exemplos, dê uma olhada em <xref linkend=\"ri\"/>. De qualquer maneira, continue lendo para uma discussão exaustiva da utilização da Web Beans em todos os ambientes e servidores de aplicações suportados, bem como as extensões da Web Beans ."
+msgid ""
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
+msgstr ""
 
+#. Tag: para
+#: part5.xml:18
+#, fuzzy, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""
+"Se pretende começar a utilizar rapidamente a Web Beans com o JBoss AS ou com "
+"o Tomcat  e experimentar um dos exemplos, dê uma olhada em <xref linkend=\"ri"
+"\"/>. De qualquer maneira, continue lendo para uma discussão exaustiva da "
+"utilização da Web Beans em todos os ambientes e servidores de aplicações "
+"suportados, bem como as extensões da Web Beans ."

Modified: doc/trunk/reference/pt-BR/producermethods.po
===================================================================
--- doc/trunk/reference/pt-BR/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 16:06-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -21,13 +21,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "Métodos produtores permitem superarmos certas limitações que surgem quando o "
 "gerenciador do Web Bean, em vez da aplicação, é responsável por instanciar "
@@ -36,32 +35,29 @@
 "linkend=\"xml\"/>.)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "De acordo com a especificação:"
 
 #. Tag: para
-#: producermethods.xml:16
-#, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+#: producermethods.xml:18
+#, fuzzy, no-c-format
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 "Um método produtor Web Beans funciona como uma fonte de objetos a ser "
 "injetado, quando:"
 
 #. Tag: para
-#: producermethods.xml:20
-#, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+#: producermethods.xml:22
+#, fuzzy, no-c-format
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 "os objetos a serem injetados não forem obrigados a ser instâncias de Web "
 "Beans,"
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
@@ -69,58 +65,57 @@
 "execução ou"
 
 #. Tag: para
-#: producermethods.xml:26
-#, no-c-format
+#: producermethods.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 "os objetos requerem alguma inicialização personalizada que não é realizada "
 "pelo construtor do Web Bean"
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "Por exemplo, métodos produtores permitem:"
 
 #. Tag: para
-#: producermethods.xml:37
-#, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+#: producermethods.xml:40
+#, fuzzy, no-c-format
+msgid "expose a JPA entity as a bean,"
 msgstr "expor uma entidade JPA como um Web Bean,"
 
 #. Tag: para
-#: producermethods.xml:40
-#, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+#: producermethods.xml:43
+#, fuzzy, no-c-format
+msgid "expose any JDK class as a bean,"
 msgstr "expor qualquer classe do JDK como um Web Bean,"
 
 #. Tag: para
-#: producermethods.xml:43
-#, no-c-format
+#: producermethods.xml:46
+#, fuzzy, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 "definir vários Web Beans, com diferentes escopos ou inicialização, para a "
 "mesma implementação da classe, ou"
 
 #. Tag: para
-#: producermethods.xml:47
-#, no-c-format
-msgid "vary the implementation of an API type at runtime."
+#: producermethods.xml:51
+#, fuzzy, no-c-format
+msgid "vary the implementation of a bean type at runtime."
 msgstr "variar a implementação de um tipo da API em tempo de execução."
 
 #. Tag: para
-#: producermethods.xml:51
-#, no-c-format
+#: producermethods.xml:55
+#, fuzzy, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 "Em particular, métodos produtores permite-nos utilizar o polimorfismo em "
 "tempo de execução com Web Beans. Como vimos, os tipo de implantação são uma "
@@ -129,26 +124,22 @@
 "fixada. Um método produtor não tem essa limitação:"
 
 #. Tag: programlisting
-#: producermethods.xml:56
-#, no-c-format
+#: producermethods.xml:61
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -171,25 +162,25 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr "Considere o ponto de injeção:"
 
 #. Tag: programlisting
-#: producermethods.xml:60
-#, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+#: producermethods.xml:65
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
 
 #. Tag: para
-#: producermethods.xml:62
-#, no-c-format
+#: producermethods.xml:67
+#, fuzzy, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 "Esse ponto de injeção tem o mesmo tipo e anotações de binding que o método "
 "produtor. Assim, resolve para o método produtor utilizando as regras de "
@@ -197,19 +188,19 @@
 "Bean Web para obter uma instância para servir esse ponto de injeção."
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "Escopo de um método produtor"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "O escopo padrão dos métodos produtores é <literal>@Dependent</literal>, e, "
@@ -219,7 +210,7 @@
 "<literal>PaymentStrategy</literal> para cada sessão do usuário."
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -229,12 +220,12 @@
 "<literal>@SessionScoped</literal> ao método."
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -243,7 +234,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -255,13 +246,13 @@
 "será invocado novamente na mesma sessão."
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "Injeção em métodos produtores"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -277,29 +268,29 @@
 "interceptadores."
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "Se  não é isso  o que queremos, podemos utilizar a injeção de dependência no "
 "método produtor para obter instâncias do Web Bean:"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -315,17 +306,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "Espere, o que se <literal>CreditCardPaymentStrategy</literal> é um Web Bean "
 "de escopo de requisição? Então o método produtor tem o efeito de \"promover"
@@ -337,13 +328,13 @@
 "cuidado quando retornar instâncias de Web Bean em métodos produtores!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "Existem pelo menos três maneiras de corrigirmos esse erro. Podemos alterar o "
@@ -353,43 +344,43 @@
 "<literal>@RequestScoped</literal>."
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr ""
 "Mas, uma solução mais comum é utilizar a anotação especial de binding "
 "<literal>@New</literal>"
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "Uso do <literal>@New</literal> em métodos produtores"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "Considere o seguinte método produtor:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -407,7 +398,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -423,5 +414,59 @@
 "contexto de sessão. O objeto dependente não será destruído até que o objeto "
 "<literal>Preferences</literal> seja destruído, no término da sessão."
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "Métodos produtores"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid "<chapter>.</chapter>"
 #~ msgstr "<chapter>.</chapter>"

Added: doc/trunk/reference/pt-BR/resources.po
===================================================================
--- doc/trunk/reference/pt-BR/resources.po	                        (rev 0)
+++ doc/trunk/reference/pt-BR/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language pt-BR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/pt-BR/ri-spi.po
===================================================================
--- doc/trunk/reference/pt-BR/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-07-25 16:20-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -15,714 +15,1407 @@
 
 #. Tag: title
 #: ri-spi.xml:4
-#, no-c-format
-msgid "Integrating Web Beans into other environments"
+#, fuzzy, no-c-format
+msgid "Integrating Weld into other environments"
 msgstr "Integrando a Web Beans em outros ambientes"
 
 #. Tag: para
 #: ri-spi.xml:6
 #, no-c-format
-msgid "Currently Web Beans only runs in JBoss AS 5; integrating the RI into other EE environments (for example another application server like Glassfish), into a servlet container (like Tomcat), or with an Embedded EJB3.1 implementation is fairly easy. In this Appendix we will briefly discuss the steps needed."
-msgstr "Atualmente,  Web Beans só é executado no JBoss AS 5; integrar a RI em outros ambientes EE (por exemplo, outro servidor de aplicações como Glassfish), em um servlet container (como o Tomcat), ou com uma implementação de EJB3.1 embutida é bastante fácil. Neste apêndice, vamos abordar brevemente os passos necessários."
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:15
-#, no-c-format
-msgid "The Web Beans SPI"
-msgstr "A SPI da Web Beans"
+#: ri-spi.xml:12
+#, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "Carregando recursos"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:13
 #, no-c-format
-msgid "The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, if you need to override the default behavior, others are required."
-msgstr "A Web Beans SPI está localizada no módulo <literal>webbeans-spi</literal>, e empacotado como <literal>webbeans-spi.jar</literal>. Algumas SPIs são opcionais, se você precisar de substituir o comportamento padrão, outros são obrigatórios."
+msgid ""
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:21
 #, no-c-format
-msgid "All interfaces in the SPI support the decorator pattern and provide a <literal>Forwarding</literal> class located in the <literal>helpers</literal> sub package. Additional, commonly used, utility classes, and standard implementations are also located in the <literal>helpers</literal> sub package."
-msgstr "Todas as interfaces na SPI suportam o padrão decorador e fornecem a classe <literal>Forwarding</literal> localizada no sub-pacote <literal>helpers</literal>. Adicionalmente, as comumente utilizadas classes utilitárias e implementações padrão, também estão localizadas no sub-pacote <literal>helpers</literal>."
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:33
-#, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Descoberta de Web Bean (Web Bean Discovery)"
+#: ri-spi.xml:27
+#, fuzzy, no-c-format
+msgid "The Weld SPI"
+msgstr "A SPI da Web Beans"
 
-#. Tag: programlisting
+#. Tag: para
+#: ri-spi.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
+msgstr ""
+"A Web Beans SPI está localizada no módulo <literal>webbeans-spi</literal>, e "
+"empacotado como <literal>webbeans-spi.jar</literal>. Algumas SPIs são "
+"opcionais, se você precisar de substituir o comportamento padrão, outros são "
+"obrigatórios."
+
+#. Tag: para
 #: ri-spi.xml:35
 #, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"All interfaces in the SPI support the decorator pattern and provide a "
+"<literal>Forwarding</literal> class located in the <literal>helpers</"
+"literal> sub package. Additional, commonly used, utility classes, and "
+"standard implementations are also located in the <literal>helpers</literal> "
+"sub package."
 msgstr ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml (or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"Todas as interfaces na SPI suportam o padrão decorador e fornecem a classe "
+"<literal>Forwarding</literal> localizada no sub-pacote <literal>helpers</"
+"literal>. Adicionalmente, as comumente utilizadas classes utilitárias e "
+"implementações padrão, também estão localizadas no sub-pacote "
+"<literal>helpers</literal>."
 
 #. Tag: para
-#: ri-spi.xml:37
+#: ri-spi.xml:41
 #, no-c-format
-msgid "The discovery of Web Bean classes and <literal>beans.xml</literal> files is self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 specification, and isn't repeated here)."
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:56
 #, no-c-format
-msgid "EJB services"
-msgstr "Serviços EJB"
+msgid "Deployment structure"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:58
 #, no-c-format
-msgid "Web Beans will run without an EJB container; in this case you don't need to implement the EJB SPI."
+msgid ""
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
+#: ri-spi.xml:67
 #, no-c-format
-msgid "Web Beans also delegates EJB3 bean discovery to the container so that it doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</literal>. For each EJB in the application an EJBDescriptor should be discovered:"
+msgid ""
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:62
+#. Tag: para
+#: ri-spi.xml:76
 #, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:85
 #, no-c-format
-msgid "The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should return the relevant metadata as defined in the EJB specification. In addition to these two interfaces, there is <literal>BusinessInterfaceDescriptor</literal> which represents a local business interface (encapsulating the interface class and jndi name used to look up an instance of the EJB)."
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:92
+#, no-c-format
+msgid "Virtual BDAs"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:93
 #, no-c-format
-msgid "The resolution of <literal>@EJB</literal> (for injection into simple beans), the resolution of local EJBs (for backing session beans) and remote EJBs (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>org.jboss.webbeans.ejb.spi.EjbServices</literal> which provides these operations. For resolving the <literal>@EJB</literal> injection point, Web Beans will provide the <literal>InjectionPoint</literal>; for resolving local EJBs, the <literal>EjbDescriptor</literal> will be provided, and for remote EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or <literal>ejbLink</literal> will be provided."
+msgid ""
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:100
 #, no-c-format
-msgid "When resolving local EJBs (used to back session beans) a wrapper (<literal>SessionObjectReference</literal>) around the EJB reference is returned. This wrapper allows Web Beans to request a reference that implements the given business interface, and, in the case of SFSBs, request the removal of the EJB from the container."
+msgid ""
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
+msgid ""
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:114
+#, no-c-format
+msgid ""
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:98
+#: ri-spi.xml:122
 #, no-c-format
-msgid "JPA services"
-msgstr "Serviços JPA"
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:124
 #, no-c-format
-msgid "Just as EJB resolution is delegated to the container, resolution of <literal>@PersistenceContext</literal> for injection into simple beans (with the <literal>InjectionPoint</literal> provided), and resolution of persistence contexts and persistence units (with the <literal>unitName</literal> provided) for injection as a Java EE resource is delegated to the container."
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:132
 #, no-c-format
-msgid "To allow JPA integration, the <literal>JpaServices</literal> interface should be implemented."
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:138
 #, no-c-format
-msgid "Web Beans also needs to know what entities are in a deployment (so that they aren't managed by Web Beans). An implementation that detects entities through <literal>@Entity</literal> and <literal>orm.xml</literal> is provided by default. If you want to provide support for a entities defined by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can wrap or replace the default implementation."
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: para
+#: ri-spi.xml:144
 #, no-c-format
-msgid "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
-msgstr "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get(EntityDiscovery.class);]]>"
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:153
 #, no-c-format
-msgid "Transaction Services"
-msgstr "Servicos de transação"
+msgid "EJB descriptors"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:155
 #, no-c-format
-msgid "Web Beans must delegate JTA activities to the container. The SPI provides a couple hooks to easily achieve this with the <literal>TransactionServices</literal> interface."
-msgstr "A Web Beans deve delegar as atividades JTA para o container. A SPI fornece vários ganchos para facilmente conseguir isso com a interface <literal>TransactionServices</literal>."
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:160
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
 msgstr ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:171
 #, no-c-format
-msgid "The enumeration <literal>Status</literal> is a convenience for implementors to be able to keep track of whether a synchronization is supposed to notify an observer only when the transaction is successful, or after a failure, or regardless of the status of the transaction."
+msgid ""
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:176
 #, no-c-format
-msgid "Any <literal>javax.transaction.Synchronization</literal> implementation may be passed to the <literal>registerSynchronization()</literal> method and the SPI implementation should immediately register the synchronization with the JTA transaction manager used for the EJBs."
+msgid ""
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:182
 #, no-c-format
-msgid "To make it easier to determine whether or not a transaction is currently active for the requesting thread, the <literal>isTransactionActive()</literal> method can be used. The SPI implementation should query the same JTA transaction manager used for the EJBs."
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:165
+#. Tag: para
+#: ri-spi.xml:189
 #, no-c-format
-msgid "JMS services"
-msgstr "Serviços JMS"
+msgid ""
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:195
 #, no-c-format
-msgid "A number of JMS operations are not container specific, and so should be provided via the SPI <literal>JmsServices</literal>. JMS does not specify how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a method which should be used to look up a factory. Web Beans also delegates <literal>Destination</literal> lookup to the container via the SPI."
+msgid ""
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:178
-#, fuzzy, no-c-format
-msgid "Resource Services"
-msgstr "Carregando recursos"
-
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:201
 #, no-c-format
-msgid "The resolution of <literal>@Resource</literal> (for injection into simple beans) and the resolution of resources (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>ResourceServices</literal> which provides these operations. For resolving the <literal>@Resource</literal> injection, Web Beans will provide the <literal>InjectionPoint</literal>; and for Java EE resources, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
+msgid ""
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:194
+#: ri-spi.xml:210
 #, no-c-format
-msgid "Web Services"
-msgstr "Web Services"
+msgid "EJB services"
+msgstr "Serviços EJB"
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:212
 #, no-c-format
-msgid "The resolution of web service references (for injection as a Java EE resource) is delegated to the container. You must provide an implementation of <literal>WebServices</literal> whichprovides this operation. For resolving the Java EE resource, the <literal>jndiName</literal> or <literal>mappedName</literal> will be provided."
+msgid "EJB services are split between two interfaces which are both per-BDA."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:207
+#. Tag: para
+#: ri-spi.xml:216
 #, no-c-format
-msgid "The bean store"
+msgid ""
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:225
 #, no-c-format
-msgid "Web Beans uses a map like structure to store bean instances - <literal>org.jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:234
 #, no-c-format
-msgid "The application context"
-msgstr "O contexto de aplicação"
+msgid "JPA services"
+msgstr "Serviços JPA"
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:236
 #, no-c-format
-msgid "Web Beans expects the Application Server or other container to provide the storage for each application's context. The <literal>org.jboss.webbeans.context.api.BeanStore</literal> should be implemented to provide an application scoped storage."
+msgid ""
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:242
+#, no-c-format
+msgid ""
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:251
 #, no-c-format
-msgid "Bootstrap and shutdown"
-msgstr "Bootstrap e shutdown"
+msgid "Transaction Services"
+msgstr "Servicos de transação"
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:253
+#, fuzzy, no-c-format
+msgid ""
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
+msgstr ""
+"A Web Beans deve delegar as atividades JTA para o container. A SPI fornece "
+"vários ganchos para facilmente conseguir isso com a interface "
+"<literal>TransactionServices</literal>."
+
+#. Tag: para
+#: ri-spi.xml:258
 #, no-c-format
-msgid "The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), tell it about the SPIs in use, and then request the container start."
+msgid ""
+"Any <literal>javax.transaction.Synchronization</literal> implementation may "
+"be passed to the <literal>registerSynchronization()</literal> method and the "
+"SPI implementation should immediately register the synchronization with the "
+"JTA transaction manager used for the EJBs."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:264
 #, no-c-format
-msgid "The bootstrap is split into phases, bootstrap initialization and boot and shutdown. Initialization will create a manager, and add the standard (specification defined) contexts. Bootstrap will discover EJBs, classes and XML; add beans defined using annotations; add beans defined using XML; and validate all beans."
+msgid ""
+"To make it easier to determine whether or not a transaction is currently "
+"active for the requesting thread, the <literal>isTransactionActive()</"
+"literal> method can be used. The SPI implementation should query the same "
+"JTA transaction manager used for the EJBs."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:272
+#, fuzzy, no-c-format
+msgid "Resource Services"
+msgstr "Carregando recursos"
+
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:274
 #, no-c-format
-msgid "The bootstrap supports multiple environments. An environment is defined by an implementation of the <literal>Environment</literal> interface. A number of standard envrionments are built in as the enumeration <literal>Environments</literal>. Different environments require different services to be present (for example servlet doesn't require transaction, EJB or JPA services). By default an EE environment is assumed, but you can adjust the environment by calling <literal>bootstrap.setEnvironment()</literal>."
+msgid ""
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:283
+#, fuzzy, no-c-format
+msgid "Injection Services"
+msgstr "Servicos de transação"
+
 #. Tag: para
-#: ri-spi.xml:260
+#: ri-spi.xml:285
 #, no-c-format
-msgid "Web Beans uses a generic-typed service registry to allow services to be registered. All services implement the <literal>Service</literal> interface. The service registry allows services to be added and retrieved."
+msgid ""
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:291
 #, no-c-format
-msgid "To initialize the bootstrap you call <literal>Bootstrap.initialize()</literal>. Before calling <literal>initialize()</literal>, you must register any services required by your environment. You can do this by calling <literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())</literal>. You must also provide the application context bean store."
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:298
 #, no-c-format
-msgid "Having called <literal>initialize()</literal>, the <literal>Manager</literal> can be obtained by calling <literal>Bootstrap.getManager()</literal>."
+msgid ""
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "Carregando recursos"
+
 #. Tag: para
-#: ri-spi.xml:282
+#: ri-spi.xml:309
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
-msgstr "Para iniciar o container é chamado <literal>Bootstrap.boot()</literal>."
+msgid ""
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
+msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:317
+#, fuzzy, no-c-format
+msgid "Bean Validation Services"
+msgstr "Servicos de transação"
+
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:319
 #, no-c-format
-msgid "To shutdown the container you call <literal>Bootstrap.shutdown()</literal> or <literal>webBeansManager.shutdown()</literal>. This allows the container to perform any cleanup operations needed."
+msgid ""
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:327
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Identifying the BDA being addressed"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:329
 #, no-c-format
-msgid "Web Beans delegates all JNDI operations to the container through the SPI."
+msgid ""
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:337
 #, no-c-format
-msgid "A number of the SPI interface require JNDI lookup, and the class <literal>AbstractResourceServices</literal> provides JNDI/Java EE spec compliant lookup methods."
+msgid ""
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:343
+#, no-c-format
+msgid ""
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
+msgstr ""
+
+#. Tag: literal
+#: ri-spi.xml:350
+#, no-c-format
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:352
+#, no-c-format
+msgid ""
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:315
+#: ri-spi.xml:362
 #, no-c-format
-msgid "Resource loading"
-msgstr "Carregando recursos"
+msgid "The bean store"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
+#: ri-spi.xml:364
 #, no-c-format
-msgid "Web Beans needs to load classes and resources from the classpath at various times. By default, they are loaded from the Thread Context ClassLoader if available, if not the same classloader that was used to load Web Beans, however this may not be correct for some environments. If this is case, you can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+msgid ""
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
+msgid "The application context"
+msgstr "O contexto de aplicação"
+
+#. Tag: para
+#: ri-spi.xml:374
+#, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
 #. Tag: title
-#: ri-spi.xml:331
+#: ri-spi.xml:383
+#, fuzzy, no-c-format
+msgid "Initialization and shutdown"
+msgstr "Bootstrap e shutdown"
+
+#. Tag: para
+#: ri-spi.xml:384
 #, no-c-format
-msgid "Servlet injection"
-msgstr "Servlet injection"
+msgid ""
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:391
 #, no-c-format
-msgid "Java EE / Servlet does not provide any hooks which can be used to provide injection into Servlets, so Web Beans provides an API to allow the container to request JSR-299 injection for a Servlet."
+msgid ""
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:398
 #, no-c-format
-msgid "To be compliant with JSR-299, the container should request servlet injection for each newly instantiated servlet after the constructor returns and before the servlet is placed into service."
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:405
 #, no-c-format
-msgid "To perform injection on a servlet call <literal>WebBeansManager.injectServlet()</literal>. The manager can be obtained from <literal>Bootstrap.getManager()</literal>."
+msgid ""
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:410
+#, fuzzy, no-c-format
+msgid ""
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
+msgstr ""
+"Para iniciar o container é chamado <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
+msgstr ""
+"Para iniciar o container é chamado <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:418
+#, fuzzy, no-c-format
+msgid ""
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
+msgstr ""
+"Para iniciar o container é chamado <literal>Bootstrap.boot()</literal>."
+
+#. Tag: para
+#: ri-spi.xml:423
+#, no-c-format
+msgid ""
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:431
 #, no-c-format
+msgid "Resource loading"
+msgstr "Carregando recursos"
+
+#. Tag: para
+#: ri-spi.xml:433
+#, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:445
+#, no-c-format
 msgid "The contract with the container"
 msgstr "O contrato com o container"
 
 #. Tag: para
-#: ri-spi.xml:358
+#: ri-spi.xml:447
 #, no-c-format
-msgid "There are a number of requirements that the Web Beans RI places on the container for correct functioning that fall outside implementation of APIs"
+msgid ""
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Isolamento de Classloader (Classloader isolation)"
 
 #. Tag: para
-#: ri-spi.xml:370
+#: ri-spi.xml:458
 #, no-c-format
-msgid "If you are integrating the Web Beans RI into an environment that supports deployment of multiple applications, you must enable, automatically, or through user configuation, classloader isolation for each Web Beans application."
+msgid ""
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr "Servlet"
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:470
 #, no-c-format
-msgid "If you are integrating the Web Beans into a Servlet environment you must register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses Servlet."
+msgid ""
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr "<term>JSF</term>"
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</literal> as an EL resolver, either automatically, or through user configuration, for each Web Beans application which uses JSF."
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, no-c-format
-msgid "If you are integrating the Web Beans into a JSF environment you must register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</literal> as a Servlet listener, either automatically, or through user configuration, for each Web Beans application which uses JSF. This filter can be registered for all Servlet deployment safely."
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
+#, fuzzy, no-c-format
+msgid "<term>JSP</term>"
+msgstr "<term>JSF</term>"
+
+#. Tag: para
+#: ri-spi.xml:538
 #, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Interceptador de Session Bean (Session Bean Interceptor)"
 
 #. Tag: para
-#: ri-spi.xml:432
+#: ri-spi.xml:571
 #, no-c-format
-msgid "If you are integrating the Web Beans into an EJB environment you must register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as a EJB interceptor for all EJBs in the application, either automatically, or through user configuration, for each Web Beans application which uses enterprise beans."
+msgid ""
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
-msgid "You must register the <literal>SessionBeanInterceptor</literal> as the inner most interceptor in the stack for all EJBs."
+msgid ""
+"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
+"most interceptor in the stack for all EJBs."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
-#, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+#: ri-spi.xml:586
+#, fuzzy, no-c-format
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "A <literal>webbeans-core.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
+#: ri-spi.xml:590
 #, no-c-format
-msgid "If you are integrating the Web Beans into an environment that supports deployment of applications, you must insert the <literal>webbeans-core.jar</literal> into the applications isolated classloader. It cannot be loaded from a shared classloader."
+msgid ""
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
-msgid "You should bind a <literal>Reference</literal> to the Manager <literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</literal>. The type should be <literal>javax.inject.manager.Manager</literal> and the factory class is <literal>org.jboss.webbeans.resources.ManagerObjectFactory</literal>"
+msgid ""
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "Atualmente,  Web Beans só é executado no JBoss AS 5; integrar a RI em "
+#~ "outros ambientes EE (por exemplo, outro servidor de aplicações como "
+#~ "Glassfish), em um servlet container (como o Tomcat), ou com uma "
+#~ "implementação de EJB3.1 embutida é bastante fácil. Neste apêndice, vamos "
+#~ "abordar brevemente os passos necessários."
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Descoberta de Web Bean (Web Bean Discovery)"
+
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
+#~ "(EntityDiscovery.class);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+
+#~ msgid "JMS services"
+#~ msgstr "Serviços JMS"
+
+#~ msgid "Web Services"
+#~ msgstr "Web Services"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#~ msgid "Servlet injection"
+#~ msgstr "Servlet injection"
+
+#~ msgid ""
 #~ "All interfaces in the SPI support the decorator pattern and provide a "
 #~ "<literal>Forwarding</literal> class."
 #~ msgstr ""
 #~ "Todas as interfaces na SPI suportam o padrão decorator e provêm a classe "
 #~ "<literal>Forwarding</literal>."
+
 #~ msgid ""
 #~ "<![CDATA[public interface EjbServices\n"
 #~ "{\n"
@@ -743,6 +1436,7 @@
 #~ "    * @return The bean class to descriptor map \n"
 #~ "    */\n"
 #~ "   public Iterable<EjbDescriptor<?>> discoverEjbs();]]>"
+
 #~ msgid ""
 #~ "OPEN ISSUE: Web Beans also requires the container to provide a list of "
 #~ "entities in the deployment, so that they aren't discovered as simple "
@@ -751,6 +1445,7 @@
 #~ "Questão aberta: Web Beans também exige que o container forneça uma lista "
 #~ "de entidades na implantação, de forma que eles não são descobertos como "
 #~ "web beans simples."
+
 #~ msgid ""
 #~ "<![CDATA[public interface NamingContext extends Serializable {\n"
 #~ "   \n"
@@ -795,57 +1490,69 @@
 #~ "   public void bind(String name, Object value);\n"
 #~ "   \n"
 #~ "}]]>"
+
 #~ msgid "Servlet listener and filters"
 #~ msgstr "Listener e filtros de servlets"
+
 #~ msgid "EJB Discovery"
 #~ msgstr "Descoberta de EJB (EJB Discovery)"
+
 #~ msgid ""
 #~ "org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery= \\ \n"
 #~ "   org.jboss.webbeans.integration.jbossas.WebBeanDiscoveryImpl"
 #~ msgstr ""
 #~ "org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery= \\ \n"
 #~ "   org.jboss.webbeans.integration.jbossas.WebBeanDiscoveryImpl"
+
 #~ msgid ""
 #~ "<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
 #~ msgstr ""
 #~ "<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
+
 #~ msgid ""
 #~ "org.jboss.webbeans.bootstrap.spi.EjbDiscovery= \\\n"
 #~ "   org.jboss.webbeans.integration.jbossas.EjbDiscoveryImpl"
 #~ msgstr ""
 #~ "org.jboss.webbeans.bootstrap.spi.EjbDiscovery= \\\n"
 #~ "   org.jboss.webbeans.integration.jbossas.EjbDiscoveryImpl"
+
 #~ msgid ""
 #~ "<![CDATA[public EjbDiscoveryImpl(ServletContext servletContext) {}]]>"
 #~ msgstr ""
 #~ "<![CDATA[public EjbDiscoveryImpl(ServletContext servletContext) {}]]>"
+
 #~ msgid "and tell the RI to use it:"
 #~ msgstr "e informar para a RI usá-lo:"
+
 #~ msgid ""
 #~ "org.jboss.webbeans.resources.spi.NamingContext=com.acme.MyNamingContext"
 #~ msgstr ""
 #~ "org.jboss.webbeans.resources.spi.NamingContext=com.acme.MyNamingContext"
+
 #~ msgid "<![CDATA[public MyNamingContext(ServletContext servletContext) {}]]>"
 #~ msgstr ""
 #~ "<![CDATA[public MyNamingContext(ServletContext servletContext) {}]]>"
+
 #~ msgid ""
 #~ "The servlet context can be used to allow your implementation of "
 #~ "<literal>NamingContext</literal> to interact with the container."
 #~ msgstr ""
 #~ "O contexto servlet pode ser utilizado para permitir a implementação de "
 #~ "<literal>NamingContext</literal> para interagir com o container."
+
 #~ msgid ""
 #~ "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
 #~ msgstr ""
 #~ "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
+
 #~ msgid ""
 #~ "<![CDATA[public MyResourceLoader(ServletContext servletContext) {}]]>"
 #~ msgstr ""
 #~ "<![CDATA[public MyResourceLoader(ServletContext servletContext) {}]]>"
+
 #~ msgid ""
 #~ "The servlet context can be used to allow your implementation of "
 #~ "<literal>ResourceLoader</literal> to interact with the container."
 #~ msgstr ""
 #~ "O contexto servlet pode ser utilizado para permitir a implementação de "
 #~ "<literal>ResourceLoader</literal> para interagir com o container."
-

Modified: doc/trunk/reference/pt-BR/scopescontexts.po
===================================================================
--- doc/trunk/reference/pt-BR/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 21:22-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,20 +14,19 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "Escopos e contextos"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 " Até agora, vimos alguns exemplos de <emphasis>anotações de tipo de escopo</"
 "emphasis>. O escopo de um Web Bean determina o ciclo de vida das instâncias "
@@ -36,33 +35,33 @@
 "determina:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr ""
 "Quando uma nova instância de qualquer Web Bean com esse escopo é criada"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr "Quando uma instância de qualquer Web Bean com esse escopo é destruída"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr ""
 "Cada referência  injetada refere-se a qualquer instância de um Web Bean com "
 "esse escopo"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -75,29 +74,37 @@
 "na primeira vez que um <literal>CurrentUser</literal> for necessário nessa "
 "sessão, e  será automaticamente destruída quando a sessão terminar."
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "Tipos de escopo"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Beans possui um <emphasis>modelo extensível de contexto</emphasis>. É "
 "possível definir novos escopos, criando uma nova anotação de tipo de escopo:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -106,13 +113,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "Evidentemente, essa é a parte mais fácil do trabalho. Para esse tipo de "
 "escopo ser útil, nós também precisamos  definir um objeto <literal>Context</"
@@ -121,17 +130,17 @@
 "do framework."
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "Podemos aplicar uma anotação de tipo de escopo a uma classe de implementação "
 "de um Web Bean para especificar o escopo do Web Bean:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -141,55 +150,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "Normalmente, você usará um dos escopos pré-definidos na Web Bean."
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "Escopos pré-definidos"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "A Web Beans pré-define quatro tipos de escopos:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "Para uma aplicação web que utiliza Web Beans:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -199,55 +208,63 @@
 "aplicação ativos, e, adicionalmente"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "qualquer requisição JSF tem acesso ao escopo de conversação ativo."
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "Os escopos de request e aplicação também estão disponíveis:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "durante invocações de métodos remotos de EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "durante timeouts de EJB,"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "durante a entrega de uma mensagem a um mensagem-driven bean, e"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "durante a invocação de um web service"
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "Se a aplicação tentar invocar um Web Bean com um escopo que não tem um "
 "contexto ativo, uma <literal>ContextNotActiveException</literal> é lançada "
 "pelo gerenciador do Web Bean em tempo de execução."
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -259,19 +276,19 @@
 "aqui. Um dos escopos, porém, é novo."
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "O escopo de conversação"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "O escopo de conversação da Web Beans é um parecido com o tradicional escopo "
 "de sessão na medida em que mantém estado associado a um usuário do sistema, "
@@ -279,29 +296,28 @@
 "contrário do escopo de sessão, o escopo de conversação:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "é demarcado explicitamente pela aplicação, e"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
 msgstr ""
-"mantém o estado associado a uma determinada aba em um navegador web em uma "
-"aplicação JSF."
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "Uma conversação representa uma tarefa, uma unidade de trabalho do ponto-de-"
 "vista do usuário. O contexto de conversação mantém o estado associado  ao "
@@ -309,10 +325,10 @@
 "várias coisas ao mesmo tempo, existem várias conversações."
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -324,31 +340,30 @@
 "(long-running conversation)</emphasis>."
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "Demarcação de contexto"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans oferece um Web Bean pré-definido para o controle do ciclo de vida "
 "das conversações em uma aplicação JSF. Esse Web Bean pode ser obtido por "
 "injeção:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -363,49 +378,47 @@
 "duração no final da requisição atual, chame <literal>end()</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "No exemplo a seguir, um Web Bean em escopo de conversação controla a "
 "conversação  ao qual estiver associado:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -439,45 +452,45 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Esse Web Bean é capaz de controlar seu próprio ciclo de vida através do uso "
 "da API <literal>Conversation</literal>. Mas alguns outros Web Beans têm um "
 "cliclo vida que depende totalmente de um outro objeto."
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "Propagação de conversação"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "Contexto de conversação propaga-se automaticamente em qualquer requisição "
 "faces JSF  (formulário de submissão JSF). E não se propaga automaticamente "
 "em requisições não-faces, por exemplo, em  navegação através de um link."
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "Nós podemos forçar a propagação da conversação em uma requisição não-faces "
 "incluindo o identificador único da conversação como um parâmetro da "
@@ -487,13 +500,13 @@
 "literal>, que tem o nome Web Bean <literal>conversation</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "Portanto, o seguinte link propaga a conversação:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -503,15 +516,29 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "O gerenciador do Web Bean também é utilizado para propagar conversações em "
 "qualquer redirecionamento, mesmo se a conversação não estiver marcada como "
 "uma conversação de longa duração. Isso torna muito fácil a implementação do "
@@ -520,20 +547,21 @@
 "adiciona um parâmetro de requisição a URL redirecionada."
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "Timeout de conversação"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "O gerenciador do Web Bean pode destruir uma conversação e todos os estados "
 "mantidos em seu contexto, a qualquer momento, a fim de preservar recursos. A "
@@ -543,11 +571,11 @@
 "conversação seja destruída."
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "O objeto <literal>Conversation</literal> fornece um método para definir o "
@@ -555,133 +583,106 @@
 "é livre para ignorar essa configuração."
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "O dependent pseudo-scope"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "Além dos quatro escopos pré-definidos, Web Beans possui o chamado "
 "<emphasis>dependent pseudo-scope</emphasis>. Esse é o escopo padrão para um "
 "Web Bean que não declare explicitamente um tipo de escopo."
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 "Por exemplo, esse Web Bean tem o tipo de escopo <literal>@Dependent</"
 "literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"Quando um ponto de injeção num Web Bean resolve para um Web Bean dependente, "
-"uma nova instância do Web Bean dependente é criada a cada vez que o primeiro "
-"Web Bean for instanciado. Instâncias de Web Beans dependentes nunca são "
-"compartilhadas entre diferentes Web Beans ou diferentes pontos de injeção. "
-"Eles são <emphasis>objetos dependentes</emphasis> de alguma outra instância "
-"de Web Bean."
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"Instâncias de Web Bean dependentes são destruídas quando a instância de que "
-"eles dependem é destruída."
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Beans torna fácil a obtenção de uma instância dependente de uma classe "
 "Java ou um EJB, mesmo se a classe ou EJB já tiverem sido declarados como um "
 "Web Bean com outro tipo de escopo."
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "A anotação <literal>@New</literal> "
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"A anotação de binding pré-definida <literal>@New</literal> permite a "
-"definição <emphasis>implicita</emphasis> de um Web Bean dependente em um "
-"ponto de injeção. Suponha que nós declaramos o seguinte campo injetado:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"Em seguida, um Web Bean com escopo <literal>@Dependent</literal>, tipo de "
-"binding <literal>@New</literal>, API do tipo <literal>Calculator</literal>, "
-"classe de implementação <literal>Calculator</literal> e tipo de implantação "
-"<literal>@Standard</literal> é definido implicitamente."
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "Isso é verdade mesmo se <literal>Calculator</literal> <emphasis>já</"
 "emphasis> estiver declarado com um tipo de escopo diferente, por exemplo:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -691,7 +692,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -701,14 +702,12 @@
 "<literal>Calculator</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -719,7 +718,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -734,7 +733,7 @@
 "<literal>PaymentCalc</literal>."
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
@@ -742,3 +741,52 @@
 msgstr ""
 "Essa funcionalidade é particularmente útil em métodos produtores, como "
 "poderemos verificar no próximo capítulo. "
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr ""
+#~ "mantém o estado associado a uma determinada aba em um navegador web em "
+#~ "uma aplicação JSF."
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "Quando um ponto de injeção num Web Bean resolve para um Web Bean "
+#~ "dependente, uma nova instância do Web Bean dependente é criada a cada vez "
+#~ "que o primeiro Web Bean for instanciado. Instâncias de Web Beans "
+#~ "dependentes nunca são compartilhadas entre diferentes Web Beans ou "
+#~ "diferentes pontos de injeção. Eles são <emphasis>objetos dependentes</"
+#~ "emphasis> de alguma outra instância de Web Bean."
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "Instâncias de Web Bean dependentes são destruídas quando a instância de "
+#~ "que eles dependem é destruída."
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "A anotação de binding pré-definida <literal>@New</literal> permite a "
+#~ "definição <emphasis>implicita</emphasis> de um Web Bean dependente em um "
+#~ "ponto de injeção. Suponha que nós declaramos o seguinte campo injetado:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "Em seguida, um Web Bean com escopo <literal>@Dependent</literal>, tipo de "
+#~ "binding <literal>@New</literal>, API do tipo <literal>Calculator</"
+#~ "literal>, classe de implementação <literal>Calculator</literal> e tipo de "
+#~ "implantação <literal>@Standard</literal> é definido implicitamente."

Modified: doc/trunk/reference/pt-BR/specialization.po
===================================================================
--- doc/trunk/reference/pt-BR/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-07-25 16:31-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,27 +14,130 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "Especialização"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
-msgid "We've already seen how the Web Beans dependency injection model lets us <emphasis>override</emphasis> the implementation of an API at deployment time. For example, the following enterprise Web Bean provides an implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "Nós já vimos a forma como o modelo de injeção de dependências da Web Beans permite  <emphasis>sobrescrever</emphasis> a implementação da API em tempo de implantação. Por exemplo, o seguinte Bean Web corporativo fornece uma implementação da API <literal>PaymentProcessor</literal> em produção:"
+msgid ""
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"Nós já vimos a forma como o modelo de injeção de dependências da Web Beans "
+"permite  <emphasis>sobrescrever</emphasis> a implementação da API em tempo "
+"de implantação. Por exemplo, o seguinte Bean Web corporativo fornece uma "
+"implementação da API <literal>PaymentProcessor</literal> em produção:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"Mas, no nosso ambiente simulado, nos sobrepomos a implementação de "
+"<literal>PaymentProcessor</literal> com um Web Bean diferente:"
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -42,126 +145,205 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid "But in our staging environment, we override that implementation of <literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "Mas, no nosso ambiente simulado, nos sobrepomos a implementação de <literal>PaymentProcessor</literal> com um Web Bean diferente:"
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
-msgid "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</literal> is to completely replace <literal>AsyncPaymentProcessor</literal> in a particular deployment of the system. In that deployment, the deployment type <literal>@Staging</literal> would have a higher priority than the default deployment type <literal>@Production</literal>, and therefore clients with the following injection point:"
+msgid ""
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
 msgstr ""
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
-msgid "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "Pode receber uma instância de <literal>StagingCreditCardPaymentProcessor</literal>."
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "Infelizmente, existem várias armadilhas que facilmente podemos cair:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
-msgid "the higher-priority Web Bean may not implement all the API types of the Web Bean that it attempts to override,"
-msgstr "o Web Bean de maior prioridade não pode implementar todos os tipos da API do Web Bean que tenta sobrepor,"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
-msgid "the higher-priority Web Bean may not declare all the binding types of the Web Bean that it attempts to override,"
-msgstr "o Web Bean de maior prioridade não pode declarar todos os tipos de binding do Web Bean que tenta sobrepor,"
+msgid ""
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:40
+#. Tag: title
+#: specialization.xml:105
 #, no-c-format
-msgid "the higher-priority Web Bean might not have the same name as the Web Bean that it attempts to override, or"
-msgstr "o Web Bean de maior prioridade talvez não tenha o mesmo nome que o Web Bean que tenta sobrepor, ou"
+msgid "A minor problem with alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:44
+#: specialization.xml:107
 #, no-c-format
-msgid "the Web Bean that it attempts to override might declare a producer method, disposal method or observer method."
-msgstr "o Web Bean que tenta sobrepor poderia declarar um método produtor, método de eliminação ou método observador."
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:113
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:115
 #, no-c-format
-msgid "In each of these cases, the Web Bean that we tried to override could still be called at runtime. Therefore, overriding is somewhat prone to developer error."
-msgstr "Em cada um destes casos, o Web Bean que tentamos sobrescrever ainda podia ser chamado em tempo de execução. Portanto, a sobrescrita é algo propensa a erros de desenvolvimento."
+msgid ""
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:123
 #, no-c-format
-msgid "Web Beans provides a special feature, called <emphasis>specialization</emphasis>, that helps the developer avoid these traps. Specialization looks a little esoteric at first, but it's easy to use in practice, and you'll really appreciate the extra security it provides."
+msgid ""
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
 msgstr ""
 
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "Utilizando a especialização"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
-msgid "Specialization is a feature that is specific to simple and enterprise Web Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "Especialização é uma característica que é específica de Web Beans simples e enterprise. Para fazer uso da especialização, o Web Bean de maior prioridade deve:"
+msgid ""
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "ser uma subclasse direta do Web Bean que sobrescreve, e"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
-msgid "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, and"
-msgstr "ser um simples Web se o Web Bean que sobrepuser for um Web Bean simples ou um Web Bean enterprise se o Web Bean que sobrepuser for um Web Bean enterprise, e"
+msgid ""
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "será anotada <literal>@Specializes</literal>."
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"Nós dizemos que a alta prioridade na Web Bean <emphasis>specializa</"
+"emphasis> sua superclasse."
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -170,80 +352,163 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
-msgid "We say that the higher-priority Web Bean <emphasis>specializes</emphasis> its superclass."
-msgstr "Nós dizemos que a alta prioridade na Web Bean <emphasis>specializa</emphasis> sua superclasse."
+msgid ""
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "Vantagens da especialização"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "Quando a especialização é utilizada:"
+msgid ""
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:91
+#: specialization.xml:165
 #, no-c-format
-msgid "the binding types of the superclass are automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
+msgid ""
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
 msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:172
 #, no-c-format
-msgid "the Web Bean name of the superclass is automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
 msgstr ""
 
-#. Tag: para
-#: specialization.xml:99
-#, no-c-format
-msgid "producer methods, disposal methods and observer methods declared by the superclass are called upon an instance of the Web Bean annotated <literal>@Specializes</literal>."
-msgstr "métodos produtores, métodos de eliminação e métodos observadores declarados pela superclasse são chamados sobre uma instância do Web Bean anotado com <literal>@Specializes</literal>."
+#~ msgid "Specialization"
+#~ msgstr "Especialização"
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid "In our example, the binding type <literal>@CreditCard</literal> of <literal>CreditCardPaymentProcessor</literal> is inherited by <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "Em nosso exemplo, o tipo de ligação (binding type) <literal>@CreditCard</literal> do <literal>CreditCardPaymentProcessor</literal> é herdado por <literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "Além disso, o gerenciador do Web Bean irá validar que:"
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "Pode receber uma instância de <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid "all API types of the superclass are API types of the Web Bean annotated <literal>@Specializes</literal> (all local interfaces of the superclass enterprise bean are also local interfaces of the subclass),"
-msgstr ""
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr ""
+#~ "Infelizmente, existem várias armadilhas que facilmente podemos cair:"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid "the deployment type of the Web Bean annotated <literal>@Specializes</literal> has a higher precedence than the deployment type of the superclass, and"
-msgstr "o tipo de implantação do Web Bean anotado com <literal>@Specializes</literal> tem uma precedência maior do que o tipo de implantação da superclasse, e"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "o Web Bean de maior prioridade não pode implementar todos os tipos da API "
+#~ "do Web Bean que tenta sobrepor,"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "não há outro Web Bean ativado que também especializa a superclasse."
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "o Web Bean de maior prioridade não pode declarar todos os tipos de "
+#~ "binding do Web Bean que tenta sobrepor,"
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid "If any of these conditions are violated, the Web Bean manager throws an exception at initialization time."
-msgstr "Se qualquer uma dessas condições são violadas, o gerenciador do Web Bean lança uma excepção em tempo de inicialização."
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "o Web Bean de maior prioridade talvez não tenha o mesmo nome que o Web "
+#~ "Bean que tenta sobrepor, ou"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid "Therefore, we can be certain that the superclass will <emphasis>never</emphasis> be called in any deployment of the system where the Web Bean annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr ""
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "o Web Bean que tenta sobrepor poderia declarar um método produtor, método "
+#~ "de eliminação ou método observador."
 
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "Em cada um destes casos, o Web Bean que tentamos sobrescrever ainda podia "
+#~ "ser chamado em tempo de execução. Portanto, a sobrescrita é algo propensa "
+#~ "a erros de desenvolvimento."
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "Especialização é uma característica que é específica de Web Beans simples "
+#~ "e enterprise. Para fazer uso da especialização, o Web Bean de maior "
+#~ "prioridade deve:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "ser uma subclasse direta do Web Bean que sobrescreve, e"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "ser um simples Web se o Web Bean que sobrepuser for um Web Bean simples "
+#~ "ou um Web Bean enterprise se o Web Bean que sobrepuser for um Web Bean "
+#~ "enterprise, e"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "será anotada <literal>@Specializes</literal>."
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "Vantagens da especialização"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "Quando a especialização é utilizada:"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "métodos produtores, métodos de eliminação e métodos observadores "
+#~ "declarados pela superclasse são chamados sobre uma instância do Web Bean "
+#~ "anotado com <literal>@Specializes</literal>."
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "Em nosso exemplo, o tipo de ligação (binding type) <literal>@CreditCard</"
+#~ "literal> do <literal>CreditCardPaymentProcessor</literal> é herdado por "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "Além disso, o gerenciador do Web Bean irá validar que:"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "o tipo de implantação do Web Bean anotado com <literal>@Specializes</"
+#~ "literal> tem uma precedência maior do que o tipo de implantação da "
+#~ "superclasse, e"
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr "não há outro Web Bean ativado que também especializa a superclasse."
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "Se qualquer uma dessas condições são violadas, o gerenciador do Web Bean "
+#~ "lança uma excepção em tempo de inicialização."

Modified: doc/trunk/reference/pt-BR/stereotypes.po
===================================================================
--- doc/trunk/reference/pt-BR/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 19:48-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,84 +14,96 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "Estereótipos"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "De acordo com a especificação Web Beans:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
-msgid "In many systems, use of architectural patterns produces a set of recurring Web Bean roles. A stereotype allows a framework developer to identify such a role and declare some common metadata for Web Beans with that role in a central place."
-msgstr "Em muitos sistemas, a utilização de padrões arquiteturais produz um conjunto de papéis Web Bean recorrentes. Um estereótipo permite a um desenvolvedor de framwework identificar esse papel e declarar alguns metadados comums para Web Beans com esse papel em um local centralizado."
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
+msgid ""
+"In many systems, use of architectural patterns produces a set of recurring "
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"Em muitos sistemas, a utilização de padrões arquiteturais produz um conjunto "
+"de papéis Web Bean recorrentes. Um estereótipo permite a um desenvolvedor de "
+"framwework identificar esse papel e declarar alguns metadados comums para "
+"Web Beans com esse papel em um local centralizado."
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "Um estereótipo encapsula qualquer combinação de:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "um tipo padrão de implantação, "
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "um tipo de escopo padrão,"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "uma restrição ao escopo do Web Bean,"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "um conjunto de anotações para binding de interceptadores "
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "uma exigência de que o Web Bean implemente ou estenda um certo tipo, e"
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "um conjunto de anotações para binding de interceptadores "
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid "A stereotype may also specify that all Web Beans with the stereotype have defaulted Web Bean names."
-msgstr "Um estereótipo também pode especificar que todos os Web Beans com o estereótipo têm um nome Web Bean padrão."
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"Um estereótipo também pode especificar que todos os Web Beans com o "
+"estereótipo têm um nome Web Bean padrão."
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Um Web Bean pode declarar zero, um ou vários estereótipos."
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
-msgid "A stereotype is a Java annotation type. This stereotype identifies action classes in some MVC framework:"
-msgstr "Um estereótipo é um tipo de anotação Java. Esse estereótipo identifica classes de ação em algum framework MVC:"
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"Um estereótipo é um tipo de anotação Java. Esse estereótipo identifica "
+"classes de ação em algum framework MVC:"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -100,13 +112,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "Nós utilizamos o estereótipo, aplicando a anotação ao Web Bean."
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -115,234 +127,296 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "Escopo padrão e o tipo de implantação para um estereótipo"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
-msgid "A stereotype may specify a default scope and/or default deployment type for Web Beans with that stereotype. For example, if the deployment type <literal>@WebTier</literal> identifies Web Beans that should only be deployed when the system executes as a web application, we might specify the following defaults for action classes:"
-msgstr "Um estereótipo pode especificar um escopo padrão e/ou um tipo padrão de implantação para Web Beans com esse estereótipo. Por exemplo, o tipo de implantação <literal>@WebTier</literal> identifica Web Beans que só deverão ser implantados quando o sistema executar como uma aplicação web. Podemos especificar os seguintes padrões para classes de ação :"
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"Um estereótipo também pode especificar que todos os Web Beans com o "
+"estereótipo têm um nome Web Bean padrão."
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid "Of course, a particular action may still override these defaults if necessary:"
-msgstr "Evidentemente, uma determinada ação pode ainda,se necessário, substituir estes padrões:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
+msgstr ""
+"Evidentemente, uma determinada ação pode ainda,se necessário, substituir "
+"estes padrões:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "Se  quisermos forçar todas as ações para um escopo particular,  podemos fazer isso também."
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "Restringindo o escopo e o tipo com um estereótipo"
+msgid "Interceptor bindings for stereotypes"
+msgstr "Bindings de interceptadores para estereótipos"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
-msgid "Suppose that we wish to prevent actions from declaring certain scopes. Web Beans lets us explicitly specify the set of allowed scopes for Web Beans with a certain stereotype. For example:"
-msgstr "Suponha que queremos impedir as ações de declarar certos escopos. Web Beans permite-nos indicar explicitamente o conjunto de escopos permitidos para Web Beans com um certo estereótipo. Por exemplo:"
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"Um estereótipo pode especificar um conjunto de interceptadores de bindings a "
+"serem herdados por todos os Web Beans com esse estereótipo."
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr ""
+"Isso nos ajuda a manter os detalhes técnicos ainda mais longe do código de "
+"negócios!"
+
+#. Tag: title
+#: stereotypes.xml:103
 #, no-c-format
-msgid "If a particular action class attempts to specify a scope other than the Web Beans request scope, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "Se uma determinada classe de ação tenta especificar um escopo diferente do escopo de requisição da Web Beans, uma exceção será lançada pelo gerenciador do Web Bean em tempo de inicialização."
+msgid "Name defaulting with stereotypes"
+msgstr "Padronização de nomes com estereótipos"
 
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
-msgid "We can also force all Web Bean with a certain stereotype to implement an interface or extend a class:"
-msgstr "Também podemos forçar todos os Web Beans com um certo estereótipo a  implementar uma interface ou estender uma classe:"
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"Por último, é possível especificar que todos os Web Beans com um certo "
+"estereótipo tenham um nome Web Bean padronizado pelo gerenciador do Web "
+"Bean. As ações são,muitas vezes, referenciadas em páginas JSP. Por isso, "
+"elas são um caso de utilização perfeito desse recurso. Tudo o que precisamos "
+"fazer é adicionar uma anotação <literal>@Nome</literal> vazia:\t"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
-msgid "If a particular action class does not extend the class <literal>AbstractAction</literal>, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "Se uma determinada classe de ação não estender a classe <literal>AbstractAction</literal>, uma exceção será lançada pelo gerenciador do Web Bean em tempo de inicialização."
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"Agora, <literal>LoginAction</literal> terá o nome <literal>loginAction</"
+"literal>."
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "Bindings de interceptadores para estereótipos"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "Estereótipos padrões"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
-msgid "A stereotype may specify a set of interceptor bindings to be inherited by all Web Beans with that stereotype."
-msgstr "Um estereótipo pode especificar um conjunto de interceptadores de bindings a serem herdados por todos os Web Beans com esse estereótipo."
+msgid ""
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
-msgid "This helps us get technical concerns even further away from the business code!"
-msgstr "Isso nos ajuda a manter os detalhes técnicos ainda mais longe do código de negócios!"
+msgid ""
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "Estereótipos"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "Padronização de nomes com estereótipos"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
-msgid "Finally, we can specify that all Web Beans with a certain stereotype have a Web Bean name, defaulted by the Web Bean manager. Actions are often referenced in JSP pages, so they're a perfect use case for this feature. All we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "Por último, é possível especificar que todos os Web Beans com um certo estereótipo tenham um nome Web Bean padronizado pelo gerenciador do Web Bean. As ações são,muitas vezes, referenciadas em páginas JSP. Por isso, elas são um caso de utilização perfeito desse recurso. Tudo o que precisamos fazer é adicionar uma anotação <literal>@Nome</literal> vazia:	"
+msgid ""
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid "Now, <literal>LoginAction</literal> will have the name <literal>loginAction</literal>."
-msgstr "Agora, <literal>LoginAction</literal> terá o nome <literal>loginAction</literal>."
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "Estereótipos padrões"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
-msgid "We've already met two standard stereotypes defined by the Web Beans specification: <literal>@Interceptor</literal> and <literal>@Decorator</literal>."
-msgstr "Já conhecemos dois estereótipos padrões definidos pela especificação de Web Beans: <literal>@Interceptor</literal> e <literal>@Decorator</literal>."
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
+msgstr ""
+"Já conhecemos dois estereótipos padrões definidos pela especificação de Web "
+"Beans: <literal>@Interceptor</literal> e <literal>@Decorator</literal>."
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Beans define mais um estereótipo padrão:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -352,8 +426,133 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
-msgid "This stereotype is intended for use with JSF. Instead of using JSF managed beans, just annotate a Web Bean <literal>@Model</literal>, and use it directly in your JSF page."
-msgstr "Esse estereótipo é destinado ao uso com o JSF. Em vez de utilizar JSF managed beans, basta anotar um Web Bean com <literal>@Model</literal>, e utilizá-lo diretamente em sua página JSF."
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
+msgid ""
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"Esse estereótipo é destinado ao uso com o JSF. Em vez de utilizar JSF "
+"managed beans, basta anotar um Web Bean com <literal>@Model</literal>, e "
+"utilizá-lo diretamente em sua página JSF."
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "De acordo com a especificação Web Beans:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "um tipo padrão de implantação, "
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "uma restrição ao escopo do Web Bean,"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr ""
+#~ "uma exigência de que o Web Bean implemente ou estenda um certo tipo, e"
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Um Web Bean pode declarar zero, um ou vários estereótipos."
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "Um estereótipo pode especificar um escopo padrão e/ou um tipo padrão de "
+#~ "implantação para Web Beans com esse estereótipo. Por exemplo, o tipo de "
+#~ "implantação <literal>@WebTier</literal> identifica Web Beans que só "
+#~ "deverão ser implantados quando o sistema executar como uma aplicação web. "
+#~ "Podemos especificar os seguintes padrões para classes de ação :"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "Se  quisermos forçar todas as ações para um escopo particular,  podemos "
+#~ "fazer isso também."
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "Restringindo o escopo e o tipo com um estereótipo"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "Suponha que queremos impedir as ações de declarar certos escopos. Web "
+#~ "Beans permite-nos indicar explicitamente o conjunto de escopos permitidos "
+#~ "para Web Beans com um certo estereótipo. Por exemplo:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "Se uma determinada classe de ação tenta especificar um escopo diferente "
+#~ "do escopo de requisição da Web Beans, uma exceção será lançada pelo "
+#~ "gerenciador do Web Bean em tempo de inicialização."
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "Também podemos forçar todos os Web Beans com um certo estereótipo a  "
+#~ "implementar uma interface ou estender uma classe:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "Se uma determinada classe de ação não estender a classe "
+#~ "<literal>AbstractAction</literal>, uma exceção será lançada pelo "
+#~ "gerenciador do Web Bean em tempo de inicialização."
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Beans define mais um estereótipo padrão:"

Modified: doc/trunk/reference/pt-BR/viewlayers.po
===================================================================
--- doc/trunk/reference/pt-BR/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-06-13 11:30-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,46 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr "Camadas de apresentação alternativas"
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
-msgstr "Utilizando a Web Beans com o Wicket"
+msgid "Wicket CDI integration"
+msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr "A classe <literal>WebApplication</literal>"
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
-msgid "Each wicket application must have a <literal>WebApplication</literal> subclass; Web Beans provides, for your utility, a subclass of this which sets up the Wicket/JSR-299 integration. You should subclass <literal>org.jboss.webbeans.wicket.WebBeansApplication</literal>."
+msgid ""
+"Each wicket application must have a <literal>WebApplication</literal> "
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
-msgid "If you would prefer not to subclass <literal>WebBeansApplication</literal>, you can manually add a (small!) number of overrides and listeners to your own <literal>WebApplication</literal> subclass. The javadocs of <literal>WebBeansApplication</literal>detail this."
+msgid ""
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr "Por exemplo:"
 
 #. Tag: programlisting
-#: viewlayers.xml:33
-#, no-c-format
+#: viewlayers.xml:41
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -68,62 +95,106 @@
 "}]]>"
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr "Conversação com Wicket"
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
-msgid "The conversation scope can be used in Web Beans with the Apache Wicket web framework, through the <literal>webbeans-wicket</literal> module. This module takes care of:"
+msgid ""
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
-msgid "Setting up the conversation context at the beginning of a Wicket request, and tearing it down afterwards"
+msgid ""
+"Setting up the conversation context at the beginning of a Wicket request, "
+"and tearing it down afterwards"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
-msgid "Storing the id of any long-running conversation in Wicket's metadata when the page response is complete"
+msgid ""
+"Storing the id of any long-running conversation in Wicket's metadata when "
+"the page response is complete"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
-msgid "Activating the correct long-running conversation based upon which page is being accessed"
+msgid ""
+"Activating the correct long-running conversation based upon which page is "
+"being accessed"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
-msgid "Propagating the conversation context for any long-running conversation to new pages"
+msgid ""
+"Propagating the conversation context for any long-running conversation to "
+"new pages"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr "Iniciar e interromper conversações no Wicket"
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
-msgid "As JSF applications, a conversation <emphasis>always</emphasis> exists for any request, but its lifetime is only that of the current request unless it is marked as <emphasis>long-running</emphasis>. For Wicket applications this is accomplished as in JSF applications, by injecting the <literal>@Current Conversation</literal> and then invoking <literal>conversation.begin()</literal>. Likewise, conversations are ended with <literal>conversation.end()</literal>"
+msgid ""
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr "Propagação de conversação de longa duração no Wicket"
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
-msgid "When a conversation is marked as long-running, the id of that conversation will be stored in Wicket's metadata for the current page. If a new page is created and set as the response target through <literal>setResponsePage</literal>, this new page will also participate in this conversation. This occurs for both directly instantiated pages (<literal>setResponsePage(new OtherPage())</literal>), as well as for bookmarkable pages created with <literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage.class</literal> is mounted as bookmarkable from your <literal>WebApplication</literal> subclass (or through annotations). In the latter case, because the new page instance is not created until after a redirect, the conversation id will be propagated through a request parameter, and then stored in page metadata after the redirect."
+msgid ""
+"When a conversation is marked as long-running, the id of that conversation "
+"will be stored in Wicket's metadata for the current page. If a new page is "
+"created and set as the response target through <literal>setResponsePage()</"
+"literal>, this new page will also participate in this conversation. This "
+"occurs for both directly instantiated pages (<literal>setResponsePage(new "
+"OtherPage())</literal>), as well as for bookmarkable pages created with "
+"<literal>setResponsePage(OtherPage.class)</literal> where <literal>OtherPage."
+"class</literal> is mounted as bookmarkable from your "
+"<literal>WebApplication</literal> subclass (or through annotations). In the "
+"latter case, because the new page instance is not created until after a "
+"redirect, the conversation id will be propagated through a request "
+"parameter, and then stored in page metadata after the redirect."
 msgstr ""
 
+#~ msgid "Using Web Beans with Wicket"
+#~ msgstr "Utilizando a Web Beans com o Wicket"

Added: doc/trunk/reference/pt-BR/weldexamples.po
===================================================================
--- doc/trunk/reference/pt-BR/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/pt-BR/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language pt-BR translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/pt-BR/xml.po
===================================================================
--- doc/trunk/reference/pt-BR/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/pt-BR/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-10 19:58-0300\n"
 "Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
 "Language-Team: none\n"
@@ -14,93 +14,135 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "Definindo Web Beans utilizando XML"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
-msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
-msgstr "Até agora,vimos muitos exemplos de declaração de Web Beans usando anotações. No entanto, há várias situações em que não podemos usar anotações para definir um Web Bean:"
+#: xml.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"Até agora,vimos muitos exemplos de declaração de Web Beans usando anotações. "
+"No entanto, há várias situações em que não podemos usar anotações para "
+"definir um Web Bean:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
-msgstr "quando a classe de implementação vem de alguma biblioteca preexistente, ou"
+msgstr ""
+"quando a classe de implementação vem de alguma biblioteca preexistente, ou"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
-msgstr "quando deveria haver vários Web Beans com a mesma classe de implementação."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
+msgstr ""
+"quando deveria haver vários Web Beans com a mesma classe de implementação."
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "Em ambos os casos, We Beans nos dá duas opções:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "escrever um método produtor (producer method), ou"
+#: xml.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"Many frameworks use XML to provide metadata relating to Java classes. "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
+"class and member names as the string values of XML elements and attributes, "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"Muitos frameworks usam XML para fornecer metadados relativos às classes "
+"Java. No entanto, Web Beans utiliza uma abordagem muito diferente para "
+"especificar os nomes de classes Java, atributos ou métodos dos outros "
+"frameworks. Em vez de escrever os nomes das classes e dos membros ( como uma "
+"String de valores em elementos e atributos XML), Web Beans permite que você "
+"use o nome da classe ou membro como o nome do elemento XML."
 
 #. Tag: para
-#: xml.xml:24
+#: xml.xml:38
 #, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "declarar um Web Bean utilizando XML."
+msgid ""
+"The advantage of this approach is that you can write an XML schema that "
+"prevents spelling errors in your XML document. It's even possible for a tool "
+"to generate the XML schema automatically from the compiled Java code. Or, an "
+"integrated development environment could perform the same validation without "
+"the need for the explicit intermediate generation step."
+msgstr ""
+"A vantagem dessa abordagem é que você pode escrever um esquema XML (XML "
+"schema) que evita erros ortográficos no seu documento XML. É até mesmo "
+"possível para uma ferramenta gerar o esquema XML (XML schema) "
+"automaticamente, a partir do código Java compilad.Ou, um ambiente integrado "
+"de desenvolvimento poderia fazer a mesma validação sem a necessidade "
+"explicíta do passo intermediário de geração."
 
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
-msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
-msgstr "Muitos frameworks usam XML para fornecer metadados relativos às classes Java. No entanto, Web Beans utiliza uma abordagem muito diferente para especificar os nomes de classes Java, atributos ou métodos dos outros frameworks. Em vez de escrever os nomes das classes e dos membros ( como uma String de valores em elementos e atributos XML), Web Beans permite que você use o nome da classe ou membro como o nome do elemento XML."
-
-#. Tag: para
-#: xml.xml:33
-#, no-c-format
-msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
-msgstr "A vantagem dessa abordagem é que você pode escrever um esquema XML (XML schema) que evita erros ortográficos no seu documento XML. É até mesmo possível para uma ferramenta gerar o esquema XML (XML schema) automaticamente, a partir do código Java compilad.Ou, um ambiente integrado de desenvolvimento poderia fazer a mesma validação sem a necessidade explicíta do passo intermediário de geração."
-
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "Declarando classes Web Beans"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
-msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Para cada pacote Java, Web Beans define um namespace XML correspondente. O nome é formado precedendo <literal>urn:java:</literal> ao nome do pacote Java. Para o pacote <literal>com.mydomain.myapp</literal>, o namespace XML é <literal>urn:java:com.mydomain.myapp</literal>."
+#: xml.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"For each Java package, Weld defines a corresponding XML namespace. The "
+"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
+"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
+"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"Para cada pacote Java, Web Beans define um namespace XML correspondente. O "
+"nome é formado precedendo <literal>urn:java:</literal> ao nome do pacote "
+"Java. Para o pacote <literal>com.mydomain.myapp</literal>, o namespace XML é "
+"<literal>urn:java:com.mydomain.myapp</literal>."
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
-msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
-msgstr "Tipos Java pertencentes a um pacote são referenciados a utilizar um elemento XML no namespace correspondente ao pacote. O nome do elemento é o nome do tipo Java. Atributos e métodos do tipo são especificados por elementos filhos do mesmo namespace. Se o tipo for uma anotação, os membros são definidos por atributos do elemento."
+msgid ""
+"Java types belonging to a package are referred to using an XML element in "
+"the namespace corresponding to the package. The name of the element is the "
+"name of the Java type. Fields and methods of the type are specified by child "
+"elements in the same namespace. If the type is an annotation, members are "
+"specified by attributes of the element."
+msgstr ""
+"Tipos Java pertencentes a um pacote são referenciados a utilizar um elemento "
+"XML no namespace correspondente ao pacote. O nome do elemento é o nome do "
+"tipo Java. Atributos e métodos do tipo são especificados por elementos "
+"filhos do mesmo namespace. Se o tipo for uma anotação, os membros são "
+"definidos por atributos do elemento."
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
-msgid "For example, the element <literal>&lt;util:Date/&gt;</literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Por exemplo, o elemento <literal>&lt;util:Date/&gt;</literal> no seguinte fragmento XML refere-se à classe <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Por exemplo, o elemento <literal>&lt;util:Date/&gt;</literal> no seguinte "
+"fragmento XML refere-se à classe <literal>java.util.Date</literal>:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -110,37 +152,48 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
-msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
-msgstr "E esse é todo o código necessário para declarar que <literal>Date</literal> é um simples Web Bean! Uma instância de <literal>Date</literal> pode agora ser injetada por qualquer outro Web Bean:"
+#: xml.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"And this is all the code we need to declare that <literal>Date</literal> is "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"E esse é todo o código necessário para declarar que <literal>Date</literal> "
+"é um simples Web Bean! Uma instância de <literal>Date</literal> pode agora "
+"ser injetada por qualquer outro Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "Declarando metadados Web Bean"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
-msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
-msgstr "Podemos declarar o escopo, tipo de puplicação (deployment type) e tipo de ligação de interceptador (interceptor binding types) com a utilização direta de elementos filhos na declaração do Web Bean:"
+#: xml.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"We can declare the scope, deployment type and interceptor binding types "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"Podemos declarar o escopo, tipo de puplicação (deployment type) e tipo de "
+"ligação de interceptador (interceptor binding types) com a utilização direta "
+"de elementos filhos na declaração do Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -150,29 +203,31 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
-msgstr "Utilizamos exatamente a mesma abordagem para especificar nomes e tipos de ligação:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
+msgstr ""
+"Utilizamos exatamente a mesma abordagem para especificar nomes e tipos de "
+"ligação:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -192,36 +247,42 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
-msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
-msgstr "Em que <literal>@Login</literal> e <literal>@SystemStart</literal> são anotações do tipo ligação."
+#: xml.xml:91
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
+"qualifier annotations types."
+msgstr ""
+"Em que <literal>@Login</literal> e <literal>@SystemStart</literal> são "
+"anotações do tipo ligação."
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
-msgstr "Como é habitual, um Web Bean pode suportar múltiplos tipos de ligação (binding types):"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
+msgstr ""
+"Como é habitual, um Web Bean pode suportar múltiplos tipos de ligação "
+"(binding types):"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -230,18 +291,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
-msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
-msgstr "Interceptadores e Decoradores são simplesmente Web Beans. Assim, podem ser declarados como qualquer outro Web Bean:"
+#: xml.xml:101
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"Interceptadores e Decoradores são simplesmente Web Beans. Assim, podem ser "
+"declarados como qualquer outro Web Bean:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -250,42 +315,44 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "Declarando membros Web Bean"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "TODO!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "Declarando inline Web Beans"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr "Web Beans nos permite definir um Web Bean em um ponto de injeção. Por exemplo:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
+msgstr ""
+"Web Beans nos permite definir um Web Bean em um ponto de injeção. Por "
+"exemplo:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -300,50 +367,76 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
-msgid "The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
-msgstr "O elemento <literal>&lt;Name&gt;</literal> declara um Web Bean simples de escopo <literal>@Dependent</literal> e classe <literal>Name</literal>, com um conjunto inicial de valores para os campos. Esse Web Bean possui a especial, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"O elemento <literal>&lt;Name&gt;</literal> declara um Web Bean simples de "
+"escopo <literal>@Dependent</literal> e classe <literal>Name</literal>, com "
+"um conjunto inicial de valores para os campos. Esse Web Bean possui a "
+"especial, container-generated binding and is therefore injectable only to "
+"the specific injection point at which it is declared."
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
-msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
-msgstr "Esse simples - mas poderoso - recurso permite que o formato XML do Web Beans seja utilizado para especificar grafos completos de objetos Java. Não é uma solução de ligação de dados (databinding) completa, mas está bem próxima!"
+#: xml.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
+"solution, but it's close!"
+msgstr ""
+"Esse simples - mas poderoso - recurso permite que o formato XML do Web Beans "
+"seja utilizado para especificar grafos completos de objetos Java. Não é uma "
+"solução de ligação de dados (databinding) completa, mas está bem próxima!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "Utilizando um esquema"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
-msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
-msgstr "Se desejamos que o formato do documento XML seja criado por pessoas que não são desenvolvedores Java, ou por pessoas que não têm acesso ao nosso código, precisamos fornecer um esquema (XML schema). Não há nada específico no Web Beans sobre escrever ou utilizar o esquema."
+#: xml.xml:141
+#, fuzzy, no-c-format
+msgid ""
+"If we want our XML document format to be authored by people who aren't Java "
+"developers, or who don't have access to our code, we need to provide a "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"Se desejamos que o formato do documento XML seja criado por pessoas que não "
+"são desenvolvedores Java, ou por pessoas que não têm acesso ao nosso código, "
+"precisamos fornecer um esquema (XML schema). Não há nada específico no Web "
+"Beans sobre escrever ou utilizar o esquema."
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
 "          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
 "\n"
 "    <myapp:System>\n"
 "        ...\n"
@@ -352,8 +445,22 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
-msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
-msgstr "Escrever um esquema XML (XML schema) é um tanto tedioso. Tod via, o projeto Web Beans RI  fornecerá uma ferramenta que automaticamente gera o esquema XML (XML schema), a partir do código da classe Java compilada."
+#: xml.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"Escrever um esquema XML (XML schema) é um tanto tedioso. Tod via, o projeto "
+"Web Beans RI  fornecerá uma ferramenta que automaticamente gera o esquema "
+"XML (XML schema), a partir do código da classe Java compilada."
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "Em ambos os casos, We Beans nos dá duas opções:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "escrever um método produtor (producer method), ou"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "declarar um Web Bean utilizando XML."

Modified: doc/trunk/reference/zh-CN/Author_Group.po
===================================================================
--- doc/trunk/reference/zh-CN/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-27 13:39+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,117 +14,123 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
+#. Tag: contrib
+#: Author_Group.xml:8
 #, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>JSR-299规范领导者</jobtitle> <orgname>红帽中间件有限责任公司</"
-"orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
+#. Tag: contrib
+#: Author_Group.xml:17
 #, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299参考实现) 领导者 </jobtitle> <orgname>红帽中间件"
-"有限责任公司</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "意大利文翻译"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, no-c-format
 msgid "Spanish Translation"
 msgstr "西班牙文翻译"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr "红帽中间件有限责任公司"
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, no-c-format
 msgid "Korean Translation"
 msgstr "韩文翻译"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "繁体中文翻译"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Sean</firstname> <surname>Wu</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "简体中文翻译"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr "Kava社区"
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>JSR-299规范领导者</jobtitle> <orgname>红帽中间件有限责任公司</"
+#~ "orgname>"
+
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299参考实现) 领导者 </jobtitle> <orgname>红帽中间"
+#~ "件有限责任公司</orgname>"
+
+#~ msgid "Red Hat Middleware LLC"
+#~ msgstr "红帽中间件有限责任公司"
+
+#~ msgid "Kava Community"
+#~ msgstr "Kava社区"

Modified: doc/trunk/reference/zh-CN/Book_Info.po
===================================================================
--- doc/trunk/reference/zh-CN/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-12 11:25+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,31 +16,39 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr "Web Beans: Java 上下文和依赖注入"
+msgid "Weld - JSR-299 Reference Implementation"
+msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
-#, no-c-format
-msgid "The new standard for dependency injection and contextual state management"
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr "关于依赖注入和上下文状态管理的Java新规范"
 
+#~ msgid "Web Beans: Java Contexts and Dependency Injection"
+#~ msgstr "Web Beans: Java 上下文和依赖注入"
+
 #~ msgid "Introduction to Web Beans"
 #~ msgstr "Web Beans介绍"
+
 #~ msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 #~ msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
 #~ "Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Web Beans (JSR-299) 规范领导人</jobtitle> <orgname>红帽中间件有"
 #~ "限责任公司</orgname>"
+
 #~ msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 #~ msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
+
 #~ msgid ""
 #~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead</jobtitle> "
 #~ "<orgname>Red Hat Middleware LLC</orgname>"
 #~ msgstr ""
 #~ "<jobtitle>Web Beans (JSR-299) 参考实现领导人</jobtitle> <orgname>红帽中间"
 #~ "件有限责任公司</orgname>"
-

Added: doc/trunk/reference/zh-CN/beans.po
===================================================================
--- doc/trunk/reference/zh-CN/beans.po	                        (rev 0)
+++ doc/trunk/reference/zh-CN/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language zh-CN translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/zh-CN/decorators.po
===================================================================
--- doc/trunk/reference/zh-CN/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-10 11:18+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,38 +14,62 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "装饰器"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
-msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
-msgstr "拦截器能够以一种强大的方式来捕获和分离关注点,拦截器和类型系统的关系是正交的。任何拦截器都能够拦截任何Java类型的调用。这种特性能够让拦截器很好的处理技术关注点,例如事务管理和安全。不过,拦截器无法领会其所拦截时间的真实语义。因此,拦截器并不是分离业务相关的关注点的好工具。"
+#: decorators.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors are a powerful way to capture and separate concerns which are "
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"拦截器能够以一种强大的方式来捕获和分离关注点,拦截器和类型系统的关系是正交"
+"的。任何拦截器都能够拦截任何Java类型的调用。这种特性能够让拦截器很好的处理技"
+"术关注点,例如事务管理和安全。不过,拦截器无法领会其所拦截时间的真实语义。因"
+"此,拦截器并不是分离业务相关的关注点的好工具。"
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
-msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
-msgstr "对装饰器来说,反之亦然。一个装饰器只拦截特定Java接口的调用,因此它能够领会这个接口关联的语义。装饰器的特性使其成为某些业务关注点的理想的建模工具。这也意味着装饰器并不拥有一个拦截器的普遍性。装饰器无法解决跨越多个不同类型的技术关注点。"
+#: decorators.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
+"intercepts invocations only for a certain Java interface, and is therefore "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
+"that a decorator doesn't have the generality of an interceptor. Decorators "
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"对装饰器来说,反之亦然。一个装饰器只拦截特定Java接口的调用,因此它能够领会这"
+"个接口关联的语义。装饰器的特性使其成为某些业务关注点的理想的建模工具。这也意"
+"味着装饰器并不拥有一个拦截器的普遍性。装饰器无法解决跨越多个不同类型的技术关"
+"注点。"
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "假定我们有一个表现帐户的接口:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -56,43 +80,68 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
-msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
-msgstr "我们系统实现中可以有多个不同的Web Beans实现 <literal>Account</literal> 接口。然而我们有一个通用的法律要求对于任何帐户,大的交易必须由系统在一个特定的日志中记录。装饰器非常适合处理这种工作。"
+#: decorators.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
+"any kind of account, large transactions must be recorded by the system in a "
+"special log. This is a perfect job for a decorator."
+msgstr ""
+"我们系统实现中可以有多个不同的Web Beans实现 <literal>Account</literal> 接口。"
+"然而我们有一个通用的法律要求对于任何帐户,大的交易必须由系统在一个特定的日志"
+"中记录。装饰器非常适合处理这种工作。"
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
-msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
-msgstr "装饰器是一个简单的Web Bean,能够实现其装饰的类型。装饰器使用 <literal>@Decorator</literal> 注释。"
+#: decorators.xml:34
+#, fuzzy, no-c-format
+msgid ""
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"装饰器是一个简单的Web Bean,能够实现其装饰的类型。装饰器使用 "
+"<literal>@Decorator</literal> 注释。"
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -120,116 +169,231 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
-msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
-msgstr "和其他简单的Web Beans不同,一个装饰器可以是一个抽象类。如果被装饰的接口中一个特殊方法对装饰器没有用处,那么装饰器可以不实现这个方法。"
+#: decorators.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
+"there's nothing special the decorator needs to do for a particular method of "
+"the decorated interface, you don't need to implement that method."
+msgstr ""
+"和其他简单的Web Beans不同,一个装饰器可以是一个抽象类。如果被装饰的接口中一个"
+"特殊方法对装饰器没有用处,那么装饰器可以不实现这个方法。"
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr "一个方法的拦截器在这个方法的装饰器调用之前调用。"
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "委托属性"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
-msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
-msgstr "所有装饰器都有一个 <emphasis>委托属性</emphasis> 。委托属性的类型和绑定类型决定了装饰器绑定到哪个Web Bean上。委托属性类型必须实现或者继承装饰器实现的所有接口。"
+msgid ""
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
-msgstr "下面的委托属性指定了装饰器绑定到所有实现 <literal>Account</literal> 接口的Web Beans:"
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: decorators.xml:55
-#, no-c-format
-msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
-msgstr "一个委托属性能够指定一个绑定注释。装饰器只能绑定具有相同绑定的Web Beans。"
-
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
-
-#. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
 msgstr "一个装饰器可以绑定到任何符合下面条件的Web Bean上:"
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
 msgstr "有一个作为API类型的委托属性类型,以及"
 
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
 msgstr "具备委托属性声明的说有绑定类型。"
 
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
-msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
-msgstr "装饰器可以调用委托属性,这和从一个拦截器中调用 <literal>InvocationContext.proceed()</literal> 具有相同效果。"
+#: decorators.xml:78
+#, fuzzy, no-c-format
+msgid ""
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"下面的委托属性指定了装饰器绑定到所有实现 <literal>Account</literal> 接口的"
+"Web Beans:"
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"一个委托属性能够指定一个绑定注释。装饰器只能绑定具有相同绑定的Web Beans。"
+
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"装饰器可以调用委托属性,这和从一个拦截器中调用 <literal>InvocationContext."
+"proceed()</literal> 具有相同效果。"
+
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "激活装饰器"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
-msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
-msgstr "我们需要在 <literal>web-beans.xml</literal> 文件中激活我们的装饰器。"
+msgid ""
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
-msgid "This declaration serves the same purpose for decorators that the <literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "这个声明对于装饰器来说和<literal>&lt;Interceptors&gt;</literal>声明对于拦截器来说是一样的:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"这个声明对于装饰器来说和<literal>&lt;Interceptors&gt;</literal>声明对于拦截器"
+"来说是一样的:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
+msgid ""
+"it enables us to specify a total ordering for all decorators in our system, "
+"ensuring deterministic behavior, and"
 msgstr "它能让我们在系统中指定所有装饰器的排序,确保具有确定的行为,并且"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
 msgstr "它能让我们在部署时期中激活或者关闭装饰器类。"
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid "Interceptors for a method are called before decorators that apply to that method."
-msgstr "一个方法的拦截器在这个方法的装饰器调用之前调用。"
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "所有装饰器都有一个 <emphasis>委托属性</emphasis> 。委托属性的类型和绑定类"
+#~ "型决定了装饰器绑定到哪个Web Bean上。委托属性类型必须实现或者继承装饰器实现"
+#~ "的所有接口。"
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "我们需要在 <literal>web-beans.xml</literal> 文件中激活我们的装饰器。"

Added: doc/trunk/reference/zh-CN/dependencies.po
===================================================================
--- doc/trunk/reference/zh-CN/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/zh-CN/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language zh-CN translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/zh-CN/ee.po
===================================================================
--- doc/trunk/reference/zh-CN/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-11 13:00+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,33 +21,91 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
-msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
-msgstr "Web Beans被完全地整合进了Java EE环境里。Web Beans 能够访问Java EE资源和JPA持久化上下文。它们可以在JSF和JSP页面中的统一表达式语言使用。它们甚至可以被注入到一些对象中,例如Servlet和消息驱动Bean,而这些对象都不是Web Bean。"
+#, fuzzy, no-c-format
+msgid ""
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Web Beans被完全地整合进了Java EE环境里。Web Beans 能够访问Java EE资源和JPA持"
+"久化上下文。它们可以在JSF和JSP页面中的统一表达式语言使用。它们甚至可以被注入"
+"到一些对象中,例如Servlet和消息驱动Bean,而这些对象都不是Web Bean。"
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "将Java EE资源注入到一个Web Bean中"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
-msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
-msgstr "所有简单的和企业的Web Beans都可以通过<literal>@Resource</literal>, <literal>@EJB</literal>和<literal>@PersistenceContext</literal>来使用Java EE的依赖注入。我们已经看过很多例子了,虽然我们没有在这上面耗费精力:"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
 
-#. Tag: programlisting
-#: ee.xml:19
+#. Tag: para
+#: ee.xml:22
 #, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
 msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "将Java EE资源注入到一个Web Bean中"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
+"examples of this, though we didn't pay much attention at the time:"
+msgstr ""
+"所有简单的和企业的Web Beans都可以通过<literal>@Resource</literal>, "
+"<literal>@EJB</literal>和<literal>@PersistenceContext</literal>来使用Java EE"
+"的依赖注入。我们已经看过很多例子了,虽然我们没有在这上面耗费精力:"
+
+#. Tag: programlisting
+#: ee.xml:56
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -55,22 +113,20 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -84,53 +140,66 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
-msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
-msgstr "所有的简单的和企业的Web Beans都支持Java EE的<literal>@PostConstruct</literal>和<literal>@PreDestroy</literal>回调。<literal>@PostConstruct</literal>方法在<emphasis>所有的</emphasis> 注入完成后被调用。"
+#: ee.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"所有的简单的和企业的Web Beans都支持Java EE的<literal>@PostConstruct</literal>"
+"和<literal>@PreDestroy</literal>回调。<literal>@PostConstruct</literal>方法在"
+"<emphasis>所有的</emphasis> 注入完成后被调用。"
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
-msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "这里需要注意的一个限制是:简单的Web Beans不支持 <literal>@PersistenceContext(type=EXTENDED)</literal>"
+msgid ""
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "从Servlet调用一个Web Bean"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
-msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
-msgstr "在Java EE 6中,从一个Servlet中调用一个Web Bean非常容易,只须使用Web Beans域注入一个Web Bean或者将初始方法注入即可。"
+#: ee.xml:76
+#, fuzzy, no-c-format
+msgid ""
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"在Java EE 6中,从一个Servlet中调用一个Web Bean非常容易,只须使用Web Beans域注"
+"入一个Web Bean或者将初始方法注入即可。"
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -138,7 +207,8 @@
 "    @Current Login login;\n"
 "\n"
 "    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse response)\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
 "        throws ServletException, IOException {\n"
 "        credentials.setUsername( request.getAttribute(\"username\") ):\n"
 "        credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -154,44 +224,51 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
-msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
-msgstr "Web Beans客户端代理将Servlet中的方法调用路由到当前请求和HTTP会话中相应的<literal>Credentials</literal> 和 <literal>Login</literal> 实例。"
+#: ee.xml:83
+#, fuzzy, no-c-format
+msgid ""
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
+msgstr ""
+"Web Beans客户端代理将Servlet中的方法调用路由到当前请求和HTTP会话中相应的"
+"<literal>Credentials</literal> 和 <literal>Login</literal> 实例。"
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "从消息驱动Bean中调用一个Web Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
-msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
-msgstr "Web Beans注入可以应用于所有的EJB,甚至这些EJB不在Web Bean管理器的控制之下也可以(如果它们可以直接从JNDI查找或者使用<literal>@EJB</literal>注入)。消息驱动Bean不能成为Web Beans,因为你无法注入它们,但你仍然可以将Web Beans注入到消息驱动Bean中。"
+msgid ""
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
 msgstr "你甚至可以将Web Beans拦截器绑定到消息驱动Bean上。"
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -206,85 +283,132 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
-msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "这样,在一个Web Beans环境中接受消息就相当简单了。但是需要注意的是,当一个消息发送到一个消息驱动Bean的时候,此时没有会话,我们无法获得对话上下文。我们只能获得 <literal>@RequestScoped</literal> 和 <literal>@ApplicationScoped</literal> 注释的Web Beans。"
+#: ee.xml:103
+#, fuzzy, no-c-format
+msgid ""
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"这样,在一个Web Beans环境中接受消息就相当简单了。但是需要注意的是,当一个消息"
+"发送到一个消息驱动Bean的时候,此时没有会话,我们无法获得对话上下文。我们只能"
+"获得 <literal>@RequestScoped</literal> 和 <literal>@ApplicationScoped</"
+"literal> 注释的Web Beans。"
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "使用Web Beans发送消息也相当简单。"
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "JMS端点"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
-msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
-msgstr "使用JMS发送消息有点复杂,因为你需要处理很多不同的对象。对于队列(Queue),我们有<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> 和 <literal>QueueSender</literal>。对于主题(Topic)有<literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> 和 <literal>TopicPublisher</literal>。这些对象每个都有自己的生命周期和线程模型,我们都需要考虑这些问题。"
+msgid ""
+"Sending messages using JMS can be quite complex, because of the number of "
+"different objects you need to deal with. For queues we have <literal>Queue</"
+"literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
+"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
+"literal>. Each of these objects has its own lifecycle and threading model "
+"that we need to worry about."
+msgstr ""
+"使用JMS发送消息有点复杂,因为你需要处理很多不同的对象。对于队列(Queue),我"
+"们有<literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, "
+"<literal>QueueConnection</literal>, <literal>QueueSession</literal> 和 "
+"<literal>QueueSender</literal>。对于主题(Topic)有<literal>Topic</literal>, "
+"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
+"literal>, <literal>TopicSession</literal> 和 <literal>TopicPublisher</"
+"literal>。这些对象每个都有自己的生命周期和线程模型,我们都需要考虑这些问题。"
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
-msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
-msgstr "Web Beans为我们处理所有这些问题。我们只须在 <literal>web-beans.xml</literal>声明队列或者主题,指定一个关联的绑定类型和连接工厂即可。"
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
 msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
-msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
-msgstr "现在,对于队列,我们只须注入 <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> 或者 <literal>QueueSender</literal>;对于主题,我们只须注入<literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> 或者 <literal>TopicPublisher</literal>。"
+msgid ""
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -295,45 +419,135 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
+#. Tag: para
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-
-#. Tag: para
-#: ee.xml:100
-#, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
 msgstr "被注入的JMS对象的生命周期完全由Web Bean管理器控制。"
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "打包和部署"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
-msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
-msgstr "Web Beans并没有指定特殊的部署包。你可以以JAR, EJB-JAR或者WAR&#151;形式将Web Beans打包在任何应用类路径中的部署位置上。然而,每个包含Web Beans的包必须在<literal>META-INF</literal> 或者 <literal>WEB-INF</literal>目录下包含一个名为 <literal>web-beans.xml</literal>的配置文件。这个文件可以是空的。没有<literal>web-beans.xml</literal> 配置文件,应用将无法使用Web Beans。"
+#: ee.xml:153
+#, fuzzy, no-c-format
+msgid ""
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"Web Beans并没有指定特殊的部署包。你可以以JAR, EJB-JAR或者WAR&#151;形式将Web "
+"Beans打包在任何应用类路径中的部署位置上。然而,每个包含Web Beans的包必须在"
+"<literal>META-INF</literal> 或者 <literal>WEB-INF</literal>目录下包含一个名"
+"为 <literal>web-beans.xml</literal>的配置文件。这个文件可以是空的。没有"
+"<literal>web-beans.xml</literal> 配置文件,应用将无法使用Web Beans。"
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
-msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "对于Java SE,Web Beans可以被部署在由嵌入式EJB轻量容器支持的EJB中的任何位置。同样,该位置必须包含 <literal>web-beans.xml</literal> 配置文件。"
+#: ee.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"对于Java SE,Web Beans可以被部署在由嵌入式EJB轻量容器支持的EJB中的任何位置。"
+"同样,该位置必须包含 <literal>web-beans.xml</literal> 配置文件。"
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "这里需要注意的一个限制是:简单的Web Beans不支持 "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal>"
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Web Beans注入可以应用于所有的EJB,甚至这些EJB不在Web Bean管理器的控制之下"
+#~ "也可以(如果它们可以直接从JNDI查找或者使用<literal>@EJB</literal>注入)。"
+#~ "消息驱动Bean不能成为Web Beans,因为你无法注入它们,但你仍然可以将Web Beans"
+#~ "注入到消息驱动Bean中。"
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "使用Web Beans发送消息也相当简单。"
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Web Beans为我们处理所有这些问题。我们只须在 <literal>web-beans.xml</"
+#~ "literal>声明队列或者主题,指定一个关联的绑定类型和连接工厂即可。"
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "现在,对于队列,我们只须注入 <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> 或者 "
+#~ "<literal>QueueSender</literal>;对于主题,我们只须注入<literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> 或者 <literal>TopicPublisher</literal>。"
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/zh-CN/environments.po
===================================================================
--- doc/trunk/reference/zh-CN/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/zh-CN/events.po
===================================================================
--- doc/trunk/reference/zh-CN/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-16 11:17+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,267 +22,398 @@
 #. Tag: para
 #: events.xml:6
 #, no-c-format
-msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
-msgstr "Web Beans事件通知机制能够让Web Beans以完全解耦的方式交互。事件<emphasis>产生者(producers)</emphasis>触发事件,然后由Web Bean管理器发送给事件 <emphasis>观察者(observers)</emphasis> 。基本的模式和我们常见的观察者设计模式类似,但也有一些曲解:"
+msgid ""
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
-msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
-msgstr "不仅是事件产生者和观察者解耦;观察者和产生者也完全解耦,"
+msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
 
 #. Tag: para
 #: events.xml:18
 #, no-c-format
-msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
-msgstr "观察者可以指定一个\"选择器\"组合来限定接受的事件通知,并且"
+msgid ""
+"not only are event producers decoupled from observers; observers are "
+"completely decoupled from producers,"
+msgstr "不仅是事件产生者和观察者解耦;观察者和产生者也完全解耦,"
 
 #. Tag: para
 #: events.xml:22
 #, no-c-format
-msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
-msgstr "观察者可以即刻被通知,也可以指定只有当前事务结束后再发送事件通知。"
+msgid ""
+"observers can specify a combination of \"selectors\" to narrow the set of "
+"event notifications they will receive, and"
+msgstr "观察者可以指定一个\"选择器\"组合来限定接受的事件通知,并且"
 
-#. Tag: title
+#. Tag: para
 #: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "事件观察者"
+#, fuzzy, no-c-format
+msgid ""
+"observers can be notified immediately, or can specify that delivery of the "
+"event should be delayed until the end of the current transaction."
+msgstr "观察者可以即刻被通知,也可以指定只有当前事务结束后再发送事件通知。"
 
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
-msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
-msgstr "一个 <emphasis>观察者方法</emphasis>是一个在Web Bean中的方法,该方法有一个用<literal>@Observes</literal>注释的参数。 "
+msgid ""
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "事件生产者"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgid ""
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
+msgstr ""
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
-msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "这个使用注释的参数被称为<emphasis>事件参数</emphasis>。事件参数的类型是被观察的<emphasis>事件类型</emphasis>。观察者方法也可以指定\"选择器\",选择器其实就是Web Beans绑定类型的实例。当一个绑定类型作为事件选择器时,它也被称为一个<emphasis>事件绑定类型</emphasis>。"
+msgid ""
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
-#. Tag: para
-#: events.xml:43
+#. Tag: title
+#: events.xml:57
 #, no-c-format
-msgid "We specify the event bindings of the observer method by annotating the event parameter:"
-msgstr "我们通过注释事件参数来指定观察者方法的事件绑定。"
+msgid "Event observers"
+msgstr "事件观察者"
 
+#. Tag: para
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"一个 <emphasis>观察者方法</emphasis>是一个在Web Bean中的方法,该方法有一个用"
+"<literal>@Observes</literal>注释的参数。 "
+
 #. Tag: programlisting
-#: events.xml:46
-#: events.xml:190
+#: events.xml:64
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:48
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"这个使用注释的参数被称为<emphasis>事件参数</emphasis>。事件参数的类型是被观察"
+"的<emphasis>事件类型</emphasis>。观察者方法也可以指定\"选择器\",选择器其实就"
+"是Web Beans绑定类型的实例。当一个绑定类型作为事件选择器时,它也被称为一个"
+"<emphasis>事件绑定类型</emphasis>。"
+
+#. Tag: programlisting
+#: events.xml:72 events.xml:240
 #, no-c-format
-msgid "An observer method need not specify any event bindings &#151; in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
-msgstr "一个观察者方法无须指定一个事件绑定 &#151; 在这种情况下,它对一个特定类型的 <emphasis>所有</emphasis> 事件都感兴趣(观察)。如果它没有指定事件绑定,那么它只对那些有事件绑定的事件感兴趣(观察)。"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
-msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
-msgstr "观察者方法可以有其他的参数,它们可以按照普通的Web Beans方法参数注入语法注入:"
+#: events.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"一个观察者方法无须指定一个事件绑定 &#151; 在这种情况下,它对一个特定类型的 "
+"<emphasis>所有</emphasis> 事件都感兴趣(观察)。如果它没有指定事件绑定,那么"
+"它只对那些有事件绑定的事件感兴趣(观察)。"
 
+#. Tag: para
+#: events.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"观察者方法可以有其他的参数,它们可以按照普通的Web Beans方法参数注入语法注入:"
+
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
-msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
-msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "事件生产者"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
-msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
-msgstr "事件生产者可以通过注入获得一个 <emphasis>事件通知者</emphasis>对象:"
+msgid ""
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
-msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
-msgstr "<literal>@Observable</literal>注释隐式指定了一个 <literal>@Dependent</literal> 范围的,部署类型为<literal>@Standard</literal> 的Web Bean。其实现由Web Bean管理器提供。"
+#: events.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"A producer raises events by calling the <literal>fire()</literal> method of "
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"一个生产者通过调用 <literal>Event</literal> 接口的 <literal>fire()</literal> "
+"方法来触发事件,传递一个 <emphasis>事件对象</emphasis> :"
 
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
-msgstr "一个生产者通过调用 <literal>Event</literal> 接口的 <literal>fire()</literal> 方法来触发事件,传递一个 <emphasis>事件对象</emphasis> :"
-
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
-msgstr "一个事件对象可以是没有任何类型变量或者通配类型参数的任何Java类的实例。事件可以通过符合下面条件的观察者方法传送:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "事件将被发送给每个符合下面条件的观察者方法:"
 
 #. Tag: para
-#: events.xml:83
-#: events.xml:107
-#: events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "有一个事件参数可以赋给事件对象,并且"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "没有指定事件绑定"
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
-msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Web Bean管理器简单地调用所有观察者方法,以事件参数值来传递事件对象。如果任何观察者方法抛出一个异常,Web Bean管理器将停止调用观察者方法,<literal>fire()</literal> 方法再次抛出这个异常。"
+#: events.xml:119
+#, fuzzy, no-c-format
+msgid ""
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Web Bean管理器简单地调用所有观察者方法,以事件参数值来传递事件对象。如果任何"
+"观察者方法抛出一个异常,Web Bean管理器将停止调用观察者方法,<literal>fire()</"
+"literal> 方法再次抛出这个异常。"
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
-msgstr " 要指定\"选择器\",事件生产者可以将一个事件绑定类型的实例传递给 <literal>fire()</literal> 方法:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
-msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
-msgstr " <literal>AnnotationLiteral</literal> 帮助类能够让我们内部实例化绑定类型,这在Java里很难这么做。"
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "事件将被发送给每个符合下面条件的观察者方法:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
-msgstr "除了传递给<literal>fire()</literal>方法的事件绑定之外,没有指定任何事件绑定。"
+#: events.xml:144
+#, fuzzy, no-c-format
+msgid ""
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"然后,每个通过 <literal>Event</literal> 实例触发的事件都有注释的事件绑定。事"
+"件将被发送给每个符合下面条件的观察者方法:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
-msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
-msgstr "或者,通过注释事件通知者注入点来指定事件绑定:"
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "有一个事件参数可以赋给事件对象,并且"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
+msgid ""
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"除了传递给<literal>fire()</literal>方法的事件绑定之外,没有指定任何事件绑定。"
 
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
-msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
-msgstr "然后,每个通过 <literal>Event</literal> 实例触发的事件都有注释的事件绑定。事件将被发送给每个符合下面条件的观察者方法:"
+msgid ""
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
-msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
-msgstr "<emphasis>除了</emphasis>传递给 <literal>fire()</literal> 方法或者是事件通知者注入点的事件绑定。"
+msgid ""
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "事务性的观察者"
+
+#. Tag: para
+#: events.xml:180
 #, no-c-format
-msgid "Registering observers dynamically"
-msgstr "动态注册观察者"
+msgid ""
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:186
 #, no-c-format
-msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
-msgstr "动态地注册一个事件观察者相当有用。应用可以实现 <literal>Observer</literal> 接口,通过调用 <literal>observe()</literal> 方法注册一个事件通知者的观察者实例。"
+msgid ""
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:144
-#, no-c-format
-msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
-msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+#: events.xml:191
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:146
+#: events.xml:193
 #, no-c-format
-msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
-msgstr "事件绑定类型可以通过事件通知者注入点指定,或者将一个事件绑定类型实例传递给 <literal>observe()</literal> 方法:"
-
-#. Tag: programlisting
-#: events.xml:149
-#, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
-"                                                new AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "事件绑定成员"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "一个事件绑定类型可以有注释成员:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -293,186 +424,265 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
 msgstr "成员值用来限制发送给观察者的消息:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
-msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
-msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgid ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
-msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
-msgstr "事件绑定类型成员可以通过事件产生者静态地指定,通过在事件通知者注入点使用注释:"
+#: events.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Event qualifier type members may be specified statically by the event "
+"producer, via annotations at the event notifier injection point:"
+msgstr ""
+"事件绑定类型成员可以通过事件产生者静态地指定,通过在事件通知者注入点使用注"
+"释:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
-msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
-msgstr "或者事件绑定类型成员的值也可以由事件产生者动态地决定。我们先写一个 <literal>AnnotationLiteral</literal> 的抽象子类:"
+#: events.xml:217
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"或者事件绑定类型成员的值也可以由事件产生者动态地决定。我们先写一个 "
+"<literal>AnnotationLiteral</literal> 的抽象子类:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
-msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
+#: events.xml:224
+#, fuzzy, no-c-format
+msgid ""
+"The event producer passes an instance of this class to <literal>select()</"
+"literal>:"
 msgstr "事件产生者将一个这个类的实例传递给 <literal>fire()</literal> :"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
-msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
-msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+#: events.xml:226
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "多个事件绑定"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "事件绑定类型可以组合,例如:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
-msgid "When this event occurs, all of the following observer methods will be notified:"
+msgid ""
+"When this event occurs, all of the following observer methods will be "
+"notified:"
 msgstr "当这个事件发生时,下列所有观察者方法都会被通知:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
-msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
+msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
-msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
-msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgid ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
-msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
-msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgid ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "事务性的观察者"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
-msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
-msgstr "事务性的观察者在事件触发的事务完成阶段之前或者之后接收到事件通知。例如下面的观察者方法需要刷新在应用上下文中缓存的查询结果集,但只有在事务成果地更新了 <literal>Category</literal> 树之后才能发生:"
+msgid ""
+"Transactional observers receive their event notifications during the before "
+"or after completion phase of the transaction in which the event was raised. "
+"For example, the following observer method needs to refresh a query result "
+"set that is cached in the application context, but only when transactions "
+"that update the <literal>Category</literal> tree succeed:"
+msgstr ""
+"事务性的观察者在事件触发的事务完成阶段之前或者之后接收到事件通知。例如下面的"
+"观察者方法需要刷新在应用上下文中缓存的查询结果集,但只有在事务成果地更新了 "
+"<literal>Category</literal> 树之后才能发生:"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
-msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
-msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+#: events.xml:256
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
+"CategoryUpdateEvent event) { ... }]]>"
+msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "我们有三种事务性观察者:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
-msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
-msgstr "<literal>@AfterTransactionSuccess</literal> 观察者仅仅在事务成功完成之后被调用。"
+msgid ""
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
-msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
-msgstr "<literal>@AfterTransactionFailure</literal> 观察者仅仅在事务失败之后被调用。"
+#: events.xml:265
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"<literal>@AfterTransactionSuccess</literal> 观察者仅仅在事务成功完成之后被调"
+"用。"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
-msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
-msgstr "<literal>@AfterTransactionCompletion</literal> 观察者在事务完成阶段之后被调用。"
+#: events.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"<literal>@AfterTransactionFailure</literal> 观察者仅仅在事务失败之后被调用。"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
-msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
-msgstr "<literal>@BeforeTransactionCompletion</literal> 观察者在事务完成阶段之前被调用。"
+#: events.xml:277
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@AfterTransactionCompletion</literal> 观察者在事务完成阶段之后被调"
+"用。"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
-msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
-msgstr "事务性的观察者在诸如Web Beans这类具有状态的对象模型中非常重要,因为状态通常比一个单一的原子事务所保留的时间更长。"
+#: events.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@BeforeTransactionCompletion</literal> 观察者在事务完成阶段之前被调"
+"用。"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"事务性的观察者在诸如Web Beans这类具有状态的对象模型中非常重要,因为状态通常比"
+"一个单一的原子事务所保留的时间更长。"
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
 msgstr "设想一下我们已经在应用范围内缓存了一个JPA的查询结果集:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -486,7 +696,8 @@
 "    @Produces @Catalog \n"
 "    List<Product> getCatalog() {\n"
 "        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
 "                .getResultList();\n"
 "        }\n"
 "        return products;\n"
@@ -495,39 +706,47 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
-msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
-msgstr "一个 <literal>Product</literal>时常会被创建或者删除。当这个动作发生后,我们需要刷新 <literal>Product</literal> 分类。但是我们需要在事务完全成功<emphasis>之后</emphasis>才能处理刷新。"
+msgid ""
+"From time to time, a <literal>Product</literal> is created or deleted. When "
+"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
+"we should wait until <emphasis>after</emphasis> the transaction completes "
+"successfully before performing this refresh!"
+msgstr ""
+"一个 <literal>Product</literal>时常会被创建或者删除。当这个动作发生后,我们需"
+"要刷新 <literal>Product</literal> 分类。但是我们需要在事务完全成功<emphasis>"
+"之后</emphasis>才能处理刷新。"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
-msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
+#: events.xml:305
+#, fuzzy, no-c-format
+msgid ""
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
 msgstr "创建或者删除 <literal>Product</literal> 的Web Bean应该触发事件,例如:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -551,28 +770,29 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
-msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
+msgid ""
+"And now <literal>Catalog</literal> can observe the events after successful "
+"completion of the transaction:"
 msgstr "现在 <literal>Catalog</literal> 能够观察到事务成功完成之后触发的事件:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
+"product) {\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
-"        products.add(product);\n"
-"    }\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
+"product) {\n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -580,13 +800,122 @@
 "\n"
 "    ...\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
 "        products.add(product);\n"
 "    }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
 "        products.remove(product);\n"
 "    }\n"
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Web Beans事件通知机制能够让Web Beans以完全解耦的方式交互。事件<emphasis>产"
+#~ "生者(producers)</emphasis>触发事件,然后由Web Bean管理器发送给事件 "
+#~ "<emphasis>观察者(observers)</emphasis> 。基本的模式和我们常见的观察者设计"
+#~ "模式类似,但也有一些曲解:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr "我们通过注释事件参数来指定观察者方法的事件绑定。"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "事件生产者可以通过注入获得一个 <emphasis>事件通知者</emphasis>对象:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "<literal>@Observable</literal>注释隐式指定了一个 <literal>@Dependent</"
+#~ "literal> 范围的,部署类型为<literal>@Standard</literal> 的Web Bean。其实现"
+#~ "由Web Bean管理器提供。"
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "一个事件对象可以是没有任何类型变量或者通配类型参数的任何Java类的实例。事件"
+#~ "可以通过符合下面条件的观察者方法传送:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ " 要指定\"选择器\",事件生产者可以将一个事件绑定类型的实例传递给 "
+#~ "<literal>fire()</literal> 方法:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ " <literal>AnnotationLiteral</literal> 帮助类能够让我们内部实例化绑定类型,"
+#~ "这在Java里很难这么做。"
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr "或者,通过注释事件通知者注入点来指定事件绑定:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "<emphasis>除了</emphasis>传递给 <literal>fire()</literal> 方法或者是事件通"
+#~ "知者注入点的事件绑定。"
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "动态注册观察者"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "动态地注册一个事件观察者相当有用。应用可以实现 <literal>Observer</"
+#~ "literal> 接口,通过调用 <literal>observe()</literal> 方法注册一个事件通知"
+#~ "者的观察者实例。"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "事件绑定类型可以通过事件通知者注入点指定,或者将一个事件绑定类型实例传递"
+#~ "给 <literal>observe()</literal> 方法:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/zh-CN/example.po
===================================================================
--- doc/trunk/reference/zh-CN/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-12 11:27+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,17 +21,21 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
-msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
-msgstr "让我们通过一个完整的例子来演示这些想法。我们将是使用JSF来实现一个应用的用户登录/退出功能。首先,我们定一个Web Bean来持有登录过程中用户输入的用户名和密码:"
+#, fuzzy, no-c-format
+msgid ""
+"Let's illustrate these ideas with a full example. We're going to implement "
+"user login/logout for an application that uses JSF. First, we'll define a "
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"让我们通过一个完整的例子来演示这些想法。我们将是使用JSF来实现一个应用的用户登"
+"录/退出功能。首先,我们定一个Web Bean来持有登录过程中用户输入的用户名和密码:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -40,7 +44,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -59,23 +62,25 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
 msgstr "这个Web Bean和下面的JSF表单的login绑定:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
 "<![CDATA[<h:form>\n"
@@ -85,53 +90,62 @@
 "        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
 "        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
 "    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
-msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
-msgstr "实际的工作由一个会话范围的Web Bean完成。这个会话范围的Web Bean维护当前登录用户的信息,并且将<literal>User</literal>实体暴露给其他Web Bean:"
+#, fuzzy, no-c-format
+msgid ""
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"实际的工作由一个会话范围的Web Bean完成。这个会话范围的Web Bean维护当前登录用"
+"户的信息,并且将<literal>User</literal>实体暴露给其他Web Bean:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -146,7 +160,8 @@
 "    public void login() {\n"
 "            \n"
 "        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:password\")\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
 "           .setParameter(\"username\", credentials.getUsername())\n"
 "           .setParameter(\"password\", credentials.getPassword())\n"
 "           .getResultList();\n"
@@ -172,19 +187,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "当然, <literal>@LoggedIn</literal>是一个绑定注释:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -192,26 +223,43 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "现在,任何其他的Web Bean可以轻松地将当前用户注入:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr "现在,任何其他的Web Bean可以轻松地将当前用户注入:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -228,8 +276,29 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
-msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
-msgstr "希望这个例子能够让你尝试了Web Bean的编程模型。在下一章中,我们将更加深入的研究Web Bean的依赖注入。"
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
 
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
+msgid ""
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"希望这个例子能够让你尝试了Web Bean的编程模型。在下一章中,我们将更加深入的研"
+"究Web Bean的依赖注入。"
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr "当然, <literal>@LoggedIn</literal>是一个绑定注释:"

Modified: doc/trunk/reference/zh-CN/extend.po
===================================================================
--- doc/trunk/reference/zh-CN/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-02-16 14:16+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,280 +14,275 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "扩展Web Bean"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
-msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
-msgstr "Web Beans意图成为框架的平台,扩展的平台,和能够与其他技术整合的平台。因此,Web Bean将一套SPI暴露给开发者,从而能够让他们便于扩展Web Bean。例如,下面是Web Bean设计者设想的扩展类型:"
+#: extend.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Beans意图成为框架的平台,扩展的平台,和能够与其他技术整合的平台。因此,"
+"Web Bean将一套SPI暴露给开发者,从而能够让他们便于扩展Web Bean。例如,下面是"
+"Web Bean设计者设想的扩展类型:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "整合业务流程管理引擎,"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
-msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
+msgid ""
+"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
+"and"
 msgstr "整合第三方框架,例如Spring, Seam, GWT或者Wicket,和"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "基于Web Bean编程模型的新技术。"
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
-msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object."
 msgstr "扩展Web Bean的神经中枢是 <literal>Manager</literal> 对象。"
 
 #. Tag: title
-#: extend.xml:29
-#, no-c-format
-msgid "The <literal>Manager</literal> object"
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
 msgstr " <literal>Manager</literal> 对象"
 
 #. Tag: para
-#: extend.xml:31
-#, no-c-format
-msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
-msgstr " <literal>Manager</literal> 接口能够让我们通过编程来注册和获得Web Bean,拦截器,装饰器,观察者和上下文。"
+#: extend.xml:64
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+" <literal>Manager</literal> 接口能够让我们通过编程来注册和获得Web Bean,拦截"
+"器,装饰器,观察者和上下文。"
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
 msgstr "我们可以通过注入来获得一个 <literal>Manager</literal> 实例:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager manager"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr " <literal>Bean</literal> ç±»"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
-msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
-msgstr "抽象类 <literal>Bean</literal> 的实例代表Web Bean。应用中的每个Web Bean都有一个在 <literal>Manager</literal> 注册的  <literal>Bean</literal> 实例。"
+#: extend.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr "扩展Web Bean的神经中枢是 <literal>Manager</literal> 对象。"
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr " <literal>Context</literal> 接口"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"抽象类 <literal>Bean</literal> 的实例代表Web Bean。应用中的每个Web Bean都有一"
+"个在 <literal>Manager</literal> 注册的  <literal>Bean</literal> 实例。"
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
-msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
-msgstr "我们可以继承 <literal>Bean</literal> 类,通过调用 <literal>Manager.addBean()</literal> 方法注册实例,从而提供超出Web Bean规范之外(简单Web Bean, 企业WebBean, 生产者方法和JMS端点)的新的Web Bean类型。例如,我们可以使用 <literal>Bean</literal> 类来允许其他框架管理的对象能够注入到Web Bean中。"
+#: extend.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"我们可以继承 <literal>Bean</literal> 类,通过调用 <literal>Manager.addBean()"
+"</literal> 方法注册实例,从而提供超出Web Bean规范之外(简单Web Bean, 企业"
+"WebBean, 生产者方法和JMS端点)的新的Web Bean类型。例如,我们可以使用 "
+"<literal>Bean</literal> 类来允许其他框架管理的对象能够注入到Web Bean中。"
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
-msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
-msgstr "Web Bean规范定义了两种 <literal>Bean</literal> 的子类:<literal>拦截器</literal> 和 <literal>装饰器</literal>。"
+#: extend.xml:104
+#, fuzzy, no-c-format
+msgid ""
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
+"specification: <literal>Interceptor</literal> and <literal>Decorator</"
+"literal>."
+msgstr ""
+"Web Bean规范定义了两种 <literal>Bean</literal> 的子类:<literal>拦截器</"
+"literal> 和 <literal>装饰器</literal>。"
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr " <literal>Context</literal> 接口"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
-msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
-msgstr " <literal>Context</literal> 接口支持向Web Bean中添加新的范围,或者在新的环境中扩展内置的范围。"
+#: extend.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Context</literal> interface supports addition of new scopes to "
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+" <literal>Context</literal> 接口支持向Web Bean中添加新的范围,或者在新的环境"
+"中扩展内置的范围。"
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -300,8 +295,192 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
-msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
-msgstr "例如,我们可以实现 <literal>Context</literal> ,向Web Bean添加一个业务流程范围,或者向使用Wicket框架的应用添加对对话的支持。"
+#: extend.xml:121
+#, fuzzy, no-c-format
+msgid ""
+"For example, we might implement <literal>Context</literal> to add a business "
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"例如,我们可以实现 <literal>Context</literal> ,向Web Bean添加一个业务流程范"
+"围,或者向使用Wicket框架的应用添加对对话的支持。"
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "扩展Web Bean"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr " <literal>Bean</literal> ç±»"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/zh-CN/extensions.po
===================================================================
--- doc/trunk/reference/zh-CN/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/zh-CN/injection.po
===================================================================
--- doc/trunk/reference/zh-CN/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-13 10:08+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -15,34 +15,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "依赖注入"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Beans支持三种主要的依赖注入机制:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "构造器参数注入:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>初始化</emphasis> 方法参数注入:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -58,23 +76,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>初始化</emphasis> 方法参数注入:"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -90,18 +114,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "和直接的域注入:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -112,55 +145,83 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
-msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
+msgid ""
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
 msgstr "当Web Bean实例被首次初始化时,依赖注入总是随之发生。"
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
-msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
+#: injection.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
 msgstr "首先,Web Bean管理器调用Web Bean构造器来获得一个Web Bean的实例。"
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
-msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
+#: injection.xml:69
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container initializes the values of all injected fields of the "
+"bean."
 msgstr "接下来,Web Bean管理器初始化这个Web bean的所有注入域的值。"
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
 msgstr "然后,Web Bean管理器调用这个Web Bean的初始化方法。"
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
-msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
-msgstr "最后, 如果有 <literal>@PostConstruct</literal> 方法的话,调用这个方法。"
+#: injection.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"最后, 如果有 <literal>@PostConstruct</literal> 方法的话,调用这个方法。"
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:86
 #, no-c-format
-msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "EJB Beans不支持构造器参数注入,因为EJB是由EJB容器负责实例化,而不是Web Bean管理器负责。"
+msgid ""
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
-msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
-msgstr "当应用默认绑定类型<literal>@Current</literal>时,构造器的参数和初始化方法需要显式地注释。然而,即使应用了默认的绑定类型,注入域 也<emphasis>必须</emphasis> 指定一个绑定类型。如果一个域没有指定绑定类型,这个域将不会有任何注入发生。"
+msgid ""
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "生产者方法也支持参数注入:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -172,66 +233,118 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
-msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
-msgstr "最后,观察者方法(我们将在 <xref linkend=\"events\"/>一章中讨论),清除(disposal)方法和解构(destructor)方法都只支持参数注入。"
+msgid ""
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:58
+#. Tag: title
+#: injection.xml:110
 #, no-c-format
-msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "Web Beans规范定义了一个称为 <emphasis>类型安全解析算法</emphasis>的过程,当在注入点识别所注入的Web Bean时,Web Bean管理器会遵循这个过程。这个算法初看起来非常复杂,然而你一旦理解了它,它就相当直观。类型安全解析在系统初始化的时候执行,这意味着如果Web Bean的依赖无法被满足的时候,管理器将立刻通知用户,抛出一个 <literal>UnsatisfiedDependencyException</literal> 异常或者 <literal>AmbiguousDependencyException</literal> 异常。"
+msgid "What gets injected"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
-msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
+#: injection.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
+msgstr ""
+"Web Beans规范定义了一个称为 <emphasis>类型安全解析算法</emphasis>的过程,当在"
+"注入点识别所注入的Web Bean时,Web Bean管理器会遵循这个过程。这个算法初看起来"
+"非常复杂,然而你一旦理解了它,它就相当直观。类型安全解析在系统初始化的时候执"
+"行,这意味着如果Web Bean的依赖无法被满足的时候,管理器将立刻通知用户,抛出一"
+"个 <literal>UnsatisfiedDependencyException</literal> 异常或者 "
+"<literal>AmbiguousDependencyException</literal> 异常。"
+
+#. Tag: para
+#: injection.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
 msgstr "这个算法的目的是允许多个Web Beans实现相同的API类型,并且:"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
-msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
+#: injection.xml:126
+#, fuzzy, no-c-format
+msgid ""
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
 msgstr "允许客户通过 <emphasis>绑定注释</emphasis> 选择它需要的具体实现,"
 
 #. Tag: para
-#: injection.xml:77
+#: injection.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"allow the application deployer to select which implementation is appropriate "
+"for a particular deployment, without changes to the client, by enabling or "
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"允许应用部署者激活或者关闭 <emphasis>部署类型</emphasis> ,从而实现在特定的部"
+"署环境下选择适当的具体实现,而无需修改客户,或者"
+
+#. Tag: para
+#: injection.xml:137
 #, no-c-format
-msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
-msgstr "允许应用部署者激活或者关闭 <emphasis>部署类型</emphasis> ,从而实现在特定的部署环境下选择适当的具体实现,而无需修改客户,或者"
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:143
 #, no-c-format
-msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
-msgstr "使用<emphasis>部署类型优先级</emphasis> 来允许一个API的实现在部署时重载相同API的另一个实现,而无需修改客户。"
+msgid ""
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "让我们看看Web Bean管理器如何决定注入哪个Web Bean。"
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "绑定注释"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
-msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
-msgstr "如果我们拥有实现特定API类型的多个Web Bean,我们可以使用一个绑定注释来指定在注入点注入哪个Web Bean。例如,我们可能有两个 <literal>PaymentProcessor</literal> 的实现:"
+#: injection.xml:159
+#, fuzzy, no-c-format
+msgid ""
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
+"<literal>PaymentProcessor</literal>:"
+msgstr ""
+"如果我们拥有实现特定API类型的多个Web Bean,我们可以使用一个绑定注释来指定在注"
+"入点注入哪个Web Bean。例如,我们可能有两个 <literal>PaymentProcessor</"
+"literal> 的实现:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -240,33 +353,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
-msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
-msgstr "其中 <literal>@PayByCheque</literal> 和 <literal>@PayByCreditCard</literal> 是绑定注释:"
+#: injection.xml:169
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"其中 <literal>@PayByCheque</literal> 和 <literal>@PayByCreditCard</literal> "
+"是绑定注释:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -274,110 +391,174 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
-msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
+#: injection.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
 msgstr "一个客户Web Bean开发者使用绑定注释来指定到底哪个Web Bean应该被注入。"
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "使用域注入:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "使用初始化方法注入:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "或者使用构造器注入:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "成员绑定注释"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "绑定注释可以拥有成员:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -388,621 +569,715 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "在这个例子,成员值是有意义的:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
-msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
-msgstr "你可以告诉Web Bean管理器忽略一个绑定注释的成员,只需在这个成员上使用 <literal>@NonBinding</literal> 注释。"
+#: injection.xml:232
+#, fuzzy, no-c-format
+msgid ""
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"你可以告诉Web Bean管理器忽略一个绑定注释的成员,只需在这个成员上使用 "
+"<literal>@NonBinding</literal> 注释。"
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "绑定注释的组合"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
 msgstr "一个注入点甚至可以指定多个绑定注释:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
-msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
-msgstr "在这个情况下,只有<emphasis>拥有两个</emphasis>绑定注释的Web Bean才有资格被注入。"
+#: injection.xml:250
+#, fuzzy, no-c-format
+msgid ""
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"在这个情况下,只有<emphasis>拥有两个</emphasis>绑定注释的Web Bean才有资格被注"
+"入。"
 
+#. Tag: programlisting
+#: injection.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:153
+#: injection.xml:260
 #, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "绑定注释和生产者方法"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:155
+#: injection.xml:262
 #, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "甚至生产者方法可以指定绑定注释:"
+msgid ""
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:266
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
-#. Tag: title
-#: injection.xml:162
-#, no-c-format
-msgid "The default binding type"
-msgstr "默认的绑定类型"
-
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:268
 #, no-c-format
-msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
-msgstr "Web Beans定义了一个 <literal>@Current</literal> 绑定类型,这个绑定类型是任何注入点或者没有显式指定绑定类型的Web Bean的默认绑定类型。"
+msgid ""
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:168
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
-msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
-msgstr "通常有两种环境需要我们显式地指定<literal>@Current</literal> :"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:173
+#: injection.xml:276
 #, no-c-format
-msgid "on a field, in order to declare it as an injected field with the default binding type, and"
-msgstr "在一个域上指定,以便声明这是一个拥有默认绑定类型的注入域,以及"
+msgid ""
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:177
-#, no-c-format
-msgid "on a Web Bean which has another binding type in addition to the default binding type."
-msgstr "在一个Web Bean上指定,这个Web Bean除了默认的绑定类型之外还拥有其他的绑定类型。"
-
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "部署类型"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "修正没有满足条件的依赖"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
-msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
-msgstr "所有的Web Beans都有一个 <emphasis>部署类型</emphasis> 。每个部署类型标识一套Web Beans,这套Web Beans会有条件地在某些系统部署下面被安装。"
+#: injection.xml:287
+#, fuzzy, no-c-format
+msgid ""
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"考虑到所有实现一个注入点API类型的Web Bean的绑定注释和部署类型类型,如果解析算"
+"法失败,那么Web Bean管理器无法识别究竟应该注入哪个Web Bean。"
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
-msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
-msgstr "例如,我们可以定义一套为名为 <literal>@Mock</literal> 的部署类型,这种部署类型用来标识只应该在整合测试环境下才在系统中安装的Web Beans:"
-
-#. Tag: programlisting
-#: injection.xml:197
-#, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:298
 #, no-c-format
-msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
-msgstr "假定我们有一些和外部系统交互的Web Beans来处理付费:"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:309
 #, no-c-format
-msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
-msgstr "因为这个Web Bean并不显式地指定一个部署类型,因此它有一个默认的 <literal>@Production</literal> 部署类型。"
+msgid ""
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:314
 #, no-c-format
-msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
-msgstr "在整合测试或者单元测试期间,外部系统可能会很慢或者无法获得,所以我们可能会创建一个模拟对象:"
-
-#. Tag: programlisting
-#: injection.xml:210
-#, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:321
 #, no-c-format
-msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
-msgstr "但是Web Bean管理器如何决定在一个特定部署中使用哪一个实现?"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
-msgid "Enabling deployment types"
-msgstr "激活部署类型"
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:332
 #, no-c-format
-msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
-msgstr "Web Beans定义了两个内置的部署类型: <literal>@Production</literal> 和 <literal>@Standard</literal>。默认情况下,当系统被部署时,只有使用内置部署类型的Web Beans才被激活。我们可以在 <literal>web-beans.xml</literal> 文件中列出其他的部署类型以便在某个特定的部署中激活它们。"
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:337
 #, no-c-format
-msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
-msgstr "回到我们的例子中,当我们部署我们的整合测试时,我们希望我们标识的所有的 <literal>@Mock</literal> 对象被安装:"
+msgid ""
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:350
 #, no-c-format
-msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
-msgstr "现在,Web Bean管理器可以识别并且在部署期间安装所有拥有 <literal>@Production</literal>, <literal>@Standard</literal> 和 <literal>@Mock</literal> 注释的Web Beans。"
+msgid ""
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:358
 #, no-c-format
-msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
-msgstr " <literal>@Standard</literal> 只是Web Beans规范中为特定的Web Bean使用的部署类型。我们无法在我们自己的Web Bean中使用它,并且我们不能关闭它。"
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
+#: injection.xml:361
 #, no-c-format
-msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
-msgstr " <literal>@Production</literal> 是没有显式声明部署类型的Web Beans的默认部署类型,它可以被关闭。"
+msgid ""
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
-#. Tag: title
-#: injection.xml:244
-#, no-c-format
-msgid "Deployment type precedence"
-msgstr "部署类型优先级"
-
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
-msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation &#151; <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider what happens when the manager encounters this injection point:"
-msgstr "如果你注意的话,你可能想知道Web Bean如何决定使用哪个实现&#151; <literal>ExternalPaymentProcessor</literal> 还是 <literal>MockPaymentProcessor</literal> &#151;。思考一下当管理器遇到这个注入点时会发生什么:"
+#: injection.xml:366
+#, fuzzy, no-c-format
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr "使用Web Bean依赖注入的时候还需要注意一个问题。"
 
-#. Tag: programlisting
-#: injection.xml:251
+#. Tag: title
+#: injection.xml:373
 #, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+msgid "Client proxies"
+msgstr "客户代理"
 
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
-msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
-msgstr "现在有两个Web Bean满足 <literal>PaymentProcessor</literal> 合约。当然,我们无法使用一个绑定注释来消除这个歧义,因为绑定注释在注入点被硬编码到了源代码中,并且我们希望管理器在部署时能够决定注入哪一个Web Bean!"
+#: injection.xml:375
+#, fuzzy, no-c-format
+msgid ""
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
+msgstr "注入的Web Bean的客户通常不会直接拥有这个Web bean实例的引用。"
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
-msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
-msgstr "这个问题的解决方案是每个不同的部署类型都拥有不同的 <emphasis>优先级</emphasis> 。部署类型的优先级由它们在 <literal>web-beans.xml</literal> 中出现的顺序决定。在我们这个例子中, <literal>@Mock</literal> 比 <literal>@Production</literal> 出现的晚,所以它拥有更高的优先级。"
+#: injection.xml:380
+#, fuzzy, no-c-format
+msgid ""
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"想象一下如果一个应用范围的Web Bean能够拥有一个请求范围的Web Bean的直接引用。"
+"应用范围的Web Bean是被很多不同的请求共享的。但是不同的请求应该看到不同的请求"
+"范围的Web Bean实例!"
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
-msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
-msgstr "无论何时管理器发现有多个Web Bean能够满足一个注入点指定的合约(API类型加上绑定注释),它都会考虑Web Beans的相对优先级。它将注入拥有更高优先级的Web Bean。在我们这个例子中,当系统运行在整合测试环境中(这是我们想要的),Web Bean管理器将注入 <literal>MockPaymentProcessor</literal> 对象。"
+#: injection.xml:386
+#, fuzzy, no-c-format
+msgid ""
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"现在再想象一个会话范围的Web Bean拥有一个应用范围的Web Bean的直接引用,会话上"
+"下文常常被序列化到硬盘以便更高效的使用内存。但是,应用范围的Web Bean实例不能"
+"和会话范围的Web Bean一起被序列化!"
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
-msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
-msgstr "将其和当今流行的管理器体系比较是很有意思的。各种 \"轻量级\"的容器也许也可以支持条件化部署在类路径中的类,但是这些需要部署的类必须显式地,逐个地列在配置代码或某个XML配置文件中。Web Bean当然支持通过XML来定义和配置Web Bean,但是多数情况下,只要不需要复杂的配置,部署类型可以使用一行XML就能配置一整套Web Beans。同时,浏览代码的开发者可以很容易识别这些Web Bean应该部署在哪些场景中。"
+#: injection.xml:393
+#, fuzzy, no-c-format
+msgid ""
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"因此,除非Web Bean使用默认的 <literal>@Dependent</literal> 的范围,Web Bean管"
+"理器必须通过一个代理对象来间接地拥有所有注入的Web Bean引用。这个 <emphasis>客"
+"户代理</emphasis> 负责确保收到方法调用的Web Bean实例就是当前上下文相关联的实"
+"例。客户代理也允许诸如绑定到会话上下文的Web Bean可以序列化到硬盘中,而无需递"
+"归地序列化注入到这个Web Bean中的其他的Web Bean。"
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "部署类型样例"
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "部署类型对所有事情都很有用,这是一些例子:"
+#: injection.xml:401
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
+"不幸的是,由于Java语言的限制,一些Java类型无法被Web Bean管理器代理。因此,如"
+"果注入点的类型无法被代理的话,Web Bean管理器会抛出一个 "
+"<literal>UnproxyableDependencyException</literal> 异常。"
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
-msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
-msgstr "<literal>@Mock</literal> 和 <literal>@Staging</literal> 是为测试准备的部署类型"
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr "下面的Java类型无法被Web Bean管理器代理:"
 
 #. Tag: para
-#: injection.xml:294
-#, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "<literal>@AustralianTaxLaw</literal> 是为特殊站点的Web Beans提供的部署类型"
+#: injection.xml:411
+#, fuzzy, no-c-format
+msgid ""
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "没有无参非私有构造器的类,以及"
 
 #. Tag: para
-#: injection.xml:297
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
-msgstr "<literal>@SeamFramework</literal>, <literal>@Guice</literal> 是为构建在Web Bean之上的第三方框架提供的部署类型"
+msgid ""
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"声明为 <literal>final</literal> 的类或者拥有 <literal>final</literal> 方法的"
+"类,"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
-msgstr "<literal>@Standard</literal> 是为Web Bean规范定义的标准Web Bean提供的部署类型"
+msgid "arrays and primitive types."
+msgstr "数组和原始类型。"
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "我确信你可以想到更多的应用..."
+#: injection.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"修正 <literal>UnproxyableDependencyException</literal> 很容易。只需简单的想注"
+"入类添加一个无参构造器,引入一个接口或者将注入的Web Bean的范围 "
+"<literal>@Dependent</literal> 即可。"
 
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "修正没有满足条件的依赖"
-
 #. Tag: para
-#: injection.xml:315
+#: injection.xml:430
 #, no-c-format
-msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
-msgstr "考虑到所有实现一个注入点API类型的Web Bean的绑定注释和部署类型类型,如果解析算法失败,那么Web Bean管理器无法识别究竟应该注入哪个Web Bean。"
+msgid ""
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:437
 #, no-c-format
-msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "通常我们很容易修正一个<literal>UnsatisfiedDependencyException</literal> 或者 <literal>AmbiguousDependencyException</literal>。"
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:442
 #, no-c-format
-msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point &#151; or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
-msgstr "要修正一个 <literal>UnsatisfiedDependencyException</literal>,只须简单的提供一个实现API类型的Web Bean并且拥有注入点的绑定类型 &#151; 或者激活一个已经实现API类型并且拥有绑定类型的Web Bean的部署类型。"
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:448
 #, no-c-format
-msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
-msgstr "要修正一个 <literal>AmbiguousDependencyException</literal>,我们需要引入一个绑定类型来区分API类型的两个不同的实现,或者改变其中一个实现的部署类型以便Web Bean管理器可以使用部署类型优先级来决定究竟部署哪一个实现。只有两个Web Bean共享一个绑定类型并且拥有相同部署类型的时候才会抛出 <literal>AmbiguousDependencyException</literal> 。"
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:335
-#, no-c-format
-msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
-msgstr "使用Web Bean依赖注入的时候还需要注意一个问题。"
-
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "客户代理"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "通过编程查找获得一个Web Bean"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
-msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
-msgstr "注入的Web Bean的客户通常不会直接拥有这个Web bean实例的引用。"
+msgid ""
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
-msgstr "想象一下如果一个应用范围的Web Bean能够拥有一个请求范围的Web Bean的直接引用。应用范围的Web Bean是被很多不同的请求共享的。但是不同的请求应该看到不同的请求范围的Web Bean实例!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
-msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
-msgstr "现在再想象一个会话范围的Web Bean拥有一个应用范围的Web Bean的直接引用,会话上下文常常被序列化到硬盘以便更高效的使用内存。但是,应用范围的Web Bean实例不能和会话范围的Web Bean一起被序列化!"
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
-msgstr "因此,除非Web Bean使用默认的 <literal>@Dependent</literal> 的范围,Web Bean管理器必须通过一个代理对象来间接地拥有所有注入的Web Bean引用。这个 <emphasis>客户代理</emphasis> 负责确保收到方法调用的Web Bean实例就是当前上下文相关联的实例。客户代理也允许诸如绑定到会话上下文的Web Bean可以序列化到硬盘中,而无需递归地序列化注入到这个Web Bean中的其他的Web Bean。"
+msgid "we would like to iterate over all beans of a certain type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
-msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
-msgstr "不幸的是,由于Java语言的限制,一些Java类型无法被Web Bean管理器代理。因此,如果注入点的类型无法被代理的话,Web Bean管理器会抛出一个 <literal>UnproxyableDependencyException</literal> 异常。"
+#: injection.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr "应用可以通过注入获得一个 <literal>Manager</literal> 接口实例:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "下面的Java类型无法被Web Bean管理器代理:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
-msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
-msgstr "声明为 <literal>final</literal> 的类或者拥有 <literal>final</literal> 方法的类,"
+#: injection.xml:489
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"<literal>@Mock</literal> 和 <literal>@Staging</literal> 是为测试准备的部署类"
+"åž‹"
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "没有无参非私有构造器的类,以及"
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "数组和原始类型。"
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
-msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
-msgstr "修正 <literal>UnproxyableDependencyException</literal> 很容易。只需简单的想注入类添加一个无参构造器,引入一个接口或者将注入的Web Bean的范围 <literal>@Dependent</literal> 即可。"
+#: injection.xml:504
+#, fuzzy, no-c-format
+msgid ""
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
+"简单的Web Bean只支持 <literal>@PostConstruct</literal> 和 "
+"<literal>@PreDestroy</literal> 回调。"
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "通过编程查找获得一个Web Bean"
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
-msgstr "应用可以通过注入获得一个 <literal>Manager</literal> 接口实例:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
-msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
-msgstr " <literal>Manager</literal> 对象提供一套通过编程获得一个Web Bean实例的方法。"
+msgid ""
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-msgstr "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
-
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
-msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
-msgstr "绑定注释可以通过编写一个帮助类 <literal>AnnotationLiteral</literal> 的子类来指定,否则很难在Java中实例化一个注释类型。"
+msgid ""
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
-msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to create a named subclass:"
-msgstr "如果绑定类型拥有一个注释成员,我们无法使用 <literal>AnnotationLiteral</literal> 的匿名子类&#151; 相反,我们需要创建一个具名子类:"
+msgid ""
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() { return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
-msgstr "生命周期回调方法,<literal>@Resource</literal>, <literal>@EJB</literal> 和 <literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
-msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
-msgstr "企业级Web Beans支持所有EJB规范定义的生命周期回调方法:<literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> 和 <literal>@PostActivate</literal>。"
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
-msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
-msgstr "简单的Web Bean只支持 <literal>@PostConstruct</literal> 和 <literal>@PreDestroy</literal> 回调。"
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
-msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
-msgstr "企业级和简单的Web Bean都支持使用f <literal>@Resource</literal>, <literal>@EJB</literal> 和 <literal>@PersistenceContext</literal> 来分别注入Java EE资源,EJB和JPA持久化上下文。简单的Web Bean不支持使用 <literal>@PersistenceContext(type=EXTENDED)</literal> 。"
+msgid ""
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
+msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
-msgstr " <literal>@PostConstruct</literal> 调用总是在所有依赖注入之后发生。"
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr " <literal>InjectionPoint</literal> 对象"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
-msgid "There are certain kinds of dependent objects &#151; Web Beans with scope <literal>@Dependent</literal> &#151; that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
-msgstr "我们有一些依赖对象&#151; <literal>@Dependent</literal> 范围的Web Bean &#151; 需要知道它们所注入的对象或者注入点的信息,以便能够实现其功能。例如:"
+#: injection.xml:558
+#, fuzzy, no-c-format
+msgid ""
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"我们有一些依赖对象&#151; <literal>@Dependent</literal> 范围的Web Bean &#151; "
+"需要知道它们所注入的对象或者注入点的信息,以便能够实现其功能。例如:"
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
-msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
+msgid ""
+"The log category for a <literal>Logger</literal> depends upon the class of "
+"the object that owns it."
 msgstr "  <literal>Logger</literal>的日志分类取决于拥有它的类。"
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
-msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
+msgid ""
+"Injection of a HTTP parameter or header value depends upon what parameter or "
+"header name was specified at the injection point."
 msgstr "一个HTTP参数和报头值的注入取决于注入点指定的参数或者报头名称。"
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
-msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
+msgid ""
+"Injection of the result of an EL expression evaluation depends upon the "
+"expression that was specified at the injection point."
 msgstr "表达式运算结果的注入取决于在注入点指定的表达式。"
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
-msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
-msgstr "一个 <literal>@Dependent</literal> 范围的Web Bean可以注入一个 <literal>InjectionPoint</literal> 实例并且访问这个注入点相关的元数据。"
+#: injection.xml:577
+#, fuzzy, no-c-format
+msgid ""
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
+"injection point to which it belongs."
+msgstr ""
+"一个 <literal>@Dependent</literal> 范围的Web Bean可以注入一个 "
+"<literal>InjectionPoint</literal> 实例并且访问这个注入点相关的元数据。"
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
-msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
+msgid ""
+"Let's look at an example. The following code is verbose, and vulnerable to "
+"refactoring problems:"
 msgstr "我们看一个例子。下面的代码很冗长脆弱,有重构问题:"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
-msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
-msgstr "这个生产者方法允许你注入一个JDK的 <literal>Logger</literal> ,没有显式的指定一个日志分类:"
+msgid ""
+"This clever little producer method lets you inject a JDK <literal>Logger</"
+"literal> without explicitly specifying the log category:"
+msgstr ""
+"这个生产者方法允许你注入一个JDK的 <literal>Logger</literal> ,没有显式的指定"
+"一个日志分类:"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1010,31 +1285,34 @@
 "<![CDATA[class LogFactory {\n"
 "\n"
 "   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "我们现在可以编写:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
+#: injection.xml:595
+#, fuzzy, no-c-format
+msgid ""
+"Not convinced? Then here's a second example. To inject HTTP parameters, we "
+"need to define a qualifier type:"
 msgstr "没被说服?我们还有第二个例子。要注入HTTP参数,我们需要定一个绑定类型:"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1052,13 +1330,13 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr "我们可以在注入点使用这个绑定类型:"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1068,20 +1346,21 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "下面的生产方法能够完成这个工作:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
@@ -1090,25 +1369,35 @@
 "\n"
 "   @Produces @HttpParam(\"\")\n"
 "   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-"      return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
 "   }\n"
 "\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
-msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
-msgstr "(注意 <literal>HttpParam</literal> 注释的成员 <literal>value()</literal> 将被Web Bean管理器忽略,因为它拥有 <literal>@NonBinding.</literal> 注释)"
+#: injection.xml:608
+#, fuzzy, no-c-format
+msgid ""
+"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
+"literal> annotation is ignored by the container since it is annotated "
+"<literal>@NonBinding.</literal>)"
+msgstr ""
+"(注意 <literal>HttpParam</literal> 注释的成员 <literal>value()</literal> 将被"
+"Web Bean管理器忽略,因为它拥有 <literal>@NonBinding.</literal> 注释)"
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
-msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
-msgstr "Web Bean管理器提供一个内置的实现 <literal>InjectionPoint</literal> 接口的Web Bean:"
+#: injection.xml:611
+#, fuzzy, no-c-format
+msgid ""
+"The container provides a built-in bean that implements the "
+"<literal>InjectionPoint</literal> interface:"
+msgstr ""
+"Web Bean管理器提供一个内置的实现 <literal>InjectionPoint</literal> 接口的Web "
+"Bean:"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1127,3 +1416,514 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr "Web Beans支持三种主要的依赖注入机制:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "构造器参数注入:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "EJB Beans不支持构造器参数注入,因为EJB是由EJB容器负责实例化,而不是Web "
+#~ "Bean管理器负责。"
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "当应用默认绑定类型<literal>@Current</literal>时,构造器的参数和初始化方法"
+#~ "需要显式地注释。然而,即使应用了默认的绑定类型,注入域 也<emphasis>必须</"
+#~ "emphasis> 指定一个绑定类型。如果一个域没有指定绑定类型,这个域将不会有任何"
+#~ "注入发生。"
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "生产者方法也支持参数注入:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "最后,观察者方法(我们将在 <xref linkend=\"events\"/>一章中讨论),清除"
+#~ "(disposal)方法和解构(destructor)方法都只支持参数注入。"
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "使用<emphasis>部署类型优先级</emphasis> 来允许一个API的实现在部署时重载相"
+#~ "同API的另一个实现,而无需修改客户。"
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr "让我们看看Web Bean管理器如何决定注入哪个Web Bean。"
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "成员绑定注释"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "绑定注释可以拥有成员:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "在这个例子,成员值是有意义的:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "绑定注释的组合"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "绑定注释和生产者方法"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "甚至生产者方法可以指定绑定注释:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "默认的绑定类型"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Beans定义了一个 <literal>@Current</literal> 绑定类型,这个绑定类型是任"
+#~ "何注入点或者没有显式指定绑定类型的Web Bean的默认绑定类型。"
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr "通常有两种环境需要我们显式地指定<literal>@Current</literal> :"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr "在一个域上指定,以便声明这是一个拥有默认绑定类型的注入域,以及"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr ""
+#~ "在一个Web Bean上指定,这个Web Bean除了默认的绑定类型之外还拥有其他的绑定类"
+#~ "型。"
+
+#~ msgid "Deployment types"
+#~ msgstr "部署类型"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "所有的Web Beans都有一个 <emphasis>部署类型</emphasis> 。每个部署类型标识一"
+#~ "套Web Beans,这套Web Beans会有条件地在某些系统部署下面被安装。"
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "例如,我们可以定义一套为名为 <literal>@Mock</literal> 的部署类型,这种部署"
+#~ "类型用来标识只应该在整合测试环境下才在系统中安装的Web Beans:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr "假定我们有一些和外部系统交互的Web Beans来处理付费:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "因为这个Web Bean并不显式地指定一个部署类型,因此它有一个默认的 "
+#~ "<literal>@Production</literal> 部署类型。"
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "在整合测试或者单元测试期间,外部系统可能会很慢或者无法获得,所以我们可能会"
+#~ "创建一个模拟对象:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr "但是Web Bean管理器如何决定在一个特定部署中使用哪一个实现?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "激活部署类型"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Beans定义了两个内置的部署类型: <literal>@Production</literal> 和 "
+#~ "<literal>@Standard</literal>。默认情况下,当系统被部署时,只有使用内置部署"
+#~ "类型的Web Beans才被激活。我们可以在 <literal>web-beans.xml</literal> 文件"
+#~ "中列出其他的部署类型以便在某个特定的部署中激活它们。"
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "回到我们的例子中,当我们部署我们的整合测试时,我们希望我们标识的所有的 "
+#~ "<literal>@Mock</literal> 对象被安装:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "现在,Web Bean管理器可以识别并且在部署期间安装所有拥有 "
+#~ "<literal>@Production</literal>, <literal>@Standard</literal> 和 "
+#~ "<literal>@Mock</literal> 注释的Web Beans。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ " <literal>@Standard</literal> 只是Web Beans规范中为特定的Web Bean使用的部"
+#~ "署类型。我们无法在我们自己的Web Bean中使用它,并且我们不能关闭它。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ " <literal>@Production</literal> 是没有显式声明部署类型的Web Beans的默认部"
+#~ "署类型,它可以被关闭。"
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "部署类型优先级"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "如果你注意的话,你可能想知道Web Bean如何决定使用哪个实现&#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> 还是 "
+#~ "<literal>MockPaymentProcessor</literal> &#151;。思考一下当管理器遇到这个注"
+#~ "入点时会发生什么:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "现在有两个Web Bean满足 <literal>PaymentProcessor</literal> 合约。当然,我"
+#~ "们无法使用一个绑定注释来消除这个歧义,因为绑定注释在注入点被硬编码到了源代"
+#~ "码中,并且我们希望管理器在部署时能够决定注入哪一个Web Bean!"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "这个问题的解决方案是每个不同的部署类型都拥有不同的 <emphasis>优先级</"
+#~ "emphasis> 。部署类型的优先级由它们在 <literal>web-beans.xml</literal> 中出"
+#~ "现的顺序决定。在我们这个例子中, <literal>@Mock</literal> 比 "
+#~ "<literal>@Production</literal> 出现的晚,所以它拥有更高的优先级。"
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "无论何时管理器发现有多个Web Bean能够满足一个注入点指定的合约(API类型加上"
+#~ "绑定注释),它都会考虑Web Beans的相对优先级。它将注入拥有更高优先级的Web "
+#~ "Bean。在我们这个例子中,当系统运行在整合测试环境中(这是我们想要的),Web "
+#~ "Bean管理器将注入 <literal>MockPaymentProcessor</literal> 对象。"
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "将其和当今流行的管理器体系比较是很有意思的。各种 \"轻量级\"的容器也许也可"
+#~ "以支持条件化部署在类路径中的类,但是这些需要部署的类必须显式地,逐个地列在"
+#~ "配置代码或某个XML配置文件中。Web Bean当然支持通过XML来定义和配置Web Bean,"
+#~ "但是多数情况下,只要不需要复杂的配置,部署类型可以使用一行XML就能配置一整"
+#~ "套Web Beans。同时,浏览代码的开发者可以很容易识别这些Web Bean应该部署在哪"
+#~ "些场景中。"
+
+#~ msgid "Example deployment types"
+#~ msgstr "部署类型样例"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr "部署类型对所有事情都很有用,这是一些例子:"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr ""
+#~ "<literal>@AustralianTaxLaw</literal> 是为特殊站点的Web Beans提供的部署类型"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> 是为构建在"
+#~ "Web Bean之上的第三方框架提供的部署类型"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal> 是为Web Bean规范定义的标准Web Bean提供的部署"
+#~ "类型"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "我确信你可以想到更多的应用..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "通常我们很容易修正一个<literal>UnsatisfiedDependencyException</literal> 或"
+#~ "者 <literal>AmbiguousDependencyException</literal>。"
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "要修正一个 <literal>UnsatisfiedDependencyException</literal>,只须简单的提"
+#~ "供一个实现API类型的Web Bean并且拥有注入点的绑定类型 &#151; 或者激活一个已"
+#~ "经实现API类型并且拥有绑定类型的Web Bean的部署类型。"
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "要修正一个 <literal>AmbiguousDependencyException</literal>,我们需要引入一"
+#~ "个绑定类型来区分API类型的两个不同的实现,或者改变其中一个实现的部署类型以"
+#~ "便Web Bean管理器可以使用部署类型优先级来决定究竟部署哪一个实现。只有两个"
+#~ "Web Bean共享一个绑定类型并且拥有相同部署类型的时候才会抛出 "
+#~ "<literal>AmbiguousDependencyException</literal> 。"
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ " <literal>Manager</literal> 对象提供一套通过编程获得一个Web Bean实例的方"
+#~ "法。"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "绑定注释可以通过编写一个帮助类 <literal>AnnotationLiteral</literal> 的子类"
+#~ "来指定,否则很难在Java中实例化一个注释类型。"
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "如果绑定类型拥有一个注释成员,我们无法使用 <literal>AnnotationLiteral</"
+#~ "literal> 的匿名子类&#151; 相反,我们需要创建一个具名子类:"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "生命周期回调方法,<literal>@Resource</literal>, <literal>@EJB</literal> "
+#~ "和 <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "企业级Web Beans支持所有EJB规范定义的生命周期回调方法:"
+#~ "<literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, "
+#~ "<literal>@PrePassivate</literal> 和 <literal>@PostActivate</literal>。"
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "企业级和简单的Web Bean都支持使用f <literal>@Resource</literal>, "
+#~ "<literal>@EJB</literal> 和 <literal>@PersistenceContext</literal> 来分别注"
+#~ "入Java EE资源,EJB和JPA持久化上下文。简单的Web Bean不支持使用 "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal> 。"
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr " <literal>@PostConstruct</literal> 调用总是在所有依赖注入之后发生。"

Modified: doc/trunk/reference/zh-CN/interceptors.po
===================================================================
--- doc/trunk/reference/zh-CN/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-13 13:15+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,106 +14,149 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "拦截器"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
-msgid "Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending the functionality in two directions:"
-msgstr "Web Beans重用了EJB3.0的基本的拦截器体系,并且在两个方向上扩展了其功能:"
-
-#. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "任何Web Bean都可以拥有拦截器,而不仅仅是会话Bean。"
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
-msgid "Web Beans features a more sophisticated annotation-based approach to binding interceptors to Web Beans."
+#: interceptors.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
 msgstr "Web Beans拥有一个更复杂的基于注释的方法将拦截器绑定到Web Bean上。"
 
 #. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+#: interceptors.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "EJB规范定义了两种拦截点:"
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "业务方法拦截,和"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "生命周期回调方法拦截。"
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
-msgid "A <emphasis>business method interceptor</emphasis> applies to invocations of methods of the Web Bean by clients of the Web Bean:"
-msgstr "一个 <emphasis>业务方法拦截</emphasis> 是Web Bean的客户应用在Web Bean的方法调用上:"
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "EJB规范定义了两种拦截点:"
 
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>business method interceptor</emphasis> applies to invocations of "
+"methods of the bean by clients of the bean:"
+msgstr ""
+"一个 <emphasis>业务方法拦截</emphasis> 是Web Bean的客户应用在Web Bean的方法调"
+"用上:"
+
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
-msgid "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations of lifecycle callbacks by the container:"
-msgstr "一个 <emphasis>生命周期回调拦截器</emphasis> 是容器应用在生命周期回调方法的调用上:"
+msgid ""
+"A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
+"of lifecycle callbacks by the container:"
+msgstr ""
+"一个 <emphasis>生命周期回调拦截器</emphasis> 是容器应用在生命周期回调方法的调"
+"用上:"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) { ... }\n"
+"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
 #: interceptors.xml:43
 #, no-c-format
-msgid "An interceptor class may intercept both lifecycle callbacks and business methods."
+msgid ""
+"An interceptor class may intercept both lifecycle callbacks and business "
+"methods."
 msgstr "一个拦截器类既可以拦截生命周期回调方法,也可以拦截业务方法。"
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"一个 <emphasis>生命周期回调拦截器</emphasis> 是容器应用在生命周期回调方法的调"
+"用上:"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "拦截器绑定"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
-msgid "Suppose we want to declare that some of our Web Beans are transactional. The first thing we need is an <emphasis>interceptor binding annotation</emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "假定我们想声明我们的某些Web Beans是事务性的。我们要做的第一个事情就是需要一个 <emphasis>拦截器绑定注释</emphasis> 以便指定哪些Web Beans是事务性的:"
+#: interceptors.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"假定我们想声明我们的某些Web Beans是事务性的。我们要做的第一个事情就是需要一"
+"个 <emphasis>拦截器绑定注释</emphasis> 以便指定哪些Web Beans是事务性的:"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -124,13 +167,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
-msgid "Now we can easily specify that our <literal>ShoppingCart</literal> is a transactional object:"
-msgstr "现在我们可以很容易地指定我们的 <literal>ShoppingCart</literal> 是一个事务性的对象:"
+msgid ""
+"Now we can easily specify that our <literal>ShoppingCart</literal> is a "
+"transactional object:"
+msgstr ""
+"现在我们可以很容易地指定我们的 <literal>ShoppingCart</literal> 是一个事务性的"
+"对象:"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -140,17 +187,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr "或者,如果我们愿意的话,我们可以仅仅指定一个方法是事务性的:"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -158,47 +205,59 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "实现拦截器"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
-msgid "That's great, but somewhere along the line we're going to have to actually implement the interceptor that provides this transaction management aspect. All we need to do is create a standard EJB interceptor, and annotate it <literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "很好,但是在代码中有些地方需要我们实现提供事务管理的拦截器。我们需要做的事情就是创建一个标准的EJB拦截器,使用 <literal>@Interceptor</literal> 和 <literal>@Transactional</literal>注释它。"
+#: interceptors.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"That's great, but somewhere along the line we're going to have to actually "
+"implement the interceptor that provides this transaction management aspect. "
+"All we need to do is create a standard interceptor, and annotate it "
+"<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
+msgstr ""
+"很好,但是在代码中有些地方需要我们实现提供事务管理的拦截器。我们需要做的事情"
+"就是创建一个标准的EJB拦截器,使用 <literal>@Interceptor</literal> 和 "
+"<literal>@Transactional</literal>注释它。"
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid "All Web Beans interceptors are simple Web Beans, and can take advantage of dependency injection and contextual lifecycle management."
-msgstr "所有的Web Beans拦截器都是简单的Web Beans,因此可以使用依赖注入和具有上下文的生命周期的管理。"
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -207,111 +266,136 @@
 "\n"
 "    @Resource Transaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "    \n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr "多个拦截器可以使用相同的拦截器绑定类型"
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "激活拦截器"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
-msgid "Finally, we need to <emphasis>enable</emphasis> our interceptor in <literal>web-beans.xml</literal>."
-msgstr "最后,我们需要在 <literal>web-beans.xml</literal> 配置文件中 <emphasis>激活</emphasis> 我们的拦截器。"
+msgid ""
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "哇塞!为何使用尖括号?"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "好吧,XML声明解决了两个问题:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
-msgid "it enables us to specify a total ordering for all the interceptors in our system, ensuring deterministic behavior, and"
-msgstr "它可以让我们在我们的系统中指定所有的拦截器顺序,确保这些行为具有确定性,并且"
+msgid ""
+"it enables us to specify a total ordering for all the interceptors in our "
+"system, ensuring deterministic behavior, and"
+msgstr ""
+"它可以让我们在我们的系统中指定所有的拦截器顺序,确保这些行为具有确定性,并且"
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr "它能够让我们在部署期间激活或者关闭拦截器类。"
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
-msgid "For example, we could specify that our security interceptor runs before our <literal>TransactionInterceptor</literal>."
-msgstr "例如,我们可以指定在 <literal>TransactionInterceptor</literal> 之前运行我们的安全拦截器。"
+#: interceptors.xml:130
+#, fuzzy, no-c-format
+msgid ""
+"For example, we could specify that our security interceptor runs before our "
+"transaction interceptor."
+msgstr ""
+"例如,我们可以指定在 <literal>TransactionInterceptor</literal> 之前运行我们的"
+"安全拦截器。"
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "或者我们可以在测试环境中将它们都关闭!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "成员拦截器绑定"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
-msgid "Suppose we want to add some extra information to our <literal>@Transactional</literal> annotation:"
-msgstr "假定我们想要往 <literal>@Transactional</literal> 注释中添加一些额外信息:"
+msgid ""
+"Suppose we want to add some extra information to our "
+"<literal>@Transactional</literal> annotation:"
+msgstr ""
+"假定我们想要往 <literal>@Transactional</literal> 注释中添加一些额外信息:"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -322,56 +406,76 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
-msgid "Web Beans will use the value of <literal>requiresNew</literal> to choose between two different interceptors, <literal>TransactionInterceptor</literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr "Web Beans将使用 <literal>requiresNew</literal> 的值来决定在两种不同的拦截器 <literal>TransactionInterceptor</literal> 和 <literal>RequiresNewTransactionInterceptor</literal> 中选择哪一个。"
+#: interceptors.xml:150
+#, fuzzy, no-c-format
+msgid ""
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
+msgstr ""
+"Web Beans将使用 <literal>requiresNew</literal> 的值来决定在两种不同的拦截器 "
+"<literal>TransactionInterceptor</literal> 和 "
+"<literal>RequiresNewTransactionInterceptor</literal> 中选择哪一个。"
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
-msgid "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like this:"
-msgstr "现在我们可以像这样使用 <literal>RequiresNewTransactionInterceptor</literal> :"
+msgid ""
+"Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
+"this:"
+msgstr ""
+"现在我们可以像这样使用 <literal>RequiresNewTransactionInterceptor</literal> "
+":"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
-msgid "But what if we only have one interceptor and we want the manager to ignore the value of <literal>requiresNew</literal> when binding interceptors? We can use the <literal>@NonBinding</literal> annotation:"
-msgstr "但是如果我们只有一个拦截器,并且我们希望管理器在绑定拦截器的时候忽略 <literal>requiresNew</literal> 的值,那该怎么办?我们可以使用 <literal>@NonBinding</literal> 注释:"
+#: interceptors.xml:163
+#, fuzzy, no-c-format
+msgid ""
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"但是如果我们只有一个拦截器,并且我们希望管理器在绑定拦截器的时候忽略 "
+"<literal>requiresNew</literal> 的值,那该怎么办?我们可以使用 "
+"<literal>@NonBinding</literal> 注释:"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -382,19 +486,26 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "多个拦截器绑定注释"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
-msgid "Usually we use combinations of interceptor bindings types to bind multiple interceptors to a Web Bean. For example, the following declaration would be used to bind <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr "通常我们可以组合拦截器绑定类型将多个拦截器绑定到一个Web Bean上。例如,下面的声明可以将 <literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</literal> 绑定到相同的Web Bean上:"
+#: interceptors.xml:176
+#, fuzzy, no-c-format
+msgid ""
+"Usually we use combinations of interceptor bindings types to bind multiple "
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
+msgstr ""
+"通常我们可以组合拦截器绑定类型将多个拦截器绑定到一个Web Bean上。例如,下面的"
+"声明可以将 <literal>TransactionInterceptor</literal> 和 "
+"<literal>SecurityInterceptor</literal> 绑定到相同的Web Bean上:"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -404,13 +515,16 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
-msgid "However, in very complex cases, an interceptor itself may specify some combination of interceptor binding types:"
-msgstr "然而,在非常复杂的情况下,一个拦截器本身可以指定一些拦截器绑定类型的组合:"
+msgid ""
+"However, in very complex cases, an interceptor itself may specify some "
+"combination of interceptor binding types:"
+msgstr ""
+"然而,在非常复杂的情况下,一个拦截器本身可以指定一些拦截器绑定类型的组合:"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -420,17 +534,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
-msgid "Then this interceptor could be bound to the <literal>checkout()</literal> method using any one of the following combinations:"
-msgstr "然后,这个拦截器可以使用下面的任何一个组合来绑定到 <literal>checkout()</literal> 方法上:"
+msgid ""
+"Then this interceptor could be bound to the <literal>checkout()</literal> "
+"method using any one of the following combinations:"
+msgstr ""
+"然后,这个拦截器可以使用下面的任何一个组合来绑定到 <literal>checkout()</"
+"literal> 方法上:"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -438,12 +556,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -452,12 +570,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -466,12 +584,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -480,35 +598,50 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "拦截器绑定类型的继承"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
-msgid "One limitation of the Java language support for annotations is the lack of annotation inheritance. Really, annotations should have reuse built in, to allow this kind of thing to work:"
-msgstr "Java语言对注释的支持有一个限制,那就是缺少注释的继承机制。实际上,注释应该可以重用内置,应该支持下列工作:"
+msgid ""
+"One limitation of the Java language support for annotations is the lack of "
+"annotation inheritance. Really, annotations should have reuse built in, to "
+"allow this kind of thing to work:"
+msgstr ""
+"Java语言对注释的支持有一个限制,那就是缺少注释的继承机制。实际上,注释应该可"
+"以重用内置,应该支持下列工作:"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
-msgid "Well, fortunately, Web Beans works around this missing feature of Java. We may annotate one interceptor binding type with other interceptor binding types. The interceptor bindings are transitive &#151; any Web Bean with the first interceptor binding inherits the interceptor bindings declared as meta-annotations."
-msgstr "不过幸运的是,Web Beans能够解决这个Java缺失的特性。我们可以向一个拦截器绑定类型注释另一个拦截器绑定类型。拦截器绑定是具有传递性的 &#151; 拥有第一个拦截器绑定的任何Web Bean都继承被声明为元注释的拦截器绑定。"
+#: interceptors.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"不过幸运的是,Web Beans能够解决这个Java缺失的特性。我们可以向一个拦截器绑定类"
+"型注释另一个拦截器绑定类型。拦截器绑定是具有传递性的 &#151; 拥有第一个拦截器"
+"绑定的任何Web Bean都继承被声明为元注释的拦截器绑定。"
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -520,64 +653,126 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
-msgid "Any Web Bean annotated <literal>@Action</literal> will be bound to both <literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it exists.)"
-msgstr "任何使用 <literal>@Action</literal> 注释的Web Bean都被绑定到 <literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</literal> 。(如果存在 <literal>TransactionalSecureInterceptor</literal> 的话,甚至可以绑定到这个拦截器)"
+#: interceptors.xml:225
+#, fuzzy, no-c-format
+msgid ""
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
+"<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
+"literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
+"exists.)"
+msgstr ""
+"任何使用 <literal>@Action</literal> 注释的Web Bean都被绑定到 "
+"<literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</"
+"literal> 。(如果存在 <literal>TransactionalSecureInterceptor</literal> 的"
+"话,甚至可以绑定到这个拦截器)"
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr " <literal>@Interceptors</literal> 的使用"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
-msgid "The <literal>@Interceptors</literal> annotation defined by the EJB specification is supported for both enterprise and simple Web Beans, for example:"
-msgstr "企业级和简单的Web Bean都支持EJB规范指定的 <literal>@Interceptors</literal> 注释,例如:"
+#: interceptors.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"企业级和简单的Web Bean都支持EJB规范指定的 <literal>@Interceptors</literal> 注"
+"释,例如:"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
 "public class ShoppingCart {\n"
 "    public void checkout() { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "然而,这种方法具有下列缺陷:"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr "拦截器实现被硬编码到在业务代码中,"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr "拦截器可能无法轻松地在部署期间关闭,并且"
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
-msgid "the interceptor ordering is non-global &#151; it is determined by the order in which interceptors are listed at the class level."
+#: interceptors.xml:255
+#, fuzzy, no-c-format
+msgid ""
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
 msgstr "拦截器的顺序是非全局性的 &#151; 它由在类级别上列出的拦截器的顺序决定。"
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr "因此,我们建议使用Web Bean风格的拦截器绑定。"
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Beans重用了EJB3.0的基本的拦截器体系,并且在两个方向上扩展了其功能:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr "任何Web Bean都可以拥有拦截器,而不仅仅是会话Bean。"
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "所有的Web Beans拦截器都是简单的Web Beans,因此可以使用依赖注入和具有上下文"
+#~ "的生命周期的管理。"
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "最后,我们需要在 <literal>web-beans.xml</literal> 配置文件中 <emphasis>激"
+#~ "活</emphasis> 我们的拦截器。"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "或者我们可以在测试环境中将它们都关闭!"

Modified: doc/trunk/reference/zh-CN/intro.po
===================================================================
--- doc/trunk/reference/zh-CN/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-07 18:51+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-30 09:14+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,39 +16,123 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "Web Beansèµ·æ­¥"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
-msgid "So you're already keen to get started writing your first Web Bean? Or perhaps you're skeptical, wondering what kinds of hoops the Web Beans specification will make you jump through! The good news is that you've probably already written and used hundreds, perhaps thousands of Web Beans. You might not even remember the first Web Bean you wrote."
-msgstr "你是否已经迫不及待想要开始编写你的第一个Web Bean了?或许,你仍旧抱有怀疑态度,想要知道Web Beans规范会给出什么样的圈套让你跳。好消息是你也许已经编写并且使用了好几百个或者好几千个Web Bean了。你也许甚至想不起来你写的第一个Web Bean了。"
+#, fuzzy, no-c-format
+msgid ""
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"你是否已经迫不及待想要开始编写你的第一个Web Bean了?或许,你仍旧抱有怀疑态"
+"度,想要知道Web Beans规范会给出什么样的圈套让你跳。好消息是你也许已经编写并且"
+"使用了好几百个或者好几千个Web Bean了。你也许甚至想不起来你写的第一个Web Bean"
+"了。"
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "你的第一个Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "什么是Web Bean?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
-msgid "With certain, very special exceptions, every Java class with a constructor that accepts no parameters is a Web Bean. That includes every JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the JavaBeans and EJBs you've been writing every day have not been able to take advantage of the new services defined by the Web Beans specification, but you'll be able to use every one of them as Web Beans &#151; injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them &#151; without touching your existing code."
-msgstr "除非特殊情况,每个具有一个非参构造器的Java类都可以是一个Web Bean。这包括了每个JavaBean, 并且每个EJB3的会话Bean都是一个Web Bean。当然,你每天已经写过的JavaBean和EJB无法使用Web Beans规范定义的新服务,但是你能够通过Web Beans的XML配置将这些组件配置为Web Bean,然后将其注入到其他Web Bean中。你甚至可以不用修改已有代码就可以为其添加拦截器和装饰器。"
+msgid ""
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
-msgid "Suppose that we have two existing Java classes, that we've been using for years in various applications. The first class parses a string into a list of sentences:"
-msgstr "假定我们有两个已经写好的Java类,我们已经在不同的应用中使用它们好多年了。第一个类将一个字符串解析为一个句子列表:"
+msgid ""
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
 
-#. Tag: programlisting
-#: intro.xml:29
+#. Tag: para
+#: intro.xml:27
 #, no-c-format
 msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
+msgstr ""
+"假定我们有两个已经写好的Java类,我们已经在不同的应用中使用它们好多年了。第一"
+"个类将一个字符串解析为一个句子列表:"
+
+#. Tag: programlisting
+#: intro.xml:68
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -56,18 +140,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
-msgid "The second existing class is a stateless session bean front-end for an external system that is able to translate sentences from one language to another:"
-msgstr "第二个已有类是一个无状态的会话Bean,这个会话Bean作为一个外部系统的前端,能够将句子从一种语言翻译到另一个语言:"
+msgid ""
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
+msgstr ""
+"第二个已有类是一个无状态的会话Bean,这个会话Bean作为一个外部系统的前端,能够"
+"将句子从一种语言翻译到另一个语言:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -76,18 +165,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "<literal>Translator</literal>是本地接口:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -96,34 +185,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
-msgid "Unfortunately, we don't have a preexisting class that translates whole text documents. So let's write a Web Bean that does this job:"
-msgstr "不幸的是,我们没有Java类能够翻译整个文档。因此,让我们写一个Web Bean来做这个工作:"
+#: intro.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"不幸的是,我们没有Java类能够翻译整个文档。因此,让我们写一个Web Bean来做这个"
+"工作:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
-"    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -132,7 +224,8 @@
 "    private Translator sentenceTranslator;\n"
 "    \n"
 "    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+"    TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
 "        this.sentenceParser = sentenceParser;\n"
 "        this.sentenceTranslator = sentenceTranslator;\n"
 "    }\n"
@@ -148,784 +241,930 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
-msgid "We may obtain an instance of <literal>TextTranslator</literal> by injecting it into a Web Bean, Servlet or EJB:"
-msgstr "通过将其注入到一个Web Bean,Servlet或者EJB,我们能够获得一个 <literal>TextTranslator</literal>的实例:"
+#: intro.xml:87
+#, fuzzy, no-c-format
+msgid ""
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
+msgstr ""
+"但是,等一下:<literal>TextTranslator</literal>并没有一个无参构造器!它仍然是"
+"一个Web Bean么?好吧,一个没有无参构造器的类依然能够成为一个Web Bean,只要你"
+"在它的一个构造器上使用<literal>@Initializer</literal>注释即可。"
 
-#. Tag: programlisting
-#: intro.xml:49
+#. Tag: para
+#: intro.xml:93
+#, fuzzy, no-c-format
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
+msgstr ""
+"就像你猜到的一样, <literal>@Initializer</literal>注释和依赖注入有关! "
+"<literal>@Initializer</literal>可以应用到一个Web Bean的构造器或者方法上,它告"
+"诉Web Bean管理器在初始化一个Web Bean的时候去调用这个构造器或者方法。Web Beam"
+"管理器能够将其他的Web Bean注入到构造器或者方法的参数中。"
+
+#. Tag: para
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:107
 #, no-c-format
-msgid "Alternatively, we may obtain an instance by directly calling a method of the Web Bean manager:"
-msgstr "或者,我们可以直接调用Web Bean管理器的方法获得这个实例:"
+msgid ""
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
+msgstr ""
 
 #. Tag: programlisting
-#: intro.xml:54
+#: intro.xml:116
 #, no-c-format
-msgid "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-msgstr "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
+msgid ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
+msgstr ""
 
 #. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid "But wait: <literal>TextTranslator</literal> does not have a constructor with no parameters! Is it still a Web Bean? Well, a class that does not have a constructor with no parameters can still be a Web Bean if it has a constructor annotated <literal>@Initializer</literal>."
-msgstr "但是,等一下:<literal>TextTranslator</literal>并没有一个无参构造器!它仍然是一个Web Bean么?好吧,一个没有无参构造器的类依然能够成为一个Web Bean,只要你在它的一个构造器上使用<literal>@Initializer</literal>注释即可。"
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "<literal>Translator</literal>是本地接口:"
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:127
 #, no-c-format
-msgid "As you've guessed, the <literal>@Initializer</literal> annotation has something to do with dependency injection! <literal>@Initializer</literal> may be applied to a constructor or method of a Web Bean, and tells the Web Bean manager to call that constructor or method when instantiating the Web Bean. The Web Bean manager will inject other Web Beans to the parameters of the constructor or method."
-msgstr "就像你猜到的一样, <literal>@Initializer</literal>注释和依赖注入有关! <literal>@Initializer</literal>可以应用到一个Web Bean的构造器或者方法上,它告诉Web Bean管理器在初始化一个Web Bean的时候去调用这个构造器或者方法。Web Beam管理器能够将其他的Web Bean注入到构造器或者方法的参数中。"
+msgid ""
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:68
-#, no-c-format
-msgid "At system initialization time, the Web Bean manager must validate that exactly one Web Bean exists which satisfies each injection point. In our example, if no implementation of <literal>Translator</literal> available &#151; if the <literal>SentenceTranslator</literal> EJB was not deployed &#151; the Web Bean manager would throw an <literal>UnsatisfiedDependencyException</literal>. If more than one implementation of <literal>Translator</literal> was available, the Web Bean manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "在系统初始化的时候,Web Bean管理器必须验证只存在一个Web Bean能够满足每个注入点。在我们的例子中,如果没有<literal>Translator</literal>实现&#151;如果<literal>SentenceTranslator</literal> EJB没有被部署&#151;Web Bean管理器将会抛出一个<literal>UnsatisfiedDependencyException</literal>异常。如果多于一个<literal>Translator</literal>实现,Web Bean管理器将会抛出一个<literal>AmbiguousDependencyException</literal>异常。"
+#: intro.xml:135
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"通过将其注入到一个Web Bean,Servlet或者EJB,我们能够获得一个 "
+"<literal>TextTranslator</literal>的实例:"
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "什么是Web Bean?"
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:142
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "那么, Web Bean<emphasis>究竟</emphasis>是什么?"
+msgid ""
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:84
-#, no-c-format
-msgid "A Web Bean is an application class that contains business logic. A Web Bean may be called directly from Java code, or it may be invoked via Unified EL. A Web Bean may access transactional resources. Dependencies between Web Beans are managed automatically by the Web Bean manager. Most Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "一个Web Bean是一个包含业务逻辑的应用类。一个Web Bean能够从Java代码中直接调用,也可以通过统一表达语言调用。一个Web Bean可以访问事务性的资源。Web Bean之间的依赖通过Web Bean管理器自动管理。大部分Web Bean是具有 <emphasis>状态</emphasis>和<emphasis>上下文</emphasis>的。Web Bean的生命周期总是通过Web Bean管理器进行管理。"
+#: intro.xml:148
+#, fuzzy, no-c-format
+msgid ""
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"在系统初始化的时候,Web Bean管理器必须验证只存在一个Web Bean能够满足每个注入"
+"点。在我们的例子中,如果没有<literal>Translator</literal>实现&#151;如果"
+"<literal>SentenceTranslator</literal> EJB没有被部署&#151;Web Bean管理器将会抛"
+"出一个<literal>UnsatisfiedDependencyException</literal>异常。如果多于一个"
+"<literal>Translator</literal>实现,Web Bean管理器将会抛出一个"
+"<literal>AmbiguousDependencyException</literal>异常。"
 
 #. Tag: para
-#: intro.xml:91
+#: intro.xml:156
 #, no-c-format
-msgid "Let's back up a second. What does it really mean to be \"contextual\"? Since Web Beans may be stateful, it matters <emphasis>which</emphasis> bean instance I have. Unlike a stateless component model (for example, stateless session beans) or a singleton component model (such as servlets, or singleton beans), different clients of a Web Bean see the Web Bean in different states. The client-visible state depends upon which instance of the Web Bean the client has a reference to."
-msgstr "让我们后退一步。\"上下文\"究竟意味着什么?既然Web Beans可以是有状态的,那它关系到我到底拥有<emphasis>哪个</emphasis>Bean实例。和无状态组件模型(例如无状态的会话Bean)或者一个单例模型组件(例如Servlet或者单例Bean)不同,一个Web Bean的不同客户端看到的Web Bean的状态是不同的。客户端所见的状态取决于这个客户端拥有的是哪一个Web Bean实例的引用。"
+msgid ""
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
+msgstr ""
 
-#. Tag: para
-#: intro.xml:98
-#, no-c-format
-msgid "However, like a stateless or singleton model, but <emphasis>unlike</emphasis> stateful session beans, the client does not control the lifecycle of the instance by explicitly creating and destroying it. Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "然而,Web Bean像无状态或者单例模型那样,却和有状态的会话Bean<emphasis>不同</emphasis>,客户端无法通过显式地创建或者销毁它来控制实例的生命周期。取而代之,Web Bean的<emphasis>范围</emphasis>决定了:"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "Web Beansèµ·æ­¥"
 
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "每个Web Bean实例的生命周期,以及"
+#~ msgid "Your first Web Bean"
+#~ msgstr "你的第一个Web Bean"
 
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "哪些客户端共享Web Bean特定实例的一个引用。"
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "除非特殊情况,每个具有一个非参构造器的Java类都可以是一个Web Bean。这包括了"
+#~ "每个JavaBean, 并且每个EJB3的会话Bean都是一个Web Bean。当然,你每天已经写过"
+#~ "的JavaBean和EJB无法使用Web Beans规范定义的新服务,但是你能够通过Web Beans"
+#~ "的XML配置将这些组件配置为Web Bean,然后将其注入到其他Web Bean中。你甚至可"
+#~ "以不用修改已有代码就可以为其添加拦截器和装饰器。"
 
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid "For a given thread in a Web Beans application, there may be an <emphasis>active context</emphasis> associated with the scope of the Web Bean. This context may be unique to the thread (for example, if the Web Bean is request scoped), or it may be shared with certain other threads (for example, if the Web Bean is session scoped) or even all other threads (if it is application scoped)."
-msgstr "给定一个Web Bean应用的线程,将可能有一个<emphasis>激活的上下文</emphasis>和Web Bean的范围关联。这个上下文可能对于该线程是唯一的(例如,如果这个Web Bean是请求范围的),或者这个上下文可能被某些其他线程共享(例如,如果这个Web Bean是会话范围的),这个上下文甚至可以被所有线程共享(例如,这个Web Bean是应用范围的)。"
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr "或者,我们可以直接调用Web Bean管理器的方法获得这个实例:"
 
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid "Clients (for example, other Web Beans) executing in the same context will see the same instance of the Web Bean. But clients in a different context will see a different instance."
-msgstr "在同一个上下文中执行的客户端(例如,其他的Web Bean)看到的是同一个Web Bean的实例。但是不同的上下文中的客户端看到的是不同的实例。"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid "One great advantage of the contextual model is that it allows stateful Web Beans to be treated like services! The client need not concern itself with managing the lifecycle of the Web Bean it is using, <emphasis>nor does it even need to know what that lifecyle is.</emphasis> Web Beans interact by passing messages, and the Web Bean implementations define the lifecycle of their own state. The Web Beans are loosely coupled because:"
-msgstr "具备上下文的模型带来的一个巨大优点是它允许有状态的Web Bean可以像服务一样使用!客户端不需要关注本身以及它使用的Web Bean的生命周期,<emphasis>甚至它根本不需要知道生命周期是什么</emphasis>。Web Bean通过传递消息来交互,Web Bean的实现定义了他们自己状态的生命周期。Web Bean是松耦合的,因为:"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "那么, Web Bean<emphasis>究竟</emphasis>是什么?"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "它们通过定义良好的公共接口交互"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "一个Web Bean是一个包含业务逻辑的应用类。一个Web Bean能够从Java代码中直接调"
+#~ "用,也可以通过统一表达语言调用。一个Web Bean可以访问事务性的资源。Web Bean"
+#~ "之间的依赖通过Web Bean管理器自动管理。大部分Web Bean是具有 <emphasis>状态"
+#~ "</emphasis>和<emphasis>上下文</emphasis>的。Web Bean的生命周期总是通过Web "
+#~ "Bean管理器进行管理。"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "它们的生命周期是完全解耦的"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "让我们后退一步。\"上下文\"究竟意味着什么?既然Web Beans可以是有状态的,那"
+#~ "它关系到我到底拥有<emphasis>哪个</emphasis>Bean实例。和无状态组件模型(例"
+#~ "如无状态的会话Bean)或者一个单例模型组件(例如Servlet或者单例Bean)不同,"
+#~ "一个Web Bean的不同客户端看到的Web Bean的状态是不同的。客户端所见的状态取决"
+#~ "于这个客户端拥有的是哪一个Web Bean实例的引用。"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid "We can replace one Web Bean with a different Web Bean that implements the same API and has a different lifecycle (a different scope) without affecting the other Web Bean implementation. In fact, Web Beans defines a sophisticated facility for overriding Web Bean implementations at deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "我们能够使用一个实现相同接口,具有不同生命周期(一个不同的范围)的Web Bean替换一个Web Bean而不会影响其他的Web Bean实现。实际上,Web Bean定义了一个复杂的机制能够在部署时覆盖Web Bean的实现,我们将在<xref linkend=\"deploymenttypes\"/>一章阐述。"
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "然而,Web Bean像无状态或者单例模型那样,却和有状态的会话Bean<emphasis>不同"
+#~ "</emphasis>,客户端无法通过显式地创建或者销毁它来控制实例的生命周期。取而"
+#~ "代之,Web Bean的<emphasis>范围</emphasis>决定了:"
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid "Note that not all clients of a Web Bean are Web Beans. Other objects such as Servlets or Message-Driven Beans &#151; which are by nature not injectable, contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "需要注意的是并非所有的Web Bean的客户端都是Web Bean。其他对象诸如Servlet或者消息驱动Bean#151;天生不可注入的, 具备上下文的对象&#151;也可以通过注入获得Web Bean的引用。"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "每个Web Bean实例的生命周期,以及"
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "讨论的够多了。我们看些更正式些的,依据规范:"
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr "哪些客户端共享Web Bean特定实例的一个引用。"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "一个Web Bean包括:"
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "给定一个Web Bean应用的线程,将可能有一个<emphasis>激活的上下文</emphasis>"
+#~ "和Web Bean的范围关联。这个上下文可能对于该线程是唯一的(例如,如果这个Web "
+#~ "Bean是请求范围的),或者这个上下文可能被某些其他线程共享(例如,如果这个"
+#~ "Web Bean是会话范围的),这个上下文甚至可以被所有线程共享(例如,这个Web "
+#~ "Bean是应用范围的)。"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "一套(非空)API类型"
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "在同一个上下文中执行的客户端(例如,其他的Web Bean)看到的是同一个Web Bean"
+#~ "的实例。但是不同的上下文中的客户端看到的是不同的实例。"
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "一套(非空)绑定注释类型"
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "具备上下文的模型带来的一个巨大优点是它允许有状态的Web Bean可以像服务一样使"
+#~ "用!客户端不需要关注本身以及它使用的Web Bean的生命周期,<emphasis>甚至它根"
+#~ "本不需要知道生命周期是什么</emphasis>。Web Bean通过传递消息来交互,Web "
+#~ "Bean的实现定义了他们自己状态的生命周期。Web Bean是松耦合的,因为:"
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "一个范围"
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "它们通过定义良好的公共接口交互"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "一个部署类型"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "它们的生命周期是完全解耦的"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "可选的,一个Web Bean的名字"
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "我们能够使用一个实现相同接口,具有不同生命周期(一个不同的范围)的Web Bean"
+#~ "替换一个Web Bean而不会影响其他的Web Bean实现。实际上,Web Bean定义了一个复"
+#~ "杂的机制能够在部署时覆盖Web Bean的实现,我们将在<xref linkend="
+#~ "\"deploymenttypes\"/>一章阐述。"
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "一套拦截器绑定类型"
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "需要注意的是并非所有的Web Bean的客户端都是Web Bean。其他对象诸如Servlet或"
+#~ "者消息驱动Bean#151;天生不可注入的, 具备上下文的对象&#151;也可以通过注入获"
+#~ "得Web Bean的引用。"
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "一个Web Bean实现"
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "讨论的够多了。我们看些更正式些的,依据规范:"
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "让我们看看这些术语对于Web Bean的开发者都意味着什么。"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "一个Web Bean包括:"
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "API类型,绑定类型和依赖注入"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "一套(非空)API类型"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid "Web Beans usually acquire references to other Web Beans via dependency injection. Any injected attribute specifies a \"contract\" that must be satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Web Bean通常通过依赖注入获得其他Web Bean的引用。任何注入的属性都要指定一个\"合约\",这个合约必须满足注入的Web Bean的要求。这个合约是:"
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "一套(非空)绑定注释类型"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "一个API类型,和"
+#~ msgid "A scope"
+#~ msgstr "一个范围"
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "一套绑定类型"
+#~ msgid "A deployment type"
+#~ msgstr "一个部署类型"
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid "An API is a user-defined class or interface. (If the Web Bean is an EJB session bean, the API type is the <literal>@Local</literal> interface or bean-class local view). A binding type represents some client-visible semantic that is satisfied by some implementations of the API and not by others."
-msgstr "一个API指的是用户定义的类或者接口。(如果Web Bean是一个EJB会话Bean,API类型是 <literal>@Local</literal> 接口或者Bean类的本地视图)。一个绑定类型表示某个客户端可见的语义,这个语义由API的某个实现而不是其他实现来满足。"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "可选的,一个Web Bean的名字"
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid "Binding types are represented by user-defined annotations that are themselves annotated <literal>@BindingType</literal>. For example, the following injection point has API type <literal>PaymentProcessor</literal> and binding type <literal>@CreditCard</literal>:"
-msgstr "绑定类型通过用户定义的注释来表现,这些注释自己需要通过<literal>@BindingType</literal>来注释。例如,下面的注入点有一个API类型 <literal>PaymentProcessor</literal>和绑定类型<literal>@CreditCard</literal>:"
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "一套拦截器绑定类型"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A Web Bean implementation"
+#~ msgstr "一个Web Bean实现"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid "If no binding type is explicitly specified at an injection point, the default binding type <literal>@Current</literal> is assumed."
-msgstr "如果在一个注入点没有显式的指定一个绑定类型,那么默认的绑定类型是<literal>@Current</literal>。"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr "让我们看看这些术语对于Web Bean的开发者都意味着什么。"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid "For each injection point, the Web Bean manager searches for a Web Bean which satisfies the contract (implements the API, and has all the binding types), and injects that Web Bean."
-msgstr "对于每个注入点,Web Bean管理器都会搜索满足合约的Web Bean(实现了API并且拥有所有的绑定类型),然后将这个Web Bean注入。"
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "API类型,绑定类型和依赖注入"
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid "The following Web Bean has the binding type <literal>@CreditCard</literal> and implements the API type <literal>PaymentProcessor</literal>. It could therefore be injected to the example injection point:"
-msgstr "下面的Web Bean拥有一个绑定类型<literal>@CreditCard</literal>,并且实现了API类型<literal>PaymentProcessor</literal>。因此,这个Web Bean可以被注入到这个例子的注入点中:"
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "Web Bean通常通过依赖注入获得其他Web Bean的引用。任何注入的属性都要指定一个"
+#~ "\"合约\",这个合约必须满足注入的Web Bean的要求。这个合约是:"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid "an API type, together with"
+#~ msgstr "一个API类型,和"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid "If a Web Bean does not explicitly specify a set of binding types, it has exactly one binding type: the default binding type <literal>@Current</literal>."
-msgstr "如果一个Web Bean没有显式的指定一套绑定类型,它将只有一个绑定类型:默认的绑定类型<literal>@Current</literal>。"
+#~ msgid "a set of binding types."
+#~ msgstr "一套绑定类型"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid "Web Beans defines a sophisticated but intuitive <emphasis>resolution algorithm</emphasis> that helps the container decide what to do if there is more than one Web Bean that satisfies a particular contract. We'll get into the details in <xref linkend=\"injection\"/>."
-msgstr "Web Bean定义了一个复杂但是很直观的<emphasis>解析算法</emphasis>来帮助容器确定如何处理多个Web Bean满足特定合约的情况。我们将在 <xref linkend=\"injection\"/>一章中详述。"
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "一个API指的是用户定义的类或者接口。(如果Web Bean是一个EJB会话Bean,API类"
+#~ "型是 <literal>@Local</literal> 接口或者Bean类的本地视图)。一个绑定类型表"
+#~ "示某个客户端可见的语义,这个语义由API的某个实现而不是其他实现来满足。"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "部署类型"
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "绑定类型通过用户定义的注释来表现,这些注释自己需要通过"
+#~ "<literal>@BindingType</literal>来注释。例如,下面的注入点有一个API类型 "
+#~ "<literal>PaymentProcessor</literal>和绑定类型<literal>@CreditCard</"
+#~ "literal>:"
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid "<emphasis>Deployment types</emphasis> let us classify our Web Beans by deployment scenario. A deployment type is an annotation that represents a particular deployment scenario, for example <literal>@Mock</literal>, <literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We apply the annotation to Web Beans which should be deployed in that scenario. A deployment type allows a whole set of Web Beans to be conditionally deployed, with a just single line of configuration."
-msgstr "<emphasis>部署类型</emphasis>能够让我们根据部署场景来划分我们的Web Bean。一个部署类型是一个注释,这个注释代表了一种特定的部署场景,例如<literal>@Mock</literal>,<literal>@Staging</literal>或者<literal>@AustralianTaxLaw</literal>。我们通过这些注释来决定哪些Web Bean部署在哪些场景中。一个部署类型允许我们只使用一行配置就可以对一整套Web Bean进行条件化的部署。"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid "Many Web Beans just use the default deployment type <literal>@Production</literal>, in which case no deployment type need be explicitly specified. All three Web Bean in our example have the deployment type <literal>@Production</literal>."
-msgstr "很多Web Bean只使用默认的部署类型<literal>@Production</literal>。在这种情况下,不需要显式的指定部署类型。在我们的例子中的三个Web Bean都拥有部署类型<literal>@Production</literal>。"
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "如果在一个注入点没有显式的指定一个绑定类型,那么默认的绑定类型是"
+#~ "<literal>@Current</literal>。"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid "In a testing environment, we might want to replace the <literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "在一个测试环境中,我们有可能将<literal>SentenceTranslator</literal> Web Bean替换为一个\"模拟对象\":"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "对于每个注入点,Web Bean管理器都会搜索满足合约的Web Bean(实现了API并且拥"
+#~ "有所有的绑定类型),然后将这个Web Bean注入。"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "下面的Web Bean拥有一个绑定类型<literal>@CreditCard</literal>,并且实现了"
+#~ "API类型<literal>PaymentProcessor</literal>。因此,这个Web Bean可以被注入到"
+#~ "这个例子的注入点中:"
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid "We would enable the deployment type <literal>@Mock</literal> in our testing environment, to indicate that <literal>MockSentenceTranslator</literal> and any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "我们需要在测试环境中激活部署类型<literal>@Mock</literal>,这时应用会使用 <literal>MockSentenceTranslator</literal>或者其他拥有<literal>@Mock</literal>注释的Web Bean。"
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid "We'll talk more about this unique and powerful feature in <xref linkend=\"deploymenttypes\"/>."
-msgstr "我们将在<xref linkend=\"deploymenttypes\"/>一章中详述这个独特而强大的特性。"
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "如果一个Web Bean没有显式的指定一套绑定类型,它将只有一个绑定类型:默认的绑"
+#~ "定类型<literal>@Current</literal>。"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "范围"
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Bean定义了一个复杂但是很直观的<emphasis>解析算法</emphasis>来帮助容器"
+#~ "确定如何处理多个Web Bean满足特定合约的情况。我们将在 <xref linkend="
+#~ "\"injection\"/>一章中详述。"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid "The <emphasis>scope</emphasis> defines the lifecycle and visibility of instances of the Web Bean. The Web Beans context model is extensible, accommodating arbitrary scopes. However, certain important scopes are built-in to the specification, and provided by the Web Bean manager. A scope is represented by an annotation type."
-msgstr " <emphasis>范围</emphasis>定义了一个Web Bean实例的生命周期和可见度。Web Bean的上下文模型是可扩展的,可以适应任意范围。不过某些特定的重要的范围已经内置于规范中了,由Web Bean管理器提供这些范围。一个范围也是通过注释类型来表示的。"
+#~ msgid "Deployment types"
+#~ msgstr "部署类型"
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid "For example, any web application may have <emphasis>session scoped</emphasis> Web Beans:"
-msgstr "例如,任何一个Web应用都可能拥有 <emphasis>会话范围</emphasis>的Web Bean:"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>部署类型</emphasis>能够让我们根据部署场景来划分我们的Web Bean。"
+#~ "一个部署类型是一个注释,这个注释代表了一种特定的部署场景,例如"
+#~ "<literal>@Mock</literal>,<literal>@Staging</literal>或者"
+#~ "<literal>@AustralianTaxLaw</literal>。我们通过这些注释来决定哪些Web Bean部"
+#~ "署在哪些场景中。一个部署类型允许我们只使用一行配置就可以对一整套Web Bean进"
+#~ "行条件化的部署。"
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "很多Web Bean只使用默认的部署类型<literal>@Production</literal>。在这种情况"
+#~ "下,不需要显式的指定部署类型。在我们的例子中的三个Web Bean都拥有部署类型"
+#~ "<literal>@Production</literal>。"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid "An instance of a session scoped Web Bean is bound to a user session and is shared by all requests that execute in the context of that session."
-msgstr "一个会话范围的Web Bean实例将绑定到用户会话中,它被这个会话上下文中的所有请求共享。"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "在一个测试环境中,我们有可能将<literal>SentenceTranslator</literal> Web "
+#~ "Bean替换为一个\"模拟对象\":"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid "By default, Web Beans belong to a special scope called the <emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are pure dependent objects of the object into which they are injected, and their lifecycle is bound to the lifecycle of that object."
-msgstr "默认情况下,Web Bean属于一个名为<emphasis>依赖伪范围</emphasis>的特殊范围。拥有这个范围的Web Bean的范围取决于其所注入的对象的范围,它的生命周期和所注入的对象的生命周期绑定在一起。"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "我们将在<xref linkend=\"scopescontexts\"/>一章中详述范围。"
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "我们需要在测试环境中激活部署类型<literal>@Mock</literal>,这时应用会使用 "
+#~ "<literal>MockSentenceTranslator</literal>或者其他拥有<literal>@Mock</"
+#~ "literal>注释的Web Bean。"
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Web Bean的名字和统一表达式语言"
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "我们将在<xref linkend=\"deploymenttypes\"/>一章中详述这个独特而强大的特"
+#~ "性。"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "一个Web Bean可能有一个<emphasis>名字</emphasis>,通过名字,Web Bean可以在统一表达式语言中使用。为Web Bean指定一个名字非常简单:"
+#~ msgid "Scope"
+#~ msgstr "范围"
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ " <emphasis>范围</emphasis>定义了一个Web Bean实例的生命周期和可见度。Web "
+#~ "Bean的上下文模型是可扩展的,可以适应任意范围。不过某些特定的重要的范围已经"
+#~ "内置于规范中了,由Web Bean管理器提供这些范围。一个范围也是通过注释类型来表"
+#~ "示的。"
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "现在我们可以轻松地在任何JSF或者JSP页面中使用这个Web Bean:"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "例如,任何一个Web应用都可能拥有 <emphasis>会话范围</emphasis>的Web Bean:"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "甚至我们可以让Web Bean管理器来给Web Bean指定默认的名字:"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "一个会话范围的Web Bean实例将绑定到用户会话中,它被这个会话上下文中的所有请"
+#~ "求共享。"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "默认情况下,Web Bean属于一个名为<emphasis>依赖伪范围</emphasis>的特殊范"
+#~ "围。拥有这个范围的Web Bean的范围取决于其所注入的对象的范围,它的生命周期和"
+#~ "所注入的对象的生命周期绑定在一起。"
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid "In this case, the name defaults to <literal>shoppingCart</literal> &#151; the unqualified class name, with the first character changed to lowercase."
-msgstr "在这种情况下,Web Bean的名字默认为<literal>shoppingCart</literal>&#151;非完整的类名,首字母改为小写"
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr "我们将在<xref linkend=\"scopescontexts\"/>一章中详述范围。"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "拦截器绑定类型"
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Web Bean的名字和统一表达式语言"
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid "Web Beans supports the interceptor functionality defined by EJB 3, not only for EJB beans, but also for plain Java classes. In addition, Web Beans provides a new approach to binding interceptors to EJB beans and other Web Beans."
-msgstr "Web Bean支持EJB3定义的拦截器功能,Web Bean将其扩展,使得POJO也具备该功能。另外,Web Bean提供一个新的方式来将拦截器绑定到EJB Bean和其他Web Bean上。"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "一个Web Bean可能有一个<emphasis>名字</emphasis>,通过名字,Web Bean可以在"
+#~ "统一表达式语言中使用。为Web Bean指定一个名字非常简单:"
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid "It remains possible to directly specify the interceptor class via use of the <literal>@Interceptors</literal> annotation:"
-msgstr "可以通过<literal>@Interceptors</literal> 注释直接指定拦截器类:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr "现在我们可以轻松地在任何JSF或者JSP页面中使用这个Web Bean:"
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid "However, it is more elegant, and better practice, to indirect the interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "然而,更优雅的方式或者更佳的实践是通过<emphasis>拦截器绑定类型</emphasis>来间接地绑定拦截器:"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr "甚至我们可以让Web Bean管理器来给Web Bean指定默认的名字:"
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid "We'll discuss Web Beans interceptors and decorators in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "我们将在<xref linkend=\"interceptors\"/>和<xref linkend=\"decorators\"/>两章分别讨论Web Bean拦截器和装饰器。"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "什么样的对象能够称为Web Bean?"
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "在这种情况下,Web Bean的名字默认为<literal>shoppingCart</literal>&#151;非"
+#~ "完整的类名,首字母改为小写"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid "We've already seen that JavaBeans, EJBs and some other Java classes can be Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "我们已经看到,JavaBean, EJB和其他Java类都可以成为Web Bean。但是,确切地说,什么样的对象能够称为Web Bean?"
+#~ msgid "Interceptor binding types"
+#~ msgstr "拦截器绑定类型"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "简单的Web Bean"
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Bean支持EJB3定义的拦截器功能,Web Bean将其扩展,使得POJO也具备该功能。"
+#~ "另外,Web Bean提供一个新的方式来将拦截器绑定到EJB Bean和其他Web Bean上。"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid "The Web Beans specification says that a concrete Java class is a <emphasis>simple</emphasis> Web Bean if:"
-msgstr "Web Bean规范声称一个具体的Java类可以成为一个<emphasis>简单</emphasis>的Web Bean, 只要这个类:"
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr "可以通过<literal>@Interceptors</literal> 注释直接指定拦截器类:"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid "it is not an EE container-managed component, like an EJB, a Servlet or a JPA entity,"
-msgstr "它不是一个EE容器管理的组件,例如一个EJB,一个Servlet或者一个JPA实体,"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "它不是一个非静态的静态内嵌类,"
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "然而,更优雅的方式或者更佳的实践是通过<emphasis>拦截器绑定类型</emphasis>"
+#~ "来间接地绑定拦截器:"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "它不是一个参数化类型,并且"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid "it has a constructor with no parameters, or a constructor annotated <literal>@Initializer</literal>."
-msgstr "它拥有一个无参构造器,或者构造器具有<literal>@Initializer</literal>注释。"
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "我们将在<xref linkend=\"interceptors\"/>和<xref linkend=\"decorators\"/>两"
+#~ "章分别讨论Web Bean拦截器和装饰器。"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "这样,几乎所有的JavaBean都可以是一个简单的Web Bean。"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "什么样的对象能够称为Web Bean?"
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid "Every interface implemented directly or indirectly by a simple Web Bean is an API type of the simple Web Bean. The class and its superclasses are also API types."
-msgstr "每个被简单Web Bean直接或者间接实现的接口都是这个简单Web Bean的一个API类型。这个类和它的超类也是API类型。"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "我们已经看到,JavaBean, EJB和其他Java类都可以成为Web Bean。但是,确切地"
+#~ "说,什么样的对象能够称为Web Bean?"
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "企业级Web Bean"
+#~ msgid "Simple Web Beans"
+#~ msgstr "简单的Web Bean"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid "The specification says that all EJB 3-style session and singleton beans are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web Beans &#151; since they are not intended to be injected into other objects &#151; but they can take advantage of most of the functionality of Web Beans, including dependency injection and interceptors."
-msgstr "规范指出所有EJB3类型的会话Bean或者单例Bean都是<emphasis>企业级</emphasis>Web Bean。消息驱动Bean不是Web Beans&#151;因为它们不能被注入到其他对象中#151;但是它们可以使用大部分Web Bean的功能,包括依赖注入和拦截器。"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "Web Bean规范声称一个具体的Java类可以成为一个<emphasis>简单</emphasis>的"
+#~ "Web Bean, 只要这个类:"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid "Every local interface of an enterprise Web Bean that does not have a wildcard type parameter or type variable, and every one of its superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean has a bean class local view, the bean class, and every one of its superclasses, is also an API type."
-msgstr "一个企业级Web Bean的本地接口,只要没有一个通配类型参数或者类型变量,它都是这个企业级Web Bean的API类型,该接口的每个父接口也都是这个企业级Web Bean的API类型。如果EJB Bean有一个Bean类的本地视图,这个Bean类和它的每个父类也是一个API类型。"
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr ""
+#~ "它不是一个EE容器管理的组件,例如一个EJB,一个Servlet或者一个JPA实体,"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid "Stateful session beans should declare a remove method with no parameters or a remove method annotated <literal>@Destructor</literal>. The Web Bean manager calls this method to destroy the stateful session bean instance at the end of its lifecycle. This method is called the <emphasis>destructor</emphasis> method of the enterprise Web Bean."
-msgstr "有状态的会话Bean应该声明一个无参的删除方法或者一个拥有<literal>@Destructor</literal>注释的删除方法。Web Bean管理器将在这个有状态会话Bean实例的生命周期结束时调用这个方法。这个方法被称为企业级Web Bean的<emphasis>销毁</emphasis>方法。"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "它不是一个非静态的静态内嵌类,"
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "它不是一个参数化类型,并且"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid "So when should we use an enterprise Web Bean instead of a simple Web Bean? Well, whenever we need the advanced enterprise services offered by EJB, such as:"
-msgstr "我们什么时候使用企业级Web Bean来替代简单Web Bean呢?当我们需要EJB提供的高级的企业服务的时候,例如:"
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "它拥有一个无参构造器,或者构造器具有<literal>@Initializer</literal>注释。"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "方法水平的事务管理和安全,"
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "这样,几乎所有的JavaBean都可以是一个简单的Web Bean。"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "并发管理"
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "每个被简单Web Bean直接或者间接实现的接口都是这个简单Web Bean的一个API类"
+#~ "型。这个类和它的超类也是API类型。"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
-msgstr "实例水平的有状态会话Bean的钝化和无状态会话Bean的实例池,"
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "企业级Web Bean"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "远程或者Web服务调用,和"
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "规范指出所有EJB3类型的会话Bean或者单例Bean都是<emphasis>企业级</"
+#~ "emphasis>Web Bean。消息驱动Bean不是Web Beans&#151;因为它们不能被注入到其他"
+#~ "对象中#151;但是它们可以使用大部分Web Bean的功能,包括依赖注入和拦截器。"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "定时器以及异步方法,"
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "一个企业级Web Bean的本地接口,只要没有一个通配类型参数或者类型变量,它都是"
+#~ "这个企业级Web Bean的API类型,该接口的每个父接口也都是这个企业级Web Bean的"
+#~ "API类型。如果EJB Bean有一个Bean类的本地视图,这个Bean类和它的每个父类也是"
+#~ "一个API类型。"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid "we should use an enterprise Web Bean. When we don't need any of these things, a simple Web Bean will serve just fine."
-msgstr "在这中情况下,我们应该使用一个企业级Web Bean。当我们不需要这些服务的时候,一个简单Web Bean就足够了。"
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "有状态的会话Bean应该声明一个无参的删除方法或者一个拥有"
+#~ "<literal>@Destructor</literal>注释的删除方法。Web Bean管理器将在这个有状态"
+#~ "会话Bean实例的生命周期结束时调用这个方法。这个方法被称为企业级Web Bean的"
+#~ "<emphasis>销毁</emphasis>方法。"
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid "Many Web Beans (including any session or application scoped Web Bean) are available for concurrent access. Therefore, the concurrency management provided by EJB 3.1 is especially useful. Most session and application scoped Web Beans should be EJBs."
-msgstr "很多Web Bean(包括任何会话范围或者应用范围的Web Bean)都需要并发访问。因此,EJB3.1提供的并发管理相当有用。大部分会话范围和应用范围的Web Bean应该是EJB。"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid "Web Beans which hold references to heavy-weight resources, or hold a lot of internal state benefit from the advanced container-managed lifecycle defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> model, with its support for passivation and instance pooling."
-msgstr "对于拥有重量级资源引用或者大量内部状态的Web Bean来说,它能够从高级的容器管理的生命周期获得好处。这些生命周期由EJB的 <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal>模型定义,它支持钝化和实例池。"
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "我们什么时候使用企业级Web Bean来替代简单Web Bean呢?当我们需要EJB提供的高"
+#~ "级的企业服务的时候,例如:"
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid "Finally, it's usually obvious when method-level transaction management, method-level security, timers, remote methods or asynchronous methods are needed."
-msgstr "最后,什么情况下应该使用方法水平的事务管理,方法水平的安全,计时器,远程方法或者异步方法应该是显而易见的。"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "方法水平的事务管理和安全,"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid "It's usually easy to start with simple Web Bean, and then turn it into an EJB, just by adding an annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "从简单Web Bean起步最容易,然后转换到EJB上,过程很简单,只须添加一个注释:<literal>@Stateless</literal>, <literal>@Stateful</literal> 或者 <literal>@Singleton</literal>。"
+#~ msgid "concurrency management,"
+#~ msgstr "并发管理"
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "生产者方法"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr "实例水平的有状态会话Bean的钝化和无状态会话Bean的实例池,"
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid "A <emphasis>producer method</emphasis> is a method that is called by the Web Bean manager to obtain an instance of the Web Bean when no instance exists in the current context. A producer method lets the application take full control of the instantiation process, instead of leaving instantiation to the Web Bean manager. For example:"
-msgstr "一个<emphasis>生产者方法</emphasis>由Web Bean管理器在当前上下文中没有某个Web Bean实例的时候调用,用以获得该Web Bean的一个实例。一个生产者方法能够让应用完全控制实例化的过程,而不是将初始化交给Web Bean管理器处理。例如:"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "远程或者Web服务调用,和"
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "定时器以及异步方法,"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "一个生产者方法的输出或者返回值将被注入到注入点中,就像其他任何的Web Bean一样。"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "在这中情况下,我们应该使用一个企业级Web Bean。当我们不需要这些服务的时候,"
+#~ "一个简单Web Bean就足够了。"
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "很多Web Bean(包括任何会话范围或者应用范围的Web Bean)都需要并发访问。因"
+#~ "此,EJB3.1提供的并发管理相当有用。大部分会话范围和应用范围的Web Bean应该是"
+#~ "EJB。"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid "The method return type and all interfaces it extends/implements directly or indirectly are API types of the producer method. If the return type is a class, all superclasses are also API types."
-msgstr "方法返回的类型和它直接或者间接继承或者实现的所有接口都是这个生产者方法的API类型。如果返回的类型一个类,其所有的父类也是API类型。"
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "对于拥有重量级资源引用或者大量内部状态的Web Bean来说,它能够从高级的容器管"
+#~ "理的生命周期获得好处。这些生命周期由EJB的 <literal>@Stateless</literal>/"
+#~ "<literal>@Stateful</literal>/<literal>@Singleton</literal>模型定义,它支持"
+#~ "钝化和实例池。"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "一些生产者方法返回的对象需要显式地销毁"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "最后,什么情况下应该使用方法水平的事务管理,方法水平的安全,计时器,远程方"
+#~ "法或者异步方法应该是显而易见的。"
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "从简单Web Bean起步最容易,然后转换到EJB上,过程很简单,只须添加一个注释:"
+#~ "<literal>@Stateless</literal>, <literal>@Stateful</literal> 或者 "
+#~ "<literal>@Singleton</literal>。"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid "These producer methods may define matching <emphasis>disposal methods</emphasis>:"
-msgstr "这些生产者方法可以定义对应的<emphasis>清除方法</emphasis>:"
+#~ msgid "Producer methods"
+#~ msgstr "生产者方法"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "一个<emphasis>生产者方法</emphasis>由Web Bean管理器在当前上下文中没有某个"
+#~ "Web Bean实例的时候调用,用以获得该Web Bean的一个实例。一个生产者方法能够让"
+#~ "应用完全控制实例化的过程,而不是将初始化交给Web Bean管理器处理。例如:"
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid "This disposal method is called automatically by the Web Bean manager at the end of the request."
-msgstr "这个清除方法将在请求结束的时候自动被Web Bean管理器调用。"
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
-msgstr "我们将在<xref linkend=\"producermethods\"/>一章中详述生产者方法。"
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr ""
+#~ "一个生产者方法的输出或者返回值将被注入到注入点中,就像其他任何的Web Bean一"
+#~ "样。"
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS端点"
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the developer from the tedium of managing the lifecycles of all the various JMS objects required to send messages to queues and topics. We'll discuss JMS endpoints in <xref linkend=\"jms\"/>."
-msgstr "最后,一个JMS的队列或者主题能够成为一个Web Bean。为了向队列或者主题发送消息,开发者不得不处理所有不同JMS对象的生命周期。Web Bean将开发者从这些冗长乏味的工作中解放出来。我们将在<xref linkend=\"jms\"/>一章中讨论JMS端点。"
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "方法返回的类型和它直接或者间接继承或者实现的所有接口都是这个生产者方法的"
+#~ "API类型。如果返回的类型一个类,其所有的父类也是API类型。"
 
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr "一些生产者方法返回的对象需要显式地销毁"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr "这些生产者方法可以定义对应的<emphasis>清除方法</emphasis>:"
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr "这个清除方法将在请求结束的时候自动被Web Bean管理器调用。"
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr "我们将在<xref linkend=\"producermethods\"/>一章中详述生产者方法。"
+
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS端点"
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "最后,一个JMS的队列或者主题能够成为一个Web Bean。为了向队列或者主题发送消"
+#~ "息,开发者不得不处理所有不同JMS对象的生命周期。Web Bean将开发者从这些冗长"
+#~ "乏味的工作中解放出来。我们将在<xref linkend=\"jms\"/>一章中讨论JMS端点。"

Modified: doc/trunk/reference/zh-CN/master.po
===================================================================
--- doc/trunk/reference/zh-CN/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-27 13:37+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,63 +14,104 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
-msgstr "注释"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
+msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
-"JSR-299最近将名字从\"Web Beans\"改为\"Java上下文和依赖注入\"。参考指南仍然使"
-"用\"Web Beans\"名称,参考实现仍然使用\"Web Beans RI\"名称。其他的文档,博客,"
-"论坛帖子等等可能使用新的命名,包括新的JSR-299参考实现的名字- \"Web Beans\"。"
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
-"你也将发现一些指定的最近的一些功能缺失了(例如生产者域,实现(realization),异"
-"步事件,Java EE资源的XML映射)"
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "使用具备上下文的对象"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "开发松耦合的代码"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "最大程度地使用强类型"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans和Java EE生态系统"
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Note"
+#~ msgstr "注释"
+
+#~ msgid ""
+#~ "JSR-299 has recently changed its name from \"Web Beans\" to \"Java "
+#~ "Contexts and Dependency Injection\". The reference guide still refers to "
+#~ "JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the "
+#~ "\"Web Beans RI\". Other documentation, blogs, forum posts etc. may use "
+#~ "the new nomenclature, including the new name for the JSR-299 Reference "
+#~ "Implementation - \"Web Beans\"."
+#~ msgstr ""
+#~ "JSR-299最近将名字从\"Web Beans\"改为\"Java上下文和依赖注入\"。参考指南仍然"
+#~ "使用\"Web Beans\"名称,参考实现仍然使用\"Web Beans RI\"名称。其他的文档,"
+#~ "博客,论坛帖子等等可能使用新的命名,包括新的JSR-299参考实现的名字- \"Web "
+#~ "Beans\"。"
+
+#~ msgid ""
+#~ "You'll also find that some of the more recent functionality to be "
+#~ "specified is missing (such as producer fields, realization, asynchronous "
+#~ "events, XML mapping of EE resources)."
+#~ msgstr ""
+#~ "你也将发现一些指定的最近的一些功能缺失了(例如生产者域,实现(realization),"
+#~ "异步事件,Java EE资源的XML映射)"
+
+#~ msgid "Using contextual objects"
+#~ msgstr "使用具备上下文的对象"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "开发松耦合的代码"

Modified: doc/trunk/reference/zh-CN/next.po
===================================================================
--- doc/trunk/reference/zh-CN/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-23 16:53+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -22,18 +22,122 @@
 #. Tag: para
 #: next.xml:6
 #, no-c-format
-msgid "Because Web Beans is so new, there's not yet a lot of information available online."
-msgstr "因为Web Bean是新生事物,所以网上可以获得的有关信息很少。"
+msgid ""
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"Web Bean参考实现正在<literal>http://seamframework.org/WebBeans</literal>项目"
+"中开发。参考实现的开发团队和Web Bean规范领导的博客位于<literal>http://in."
+"relation.to</literal>。本篇文章的撰写完全基于先前发表在那里的一系列博客文章。"
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
-msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "当然,Web Bean规范是有关Web Bean信息的最佳来源。这个规范大约有100页,只是这个文章的两倍长,并且可读性很好。它覆盖了我们这里跳过的很多细节。这个规范可以从<literal>http://jcp.org/en/jsr/detail?id=299</literal>下载。"
+msgid ""
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
-msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
-msgstr "Web Bean参考实现正在<literal>http://seamframework.org/WebBeans</literal>项目中开发。参考实现的开发团队和Web Bean规范领导的博客位于<literal>http://in.relation.to</literal>。本篇文章的撰写完全基于先前发表在那里的一系列博客文章。"
+msgid ""
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr "因为Web Bean是新生事物,所以网上可以获得的有关信息很少。"
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "当然,Web Bean规范是有关Web Bean信息的最佳来源。这个规范大约有100页,只是"
+#~ "这个文章的两倍长,并且可读性很好。它覆盖了我们这里跳过的很多细节。这个规范"
+#~ "可以从<literal>http://jcp.org/en/jsr/detail?id=299</literal>下载。"

Modified: doc/trunk/reference/zh-CN/part1.po
===================================================================
--- doc/trunk/reference/zh-CN/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-22 10:45+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,164 +14,348 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
-msgid "The Web Beans (JSR-299) specification defines a set of services for the Java EE environment that makes applications much easier to develop. Web Beans layers an enhanced lifecycle and interaction model over existing Java component types including JavaBeans and Enterprise Java Beans. As a complement to the traditional Java EE programming model, the Web Beans services provide:"
-msgstr "The Web Beans (JSR-299)规范为Java EE环境定义了一套服务以便开发者能够更轻松地开发应用。Web Beans在现有的包括JavaBeans和企业JavaBeans在内的Java组件类型之上增强了生命周期和交互的模型层。作为传统的Java EE编程模型的补充,Web Beans服务提供了:"
+#: part1.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"The Web Beans (JSR-299)规范为Java EE环境定义了一套服务以便开发者能够更轻松地"
+"开发应用。Web Beans在现有的包括JavaBeans和企业JavaBeans在内的Java组件类型之上"
+"增强了生命周期和交互的模型层。作为传统的Java EE编程模型的补充,Web Beans服务"
+"提供了:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
-msgid "an improved lifecycle for stateful components, bound to well-defined <emphasis>contexts</emphasis>,"
-msgstr "一个为有状态组件而改良的并且绑定到定义明确的 <emphasis>上下文</emphasis>上的生命周期,"
+#: part1.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"an improved lifecycle for stateful objects, bound to well-defined "
+"<emphasis>contexts</emphasis>,"
+msgstr ""
+"一个为有状态组件而改良的并且绑定到定义明确的 <emphasis>上下文</emphasis>上的"
+"生命周期,"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
 msgstr "一个类型安全的<emphasis>依赖注入</emphasis>方法,"
 
 #. Tag: para
-#: part1.xml:21
-#, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
 msgstr "通过 <emphasis>事件通知</emphasis> 机制实现的交互,并且"
 
 #. Tag: para
-#: part1.xml:25
-#, no-c-format
-msgid "a better approach to binding <emphasis>interceptors</emphasis> to components, along with a new kind of interceptor, called a <emphasis>decorator</emphasis>, that is more appropriate for use in solving business problems."
-msgstr "一个更好的将<emphasis>拦截器</emphasis>绑定到组件上的方法,同时提供了一个名为<emphasis>装饰器(decorator)</emphasis>的新型拦截器,这种拦截器更加适合解决业务问题。"
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"一个更好的将<emphasis>拦截器</emphasis>绑定到组件上的方法,同时提供了一个名为"
+"<emphasis>装饰器(decorator)</emphasis>的新型拦截器,这种拦截器更加适合解决业"
+"务问题。"
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:45
 #, no-c-format
-msgid "Dependency injection, together with contextual lifecycle management, saves the user of an unfamiliar API from having to ask and answer the following questions:"
-msgstr "依赖注入和具备上下文的生命周期管理节省了开发者出于对接口的不熟悉而不得不处理下列问题所浪费时间:"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:51
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "这个对象的生命周期是什么?"
+msgid ""
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:61
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "它能够有多少个并发的客户端"
+msgid ""
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:68
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "它是多线程的么?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:71
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "我能从哪里得到一个对象?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:75
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "我需要显式地销毁它么?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:83
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "当我不再直接使用它的时候,我需要将它的引用保存到哪里?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:86
 #, no-c-format
-msgid "how can I add an indirection layer, so that the implementation of this object can vary at deployment time?"
-msgstr "我如何才能添加一个间接层,以便在部署的时候可以更换这个对象的不同实现?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:89
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
-msgstr "我应该如何在其他对象中共享这个对象?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:92
 #, no-c-format
-msgid "A Web Bean specifies only the type and semantics of other Web Beans it depends upon. It need not be aware of the actual lifecycle, concrete implementation, threading model or other clients of any Web Bean it depends upon. Even better, the concrete implementation, lifecycle and threading model of a Web Bean it depends upon may vary according to the deployment scenario, without affecting any client."
-msgstr "一个Web Bean仅仅需要指定它所依赖的其他Web Bean的类型和语义。它不需要知道他所依赖的任何Web Bean的实际生命周期,具体的实现,线程模型或者这个Web Bean的其他客户端。更棒的是,它所依赖的Web Bean的具体实现和生命周期,线程模型可以根据部署场景而更改,却丝毫不影响任何客户端。"
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
+#: part1.xml:95
 #, no-c-format
-msgid "Events, interceptors and decorators enhance the <emphasis>loose-coupling</emphasis> that is inherent in this model:"
-msgstr "事件,拦截器和装饰器增强了这个模型固有的<emphasis>松耦合</emphasis>特性:"
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:77
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers,"
-msgstr "<emphasis>事件通知</emphasis>将事件的消费者和事件的产生者解耦,"
+#: part1.xml:99
+#, fuzzy, no-c-format
+msgid ""
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"依赖注入和具备上下文的生命周期管理节省了开发者出于对接口的不熟悉而不得不处理"
+"下列问题所浪费时间:"
 
 #. Tag: para
-#: part1.xml:81
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic, and"
-msgstr "<emphasis>拦截器</emphasis>将技术关注点从业务逻辑中解耦,并且"
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "这个对象的生命周期是什么?"
 
 #. Tag: para
-#: part1.xml:85
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> allow business concerns to be compartmentalized."
-msgstr "<emphasis>装饰器</emphasis>允许开发者划分业务关注点。"
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "它能够有多少个并发的客户端"
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
-msgid "Most importantly, Web Beans provides all these facilities in a <emphasis>typesafe</emphasis> way. Web Beans never uses string-based identifiers to determine how collaborating objects fit together. And XML, though it remains an option, is rarely used. Instead, Web Beans uses the typing information that is already available in the Java object model, together with a new pattern, called <emphasis>binding annotations</emphasis>, to wire together Web Beans, their dependencies, their interceptors and decorators and their event consumers."
-msgstr "最重要的是,Web Beans以一种<emphasis>类型安全</emphasis>的方式提供所有的特性。Web Beans从来不使用基于字符串的标识符来决定交互的对象如何关联在一起。至于XML, 虽然它仍旧是一个选项,但也可以几乎不使用。取而代之,Web Bean使用Java对象模型的类型信息和一种新的<emphasis>绑定注释</emphasis>模式将Web Beans和它们的依赖以及拦截器,装饰器和事件消费者关联在一起。"
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "它是多线程的么?"
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:114
 #, no-c-format
-msgid "The Web Beans services are general and apply to the following types of components that exist in the Java EE environment:"
-msgstr "Web Beans服务是相当普遍的,可以应用在下列Java EE环境中的组件类型中:"
+msgid "How do I get access to it from a client?"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "我需要显式地销毁它么?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr "当我不再直接使用它的时候,我需要将它的引用保存到哪里?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr "我如何才能添加一个间接层,以便在部署的时候可以更换这个对象的不同实现?"
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
+msgstr "我应该如何在其他对象中共享这个对象?"
+
+#. Tag: para
+#: part1.xml:137
 #, no-c-format
-msgid "all JavaBeans,"
-msgstr "所有的JavaBeans,"
+msgid ""
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:108
+#: part1.xml:142
+#, fuzzy, no-c-format
+msgid ""
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"一个Web Bean仅仅需要指定它所依赖的其他Web Bean的类型和语义。它不需要知道他所"
+"依赖的任何Web Bean的实际生命周期,具体的实现,线程模型或者这个Web Bean的其他"
+"客户端。更棒的是,它所依赖的Web Bean的具体实现和生命周期,线程模型可以根据部"
+"署场景而更改,却丝毫不影响任何客户端。"
+
+#. Tag: para
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"事件,拦截器和装饰器增强了这个模型固有的<emphasis>松耦合</emphasis>特性:"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
-msgid "all EJBs, and"
-msgstr "所有的EJB, 和"
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers,"
+msgstr "<emphasis>事件通知</emphasis>将事件的消费者和事件的产生者解耦,"
 
 #. Tag: para
-#: part1.xml:111
+#: part1.xml:159
 #, no-c-format
-msgid "all Servlets."
-msgstr "所有的Servlet。"
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic, and"
+msgstr "<emphasis>拦截器</emphasis>将技术关注点从业务逻辑中解耦,并且"
 
 #. Tag: para
-#: part1.xml:115
+#: part1.xml:163
 #, no-c-format
-msgid "Web Beans even provides the necessary integration points so that other kinds of components defined by future Java EE specifications or by non-standard frameworks may be cleanly integrated with Web Beans, take advantage of the Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Beans甚至提供了必要的整合点,以便未来的Java EE规范或者其他非标准的框架中的不同组件能够和Web Beans轻松整合,使用Web Beans服务以及和任何其他类型的Web Bean交互。"
+msgid ""
+"<emphasis>decorators</emphasis> allow business concerns to be "
+"compartmentalized."
+msgstr "<emphasis>装饰器</emphasis>允许开发者划分业务关注点。"
 
 #. Tag: para
-#: part1.xml:120
+#: part1.xml:168
+#, fuzzy, no-c-format
+msgid ""
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"最重要的是,Web Beans以一种<emphasis>类型安全</emphasis>的方式提供所有的特"
+"性。Web Beans从来不使用基于字符串的标识符来决定交互的对象如何关联在一起。至于"
+"XML, 虽然它仍旧是一个选项,但也可以几乎不使用。取而代之,Web Bean使用Java对象"
+"模型的类型信息和一种新的<emphasis>绑定注释</emphasis>模式将Web Beans和它们的"
+"依赖以及拦截器,装饰器和事件消费者关联在一起。"
+
+#. Tag: para
+#: part1.xml:177
 #, no-c-format
-msgid "Web Beans was influenced by a number of existing Java frameworks, including Seam, Guice and Spring. However, Web Beans has its own very distinct character: more typesafe than Seam, more stateful and less XML-centric than Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Beans受到了包括Seam, Guice和Spring在内的很多现有的Java框架的影响。然而,Web Beans具有自己鲜明的特性:在类型安全方面优于Seam,比Spring更加具备状态和使用更少的XML, 比Guice更加具备Web和企业应用的能力。"
+msgid ""
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:183
+#, fuzzy, no-c-format
+msgid ""
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Beans甚至提供了必要的整合点,以便未来的Java EE规范或者其他非标准的框架中"
+"的不同组件能够和Web Beans轻松整合,使用Web Beans服务以及和任何其他类型的Web "
+"Bean交互。"
+
+#. Tag: para
+#: part1.xml:189
+#, fuzzy, no-c-format
+msgid ""
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Beans受到了包括Seam, Guice和Spring在内的很多现有的Java框架的影响。然而,"
+"Web Beans具有自己鲜明的特性:在类型安全方面优于Seam,比Spring更加具备状态和使"
+"用更少的XML, 比Guice更加具备Web和企业应用的能力。"
+
+#. Tag: para
+#: part1.xml:197
 #, no-c-format
-msgid "Most importantly, Web Beans is a JCP standard that integrates cleanly with Java EE, and with any Java SE environment where embeddable EJB Lite is available."
-msgstr "最重要的是,Web Beans是一个JCP标准,能够干净地整合到Java EE中。Web Beans也可以整合到任何使用轻量的内嵌EJB的Java SE环境中。"
+msgid ""
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "我能从哪里得到一个对象?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr ""
+#~ "Web Beans服务是相当普遍的,可以应用在下列Java EE环境中的组件类型中:"
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "所有的JavaBeans,"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "所有的EJB, 和"
+
+#~ msgid "all Servlets."
+#~ msgstr "所有的Servlet。"
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "最重要的是,Web Beans是一个JCP标准,能够干净地整合到Java EE中。Web Beans也"
+#~ "可以整合到任何使用轻量的内嵌EJB的Java SE环境中。"

Modified: doc/trunk/reference/zh-CN/part2.po
===================================================================
--- doc/trunk/reference/zh-CN/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-23 17:08+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,66 +16,95 @@
 #. Tag: para
 #: part2.xml:5
 #, no-c-format
-msgid "The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. We've already seen three means of achieving loose coupling:"
-msgstr "Web Bean的首要宗旨就是<emphasis>松耦合</emphasis>。我们已经看到三种实现松耦合的方法:"
+msgid ""
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>部署类型</emphasis>能够实现部署时多态性"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>生产者方法</emphasis>能够实现运行时多态性,并且"
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
-msgid "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean lifecycles."
-msgstr "<emphasis>具备上下文的生命周期管理</emphasis>将Web Bean的生命周期解耦。"
+msgid ""
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid "These techniques serve to enable loose coupling of client and server. The client is no longer tightly bound to an implementation of an API, nor is it required to manage the lifecycle of the server object. This approach lets <emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "这些技术都是为了将客户端和服务器端解耦。客户端不在和一个API的具体实现紧密绑定,也不需要管理服务器端对象的生命周期。这种方法<emphasis>能够让有状态的对象像服务一样交互</emphasis>。"
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Web Bean的首要宗旨就是<emphasis>松耦合</emphasis>。我们已经看到三种实现松"
+#~ "耦合的方法:"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system can respond to change in a well-defined manner. In the past, frameworks that attempted to provide the facilities listed above invariably did it by sacrificing type safety. Web Beans is the first technology that achieves this level of loose coupling in a typesafe way."
-msgstr "松耦合能够让系统更加<emphasis>动态</emphasis>。系统可以以定义良好的方式来相应变化。在过去,多数框架总是通过牺牲类型安全来提供上述功能。实现此种高度的松耦合,同时又能够保证类型安全,Web Beans是第一个实现这个目标的技术。"
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr "<emphasis>部署类型</emphasis>能够实现部署时多态性"
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid "Web Beans provides three extra important facilities that further the goal of loose coupling:"
-msgstr "Web Bean提供三种额外的功能来实现松耦合的目标:"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr "<emphasis>生产者方法</emphasis>能够实现运行时多态性,并且"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid "<emphasis>interceptors</emphasis> decouple technical concerns from business logic,"
-msgstr "<emphasis>拦截器</emphasis>能够将技术关注点从业务逻辑中解耦。"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>具备上下文的生命周期管理</emphasis>将Web Bean的生命周期解耦。"
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid "<emphasis>decorators</emphasis> may be used to decouple some business concerns, and"
-msgstr "<emphasis>装饰器</emphasis>能够将一些业务关注点解耦,并且"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "这些技术都是为了将客户端和服务器端解耦。客户端不在和一个API的具体实现紧密"
+#~ "绑定,也不需要管理服务器端对象的生命周期。这种方法<emphasis>能够让有状态的"
+#~ "对象像服务一样交互</emphasis>。"
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid "<emphasis>event notifications</emphasis> decouple event producers from event consumers."
-msgstr "<emphasis>事件通知</emphasis>机制能将事件消费者和事件生产者解耦。"
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "松耦合能够让系统更加<emphasis>动态</emphasis>。系统可以以定义良好的方式来"
+#~ "相应变化。在过去,多数框架总是通过牺牲类型安全来提供上述功能。实现此种高度"
+#~ "的松耦合,同时又能够保证类型安全,Web Beans是第一个实现这个目标的技术。"
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "让我们首先研究拦截器。"
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr "Web Bean提供三种额外的功能来实现松耦合的目标:"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr "<emphasis>拦截器</emphasis>能够将技术关注点从业务逻辑中解耦。"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr "<emphasis>装饰器</emphasis>能够将一些业务关注点解耦,并且"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr "<emphasis>事件通知</emphasis>机制能将事件消费者和事件生产者解耦。"
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "让我们首先研究拦截器。"

Modified: doc/trunk/reference/zh-CN/part3.po
===================================================================
--- doc/trunk/reference/zh-CN/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-23 17:29+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,102 +16,237 @@
 #. Tag: para
 #: part3.xml:5
 #, no-c-format
-msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Web Bean的第二个宗旨是<emphasis>强类型</emphasis>。Web Bean有关依赖,拦截器和装饰器的信息以及事件生产者对应的事件消费者的信息都包含在类型安全的Java构件中,可以被编译器验证。"
+msgid ""
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
-msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules &#151; so-called \"configuration by convention\" &#151; but because there are simply no strings there to begin with!"
-msgstr "在Web Bean代码中,你不会看到基于字符串的标识符。这不是因为这个框架使用智能默认规则 &#151; 也叫\"按惯例配置\" &#151; 将它们隐藏起来,这是因为从开始就没有任何字符串!"
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:17
 #, no-c-format
-msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
-msgstr "这种方法的显而易见的好处是<emphasis>任何</emphasis>IDE都可以提供自动完成,验证和重构而无需任何特殊工具。除此之外,还有第二个,不是那么明显的好处。它能够让你考虑识别对象,事件或者拦截器的时候使用注释,而不是名字,这样你将可以提升你的代码的语义水平。"
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
 
 #. Tag: para
 #: part3.xml:21
 #, no-c-format
-msgid "Web Beans encourages you develop annotations that model concepts, for example,"
+msgid ""
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:27
+#, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Web Bean的第二个宗旨是<emphasis>强类型</emphasis>。Web Bean有关依赖,拦截器和"
+"装饰器的信息以及事件生产者对应的事件消费者的信息都包含在类型安全的Java构件"
+"中,可以被编译器验证。"
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"在Web Bean代码中,你不会看到基于字符串的标识符。这不是因为这个框架使用智能默"
+"认规则 &#151; 也叫\"按惯例配置\" &#151; 将它们隐藏起来,这是因为从开始就没有"
+"任何字符串!"
+
+#. Tag: para
+#: part3.xml:74
+#, no-c-format
+msgid ""
+"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
+"can provide autocompletion, validation and refactoring without the need for "
+"special tooling. But there is a second, less-immediately-obvious, benefit. "
+"It turns out that when you start thinking of identifying objects, events or "
+"interceptors via annotations instead of names, you have an opportunity to "
+"lift the semantic level of your code."
+msgstr ""
+"这种方法的显而易见的好处是<emphasis>任何</emphasis>IDE都可以提供自动完成,验"
+"证和重构而无需任何特殊工具。除此之外,还有第二个,不是那么明显的好处。它能够"
+"让你考虑识别对象,事件或者拦截器的时候使用注释,而不是名字,这样你将可以提升"
+"你的代码的语义水平。"
+
+#. Tag: para
+#: part3.xml:81
+#, fuzzy, no-c-format
+msgid ""
+"CDI encourages you develop annotations that model concepts, for example,"
 msgstr "Web Beans能够鼓励你为概念建模,开发注释。例如:"
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:87
 #, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>,"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>,"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> or"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>,"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "而不是使用复合名字,像:"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>,"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> or"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal>."
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
-msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
-msgstr "注释可以重用。它们能够描述系统不同部分的通用特征。它们能够帮助我们分类和理解我们的代码。它们能够以通用的方式为我们处理共同的关注点。它们能够让我们的代码具有更高的可读性,更加容易被理解。"
+msgid ""
+"The annotations are reusable. They help describe common qualities of "
+"disparate parts of the system. They help us categorize and understand our "
+"code. They help us deal with common concerns in a common way. They make our "
+"code more literate and more understandable."
+msgstr ""
+"注释可以重用。它们能够描述系统不同部分的通用特征。它们能够帮助我们分类和理解"
+"我们的代码。它们能够以通用的方式为我们处理共同的关注点。它们能够让我们的代码"
+"具有更高的可读性,更加容易被理解。"
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
-msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
-msgstr "Web Beans的<emphasis>模板</emphasis>是这种思想的延伸。一个模板为我们应用体系中的一个通用的<emphasis>角色</emphasis>建模。它将一个角色的各种不同的属性,包括范围,拦截器绑定,部署类型,等等封装到一个单一的可重用的包中。"
+#: part3.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"stereotype models a common <emphasis>role</emphasis> in your application "
+"architecture. It encapsulates various properties of the role, including "
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Web Beans的<emphasis>模板</emphasis>是这种思想的延伸。一个模板为我们应用体系"
+"中的一个通用的<emphasis>角色</emphasis>建模。它将一个角色的各种不同的属性,包"
+"括范围,拦截器绑定,部署类型,等等封装到一个单一的可重用的包中。"
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
-msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
-msgstr "甚至Web Bean的XML元数据也是强类型的!对于XML没有编译器,Web Bean充分利用了XML模式去验证XML中出现的Java类型和属性。这种方式让XML更加具有可读性,就像注释让我们的Java代码更加具有可读性一样。"
+#: part3.xml:138
+#, fuzzy, no-c-format
+msgid ""
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
+"emphasis> to use these features, but if you use them wisely, you'll come to "
+"appreciate their power."
+msgstr ""
+"我们现在可以接触Web Bean中更加高级的特性了。要记住这些特性能够让我们的代码不"
+"仅更容易验证,也更容易理解。大部分时间,你根本不<emphasis>需要</emphasis>这些"
+"特性,但是如果你能聪明地运用它们的话,你将充分体会到它们的强大。"
 
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
-msgstr "我们现在可以接触Web Bean中更加高级的特性了。要记住这些特性能够让我们的代码不仅更容易验证,也更容易理解。大部分时间,你根本不<emphasis>需要</emphasis>这些特性,但是如果你能聪明地运用它们的话,你将充分体会到它们的强大。"
-
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "甚至Web Bean的XML元数据也是强类型的!对于XML没有编译器,Web Bean充分利用了"
+#~ "XML模式去验证XML中出现的Java类型和属性。这种方式让XML更加具有可读性,就像"
+#~ "注释让我们的Java代码更加具有可读性一样。"

Modified: doc/trunk/reference/zh-CN/part4.po
===================================================================
--- doc/trunk/reference/zh-CN/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2008-12-23 17:48+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,18 +16,64 @@
 #. Tag: para
 #: part4.xml:5
 #, no-c-format
-msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
-msgstr "Web Bean的第三个宗旨是<emphasis>整合</emphasis>。Web Bean设计思想就是能够和其他的技术相互合作,能够让开发者更容易地将其他技术结合使用。Web Bean是一个开发的技术。它形成了Java EE生态系统的一部分,而它本身也是一个新的生态系统的基石,这个新的生态系统能够为已有的框架和技术提供一个更便携的扩展和整合机制。"
+msgid ""
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
-msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
-msgstr "我们已经看到了Web Bean如何帮助整合EJB和JSF, 允许我们将EJB直接绑定到JSF页面上。而这只是开始,Web Bean为其他技术提供了同样的潜在能力,例如业务流程管理引擎,其他的Web框架,第三方组件模型。Java EE平台永远不可能将Java应用开发世界中所有有意思的技术都标准化。但是Web Bean能够提供一个便捷的方式将这些尚未成为平台一部分的技术更加容易并且无缝地集成到Java EE环境中。"
+#, fuzzy, no-c-format
+msgid ""
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"我们已经看到了Web Bean如何帮助整合EJB和JSF, 允许我们将EJB直接绑定到JSF页面"
+"上。而这只是开始,Web Bean为其他技术提供了同样的潜在能力,例如业务流程管理引"
+"擎,其他的Web框架,第三方组件模型。Java EE平台永远不可能将Java应用开发世界中"
+"所有有意思的技术都标准化。但是Web Bean能够提供一个便捷的方式将这些尚未成为平"
+"台一部分的技术更加容易并且无缝地集成到Java EE环境中。"
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
-msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
-msgstr "我们已经看到了如何在应用中使用Web Bean来充分利用Java EE平台。我们也粗略地看到了一些能够支持Web Bean的便携性扩展点的SPI。你也许永远不回直接使用这些SPI,但是,知道在需要的时候你可以使用它们很有好处。最重要的是,每次你使用一个第三方扩展的时候,都有可能间接地利用了它们。"
+#: part4.xml:23
+#, fuzzy, no-c-format
+msgid ""
+"We're about to see how to take full advantage of the Java EE platform in an "
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"我们已经看到了如何在应用中使用Web Bean来充分利用Java EE平台。我们也粗略地看到"
+"了一些能够支持Web Bean的便携性扩展点的SPI。你也许永远不回直接使用这些SPI,但"
+"是,知道在需要的时候你可以使用它们很有好处。最重要的是,每次你使用一个第三方"
+"扩展的时候,都有可能间接地利用了它们。"
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Web Bean的第三个宗旨是<emphasis>整合</emphasis>。Web Bean设计思想就是能够"
+#~ "和其他的技术相互合作,能够让开发者更容易地将其他技术结合使用。Web Bean是一"
+#~ "个开发的技术。它形成了Java EE生态系统的一部分,而它本身也是一个新的生态系"
+#~ "统的基石,这个新的生态系统能够为已有的框架和技术提供一个更便携的扩展和整合"
+#~ "机制。"

Modified: doc/trunk/reference/zh-CN/part5.po
===================================================================
--- doc/trunk/reference/zh-CN/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/zh-CN/producermethods.po
===================================================================
--- doc/trunk/reference/zh-CN/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-12 11:20+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -21,117 +21,108 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "生产者方法能够让我们克服使用Web Bean管理器代替应用来负责实例化对象所带来的特"
 "定的限制。生产者方法也是将非Web Beans的对象整合到Web Beans环境中的最简单的途"
 "径。(我们将在<xref linkend=\"xml\"/>讨论第二种方法)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "根据规范:"
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, fuzzy, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "生产者方法的范围"
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -147,15 +138,15 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, fuzzy, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
@@ -163,29 +154,29 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "生产者方法的范围"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "默认的生产者方法的范围是 <literal>@Dependent</literal>,所以Web Bean管理器"
@@ -194,7 +185,7 @@
 "<literal>PaymentStrategy</literal>实例。"
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -204,12 +195,12 @@
 "注释。"
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -218,7 +209,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -229,13 +220,13 @@
 "对象将被绑定到会话上下文中。这个生产者方法在同一个会话范围中不会被再次调用。"
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "注入到生产者方法中"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -249,28 +240,28 @@
 "法获得依赖注入的好处,也无法获得拦截器。"
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "如果这不是我们想要的,我们可以对生产者方法使用依赖注入来获得Web Bean实例:"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -286,17 +277,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "等一下,如果 <literal>CreditCardPaymentStrategy</literal> 是一个请求范围的"
 "Web Bean,那会怎样?生产者方法将会把当前请求范围的实例\"提升\"到会话范围。这"
@@ -305,13 +296,13 @@
 "这种错误,因此使用生产者方法返回Web bean实例的时候一定要多加小心!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "我们至少有三种方式来解决这个Bug。我们可以改变  "
@@ -320,41 +311,41 @@
 "<literal>@Dependent</literal> 或者 <literal>@RequestScoped</literal>。"
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr "不过更加常用的方法是使用特殊的 <literal>@New</literal> 绑定注释。"
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "在生产者方法中使用 <literal>@New</literal> "
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "考虑到下面的生产者方法:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -372,7 +363,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -387,6 +378,60 @@
 "实例将被绑定到会话上下文。这个依赖对象不会被提前销毁,而是在会话结束时跟随 "
 "<literal>Preferences</literal> 一起被销毁。"
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "生产者方法"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/zh-CN/resources.po
===================================================================
--- doc/trunk/reference/zh-CN/resources.po	                        (rev 0)
+++ doc/trunk/reference/zh-CN/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language zh-CN translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/zh-CN/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-CN/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-27 13:50+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -16,43 +16,65 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, fuzzy, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr "将Web Bean参考实现整合到其他环境中"
 
 #. Tag: para
 #: ri-spi.xml:6
+#, no-c-format
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:12
 #, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "资源加载"
+
+#. Tag: para
+#: ri-spi.xml:13
+#, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
-"目前,Web Bean的参考实现只能运行在JBoss AS5中;将参考实现整合到其他EE环境中"
-"(例如像Glassfish的其他的应用服务器)以及一个Servlet容器(像Tomcat)中或者一"
-"个内嵌的EJB3.1实现中相当容易。在附录中我们将简要的讨论所需的步骤。"
 
+#. Tag: para
+#: ri-spi.xml:21
+#, no-c-format
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:27
 #, fuzzy, no-c-format
-msgid "The Web Beans SPI"
+msgid "The Weld SPI"
 msgstr "Web Bean的参考实现SPI"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:29
 #, fuzzy, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
 msgstr ""
 "Web Bean的SPI位于<literal>webbeans-ri-spi</literal>模块中,打包为"
 "<literal>webbeans-ri-spi.jar</literal>。一些SPI是可选的,如果你需要覆盖默认行"
 "为,你需要其他的SPI。"
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:35
 #, no-c-format
 msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
@@ -62,422 +84,354 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean的发现"
+msgid "Deployment structure"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:58
+#, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
-"<![CDATA[public interface WebBeanDiscovery {\n"
-"   /**\n"
-"    * Gets list of all classes in classpath archives with web-beans.xml "
-"files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all web-beans.xml files in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the web-beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();\n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, fuzzy, no-c-format
+#: ri-spi.xml:67
+#, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
-"Web Bean类的发现和 <literal>web-bean.xml</literal> 配置文件的都是自解释性的"
-"(算法在JSR-299规范中已经描述了,这里就不再重复)"
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
-#, fuzzy, no-c-format
+#: ri-spi.xml:100
+#, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
-"Web Bean参考实现也将EJB3 Bean的发现委托给容器,以便它不用再扫描EJB3注释和解"
-"析 <literal>ejb-jar.xml</literal> 文件。对于应用中的每个EJB都应发现一个"
-"EJBDescriptor:"
 
-#. Tag: programlisting
-#: ri-spi.xml:62
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T> {\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();\n"
-"   \n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:124
+#, no-c-format
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:132
+#, no-c-format
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:155
+#, no-c-format
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
 " <literal>EjbDescriptor</literal> 具有相当的自解释性,应该返回EJB规范中定义的"
 "相关元数据。除了这两个接口,还有一个表示本地业务接口的  "
 "<literal>BusinessInterfaceDescriptor</literal> (封装了接口类和用于查询EJB实"
 "例的jndi名字)"
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
-#, fuzzy, no-c-format
+#: ri-spi.xml:171
+#, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
-"<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
-"<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 <literal>org."
-"jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工作。每次解析请求"
-"到来时,Web Beans都将 <literal>javax.inject.manager.InjectionPoint</literal> "
-"以及 <literal>NamingContext</literal> 传递进来以便解析。"
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
+#. Tag: para
+#: ri-spi.xml:182
 #, no-c-format
-msgid "JPA services"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:189
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:195
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:201
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: title
+#: ri-spi.xml:210
 #, no-c-format
+msgid "EJB services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:212
+#, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:234
 #, no-c-format
-msgid "Transaction Services"
-msgstr "事务服务"
+msgid "JPA services"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
-#, fuzzy, no-c-format
+#: ri-spi.xml:236
+#, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
-"Web Bean RI必须将JTA活动委托给容器。SPI提供者提供一些钩子(hooks)结合"
-"<literal>TransactionServices</literal> 接口来轻松完成这个任务。"
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
 msgstr ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
 
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr "事务服务"
+
 #. Tag: para
-#: ri-spi.xml:139
-#, no-c-format
+#: ri-spi.xml:253
+#, fuzzy, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
 msgstr ""
-"枚举 <literal>Status</literal> 对实现者来说是一个很方便的工具,可以追踪在事务"
-"成功或者失败或者无论事务成功还是失败的情况下,是否应该将一个同步通知给观察"
-"者。"
+"Web Bean RI必须将JTA活动委托给容器。SPI提供者提供一些钩子(hooks)结合"
+"<literal>TransactionServices</literal> 接口来轻松完成这个任务。"
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:258
 #, no-c-format
 msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
@@ -490,7 +444,7 @@
 "到EJB使用的JTA事务管理器。"
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -503,83 +457,156 @@
 "JTA事务管理器。"
 
 #. Tag: title
-#: ri-spi.xml:165
+#: ri-spi.xml:272
+#, fuzzy, no-c-format
+msgid "Resource Services"
+msgstr "资源加载"
+
+#. Tag: para
+#: ri-spi.xml:274
+#, fuzzy, no-c-format
+msgid ""
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
+msgstr ""
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
+"<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 <literal>org."
+"jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工作。每次解析请求"
+"到来时,Web Beans都将 <literal>javax.inject.manager.InjectionPoint</literal> "
+"以及 <literal>NamingContext</literal> 传递进来以便解析。"
+
+#. Tag: title
+#: ri-spi.xml:283
+#, fuzzy, no-c-format
+msgid "Injection Services"
+msgstr "事务服务"
+
+#. Tag: para
+#: ri-spi.xml:285
 #, no-c-format
-msgid "JMS services"
+msgid ""
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:291
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:298
+#, no-c-format
+msgid ""
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:307
 #, fuzzy, no-c-format
-msgid "Resource Services"
+msgid "Security Services"
 msgstr "资源加载"
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:309
+#, no-c-format
+msgid ""
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:317
 #, fuzzy, no-c-format
+msgid "Bean Validation Services"
+msgstr "事务服务"
+
+#. Tag: para
+#: ri-spi.xml:319
+#, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
-"<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
-"<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 <literal>org."
-"jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工作。每次解析请求"
-"到来时,Web Beans都将 <literal>javax.inject.manager.InjectionPoint</literal> "
-"以及 <literal>NamingContext</literal> 传递进来以便解析。"
 
 #. Tag: title
-#: ri-spi.xml:194
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Web Services"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
-#, fuzzy, no-c-format
+#: ri-spi.xml:329
+#, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
-"<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
-"<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 <literal>org."
-"jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工作。每次解析请求"
-"到来时,Web Beans都将 <literal>javax.inject.manager.InjectionPoint</literal> "
-"以及 <literal>NamingContext</literal> 传递进来以便解析。"
 
+#. Tag: para
+#: ri-spi.xml:337
+#, no-c-format
+msgid ""
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:343
+#, no-c-format
+msgid ""
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
+msgstr ""
+
+#. Tag: literal
+#: ri-spi.xml:350
+#, no-c-format
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:352
+#, no-c-format
+msgid ""
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:207
+#: ri-spi.xml:362
 #, no-c-format
 msgid "The bean store"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:364
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 "Web Bean期望应用服务器或者其他容器能够提供每个应用上下文的存储。<literal>org."
 "jboss.webbeans.context.api.BeanStore</literal> 应该被实现以便提供一个应用范围"
@@ -587,19 +614,19 @@
 "ConcurrentHashMapBeanStore</literal> 非常有用。"
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:372
 #, no-c-format
 msgid "The application context"
 msgstr "应用上下文"
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:374
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 "Web Bean期望应用服务器或者其他容器能够提供每个应用上下文的存储。<literal>org."
 "jboss.webbeans.context.api.BeanStore</literal> 应该被实现以便提供一个应用范围"
@@ -607,20 +634,20 @@
 "ConcurrentHashMapBeanStore</literal> 非常有用。"
 
 #. Tag: title
-#: ri-spi.xml:231
-#, no-c-format
-msgid "Bootstrap and shutdown"
+#: ri-spi.xml:383
+#, fuzzy, no-c-format
+msgid "Initialization and shutdown"
 msgstr "自举和停止"
 
 #. Tag: para
-#: ri-spi.xml:232
-#, no-c-format
+#: ri-spi.xml:384
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 " <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> 接口定义了Web "
 "Bean的自举机制。为了启动Web Beans,你必须获得一个<literal>org.jboss.webbeans."
@@ -628,51 +655,29 @@
 "literal>) ,告诉它使用的SPI,然后请求容器启动。 "
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:391
 #, fuzzy, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 "自举可以划分为阶段,自举初始化和自举。初始化将创建一个管理器,添加标准(规范"
 "定义的)的上下文。自举将发现EJB,类和XML;添加注释定义的Bean;添加XML定义的"
 "Bean;和验证所有的Bean。"
 
 #. Tag: para
-#: ri-spi.xml:249
-#, no-c-format
-msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:260
-#, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
-msgstr ""
-
-#. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:398
 #, fuzzy, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
 msgstr ""
 "为了初始化自举,你需要调用 <literal>Bootstrap.initialize()</literal> 。在调"
 "用 <literal>initialize()</literal> 之前你必须调用 <literal>Bootstrap."
@@ -681,292 +686,272 @@
 "literal>,你必须在调用<literal>initialize()</literal>之前设置它们。"
 
 #. Tag: para
-#: ri-spi.xml:276
-#, no-c-format
+#: ri-spi.xml:405
+#, fuzzy, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
 "调用<literal>initialize()</literal>后,我们能够通过<literal>Bootstrap."
 "getManager()</literal>来获得<literal>管理器</literal>。"
 
 #. Tag: para
-#: ri-spi.xml:282
+#: ri-spi.xml:410
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid ""
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
-#, fuzzy, no-c-format
+#: ri-spi.xml:414
+#, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
-"要关闭容器,你需要调用 <literal>Bootstrap.shutdown()</literal>。这将让容器执"
-"行一些必要的清洁工作。"
 
-#. Tag: title
-#: ri-spi.xml:296
-#, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
-
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
-#, no-c-format
+#: ri-spi.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
+"要关闭容器,你需要调用 <literal>Bootstrap.shutdown()</literal>。这将让容器执"
+"行一些必要的清洁工作。"
 
 #. Tag: title
-#: ri-spi.xml:315
+#: ri-spi.xml:431
 #, no-c-format
 msgid "Resource loading"
 msgstr "资源加载"
 
 #. Tag: para
-#: ri-spi.xml:317
+#: ri-spi.xml:433
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
+"Weld needs to load classes and resources from the classpath at various "
 "times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
 msgstr ""
 "Web Beans参考实现需要在不同时间从类路径上加载类和资源。默认情况下,它们使用加"
 "载参考实现的类加载器加载,但是这在一些环境中可能是不适合的。如果出现这种情况"
 "的话,你可以实现<literal>org.jboss.webbeans.spi.ResourceLoader</literal> :"
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: title
+#: ri-spi.xml:445
 #, no-c-format
+msgid "The contract with the container"
+msgstr "容器的合约"
+
+#. Tag: para
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
-msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
+msgstr "为了接口实现之外的正确的功能,Web Beans参考实现对容器有大量的要求。"
 
-#. Tag: title
-#: ri-spi.xml:331
+#. Tag: term
+#: ri-spi.xml:454
 #, no-c-format
-msgid "Servlet injection"
-msgstr "Servlet 注入"
+msgid "Classloader isolation"
+msgstr "类加载器隔离"
 
 #. Tag: para
-#: ri-spi.xml:333
-#, no-c-format
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
-"Java EE/Servlet并不没有提供任何钩子来支持向Servlet注入,所以Web Bean提供了一"
-"个接口来允许容器为一个Servlet请求JSR-299的注入。"
+"如果你将一个Web Bean参考实现整合到一个支持多应用部署的环境中,你需要以用户配"
+"置或者自动化方式为每个Web Bean应用激活类加载器隔离。"
 
+#. Tag: term
+#: ri-spi.xml:466
+#, no-c-format
+msgid "Servlet"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:339
-#, no-c-format
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
-"为了和JSR-299兼容,容器应该在构造器返回之后,在Servlet被放到服务中之前,为每"
-"个新实例化的Servlet请求Servlet注入。"
+"如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
+"需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+"WebBeansListener</literal> 注册为一个Servlet监听器。"
 
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:475
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
 msgstr ""
-"执行Servlet注入时需要调用 <literal>WebBeansManager.injectServlet()</"
-"literal>。你可以通过 <literal>Bootstrap.getManager()</literal>来获得管理器。"
 
-#. Tag: title
-#: ri-spi.xml:356
+#. Tag: term
+#: ri-spi.xml:482
 #, no-c-format
-msgid "The contract with the container"
-msgstr "容器的合约"
+msgid "<term>JSF</term>"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
+#: ri-spi.xml:487
+#, fuzzy, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
-msgstr "为了接口实现之外的正确的功能,Web Beans参考实现对容器有大量的要求。"
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
+msgstr ""
+"如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
+"需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+"WebBeansListener</literal> 注册为一个Servlet监听器。"
 
-#. Tag: term
-#: ri-spi.xml:366
-#, no-c-format
-msgid "Classloader isolation"
-msgstr "类加载器隔离"
+#. Tag: para
+#: ri-spi.xml:492
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
+"需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+"WebBeansListener</literal> 注册为一个Servlet监听器。"
 
 #. Tag: para
-#: ri-spi.xml:370
+#: ri-spi.xml:497
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
-"如果你将一个Web Bean参考实现整合到一个支持多应用部署的环境中,你需要以用户配"
-"置或者自动化方式为每个Web Bean应用激活类加载器隔离。"
 
-#. Tag: term
-#: ri-spi.xml:379
+#. Tag: para
+#: ri-spi.xml:504
 #, no-c-format
-msgid "Servlet"
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
+#: ri-spi.xml:511 ri-spi.xml:557
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
 "Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
 msgstr ""
-"如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
-"需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
-"WebBeansListener</literal> 注册为一个Servlet监听器。"
+"如果你将Web Bean整合到一个JSF环境中,对每个使用JSF的 Web Bean应用,你需要以用"
+"户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+"ConversationPropagationFilter</literal> 注册为一个Servlet监听器。这个过滤器可"
+"以安全地向所有Servlet部署注册。"
 
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:533
 #, no-c-format
-msgid "<term>JSF</term>"
+msgid "<term>JSP</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:538
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 "如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
 "需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
 "WebBeansListener</literal> 注册为一个Servlet监听器。"
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:543
 #, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
 msgstr ""
-"如果你将Web Bean整合到一个JSF环境中,对每个使用JSF的 Web Bean应用,你需要以用"
-"户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
-"ConversationPropagationFilter</literal> 注册为一个Servlet监听器。这个过滤器可"
-"以安全地向所有Servlet部署注册。"
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:550
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:567
 #, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "会话Bean拦截器"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 "如果你将Web Beans整合到EJB环境中,对每个使用企业级Bean的Web Bean应用,你需要"
 "以用户配置或者自动化形式将 <literal>org.jboss.webbeans.ejb."
 "SessionBeanInterceptor</literal> 注册为应用中所有EJB的EJB拦截器。"
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -976,41 +961,618 @@
 "最内部的拦截器。"
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, fuzzy, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "<literal>webbeans-ri.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
-#, fuzzy, no-c-format
+#: ri-spi.xml:590
+#, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
-"如果你将Web Bean整合到一个支持应用部署的环境中,你必须将<literal>webbeans-ri."
-"jar</literal> 插入到应用隔离的类加载器中。它不能被一个共享的类加载器加载。"
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#, fuzzy
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "目前,Web Bean的参考实现只能运行在JBoss AS5中;将参考实现整合到其他EE环境"
+#~ "中(例如像Glassfish的其他的应用服务器)以及一个Servlet容器(像Tomcat)中或"
+#~ "者一个内嵌的EJB3.1实现中相当容易。在附录中我们将简要的讨论所需的步骤。"
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean的发现"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface WebBeanDiscovery {\n"
+#~ "   /**\n"
+#~ "    * Gets list of all classes in classpath archives with web-beans.xml "
+#~ "files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all web-beans.xml files in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the web-beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "Web Bean类的发现和 <literal>web-bean.xml</literal> 配置文件的都是自解释性"
+#~ "的(算法在JSR-299规范中已经描述了,这里就不再重复)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Web Bean参考实现也将EJB3 Bean的发现委托给容器,以便它不用再扫描EJB3注释和"
+#~ "解析 <literal>ejb-jar.xml</literal> 文件。对于应用中的每个EJB都应发现一个"
+#~ "EJBDescriptor:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T> {\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();\n"
+#~ "   \n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The resolution of <literal>@EJB</literal> (for injection into simple "
+#~ "beans), the resolution of local EJBs (for backing session beans) and "
+#~ "remote EJBs (for injection as a Java EE resource) is delegated to the "
+#~ "container. You must provide an implementation of <literal>org.jboss."
+#~ "webbeans.ejb.spi.EjbServices</literal> which provides these operations. "
+#~ "For resolving the <literal>@EJB</literal> injection point, Web Beans will "
+#~ "provide the <literal>InjectionPoint</literal>; for resolving local EJBs, "
+#~ "the <literal>EjbDescriptor</literal> will be provided, and for remote "
+#~ "EJBs the <literal>jndiName</literal>, <literal>mappedName</literal>, or "
+#~ "<literal>ejbLink</literal> will be provided."
+#~ msgstr ""
+#~ "<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
+#~ "<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 "
+#~ "<literal>org.jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工"
+#~ "作。每次解析请求到来时,Web Beans都将 <literal>javax.inject.manager."
+#~ "InjectionPoint</literal> 以及 <literal>NamingContext</literal> 传递进来以"
+#~ "便解析。"
+
+#~ msgid ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface TransactionServices\n"
+#~ "{\n"
+#~ "   /**\n"
+#~ "    * Possible status conditions for a transaction. This can be used by "
+#~ "SPI\n"
+#~ "    * providers to keep track for which status an observer is used.\n"
+#~ "    */\n"
+#~ "   public static enum Status\n"
+#~ "   {\n"
+#~ "      ALL, SUCCESS, FAILURE\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Registers a synchronization object with the currently executing\n"
+#~ "    * transaction.\n"
+#~ "    * \n"
+#~ "    * @see javax.transaction.Synchronization\n"
+#~ "    * @param synchronizedObserver\n"
+#~ "    */\n"
+#~ "   public void registerSynchronization(Synchronization "
+#~ "synchronizedObserver);\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Queries the status of the current execution to see if a transaction "
+#~ "is\n"
+#~ "    * currently active.\n"
+#~ "    * \n"
+#~ "    * @return true if a transaction is active\n"
+#~ "    */\n"
+#~ "   public boolean isTransactionActive();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "The enumeration <literal>Status</literal> is a convenience for "
+#~ "implementors to be able to keep track of whether a synchronization is "
+#~ "supposed to notify an observer only when the transaction is successful, "
+#~ "or after a failure, or regardless of the status of the transaction."
+#~ msgstr ""
+#~ "枚举 <literal>Status</literal> 对实现者来说是一个很方便的工具,可以追踪在"
+#~ "事务成功或者失败或者无论事务成功还是失败的情况下,是否应该将一个同步通知给"
+#~ "观察者。"
+
+#, fuzzy
+#~ msgid ""
+#~ "The resolution of <literal>@Resource</literal> (for injection into simple "
+#~ "beans) and the resolution of resources (for injection as a Java EE "
+#~ "resource) is delegated to the container. You must provide an "
+#~ "implementation of <literal>ResourceServices</literal> which provides "
+#~ "these operations. For resolving the <literal>@Resource</literal> "
+#~ "injection, Web Beans will provide the <literal>InjectionPoint</literal>; "
+#~ "and for Java EE resources, the <literal>jndiName</literal> or "
+#~ "<literal>mappedName</literal> will be provided."
+#~ msgstr ""
+#~ "<literal>@EJB</literal>, <literal>@PersistenceContext</literal> 和 "
+#~ "<literal>@Resource</literal> 的解析被委托给容器。你必须提供一个 "
+#~ "<literal>org.jboss.webbeans.ejb.spi.EjbResolver</literal> 实现来完成这些工"
+#~ "作。每次解析请求到来时,Web Beans都将 <literal>javax.inject.manager."
+#~ "InjectionPoint</literal> 以及 <literal>NamingContext</literal> 传递进来以"
+#~ "便解析。"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#~ msgid "Servlet injection"
+#~ msgstr "Servlet 注入"
+
+#~ msgid ""
+#~ "Java EE / Servlet does not provide any hooks which can be used to provide "
+#~ "injection into Servlets, so Web Beans provides an API to allow the "
+#~ "container to request JSR-299 injection for a Servlet."
+#~ msgstr ""
+#~ "Java EE/Servlet并不没有提供任何钩子来支持向Servlet注入,所以Web Bean提供了"
+#~ "一个接口来允许容器为一个Servlet请求JSR-299的注入。"
+
+#~ msgid ""
+#~ "To be compliant with JSR-299, the container should request servlet "
+#~ "injection for each newly instantiated servlet after the constructor "
+#~ "returns and before the servlet is placed into service."
+#~ msgstr ""
+#~ "为了和JSR-299兼容,容器应该在构造器返回之后,在Servlet被放到服务中之前,为"
+#~ "每个新实例化的Servlet请求Servlet注入。"
+
+#~ msgid ""
+#~ "To perform injection on a servlet call <literal>WebBeansManager."
+#~ "injectServlet()</literal>. The manager can be obtained from "
+#~ "<literal>Bootstrap.getManager()</literal>."
+#~ msgstr ""
+#~ "执行Servlet注入时需要调用 <literal>WebBeansManager.injectServlet()</"
+#~ "literal>。你可以通过 <literal>Bootstrap.getManager()</literal>来获得管理"
+#~ "器。"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应"
+#~ "用,你需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+#~ "WebBeansListener</literal> 注册为一个Servlet监听器。"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "如果你将Web Bean整合到一个支持应用部署的环境中,你必须将<literal>webbeans-"
+#~ "ri.jar</literal> 插入到应用隔离的类加载器中。它不能被一个共享的类加载器加"
+#~ "载。"
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "

Modified: doc/trunk/reference/zh-CN/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-CN/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-30 09:18+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,50 +14,49 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "范围和上下文"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "目前为止,我们已经看到了几个 <emphasis>范围类型注释</emphasis>的例子。Web "
 "Bean的范围决定了Web Bean实例的生命周期。范围还决定了哪个客户端引用了哪个Web "
 "Bean实例。根据Web Beans规范,一个范围决定:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "该范围的Web Bean的一个实例何时被创建"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr "该范围的Web Bean实例何时被销毁"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr "注入的引用指向该范围的Web Bean的哪个实例"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -68,29 +67,37 @@
 "同一个<literal>CurrentUser</literal>实例。这个实例在会话第一次需要"
 "<literal>CurrentUser</literal>时被自动创建,在会话结束时被自动销毁。"
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "范围类型"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Bean有一个特性是<emphasis>可扩展的上下文模型</emphasis>。我们可以创建一个"
 "新的范围类型注释来定一个新的范围:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -99,28 +106,30 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "当然,这是这项工作最简单的部分。为了让这个范围类型可以使用,我们还需要定义一"
 "个<literal>Context(上下文)</literal>对象来实现这个范围!实现上下文通常是一"
 "个非常具备挑战的技术任务,这常常只能由开发编程框架的专家完成。"
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr "我们可以在Web Bean实现类中应用范围类型注释来指定Web Bean的范围:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -130,55 +139,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "通常,你将会使用一个Web Bean内置的范围。"
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "内置范围"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Beans定义了四个内置范围:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "对于使用Web Beans的Web应用:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -186,54 +195,62 @@
 msgstr "任何Servlet请求可以访问激活的请求,会话和应用范围,并且"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "任何JSF请求可以访问一个激活的对话范围"
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "在下列情况下请求和应用范围是激活的:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "在EJB远程方法调用期间,"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "在EJB超时期间,"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "在消息发送给消息驱动Bean的期间,"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "在Web Service调用期间。"
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "如果应用试图调用一个Web Bean,而对应的范围上下文没有处于激活状态时,Web Bean"
 "管理器在运行时将抛出一个<literal>ContextNotActiveException</literal>异常。"
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -244,55 +261,56 @@
 "时间来讨论他们。不过有一个范围是新的。"
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "对话范围"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Web Beans的对话(Conversation)范围有点类似与传统的会话范围(Session),传统的会"
 "话范围常常用来存储和系统用户相关的状态,并且能够跨越多个请求。然而,对话范围"
 "还有很多地方和会话范围不一样:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "它通过应用显式地声明,并且"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
-msgstr "在一个JSF应用中持有与一个特定的Web浏览标签页关联的状态。"
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
+msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "从用户角度出发,一个对话代表一个任务,或者一个工作单元。用户当前工作相关的状"
 "态由对话上下文维护。如果用户同时处理多个事情,就会有多个对话与之对应。"
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -302,30 +320,29 @@
 "<emphasis>长时对话</emphasis>。"
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "对话划分"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Beans提供了一个内置的Web Bean来在控制一个JSF应用中对话的生命周期。这个"
 "Web Bean可以通过注入来获得:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -339,47 +356,45 @@
 "<literal>end()</literal>方法。"
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr "在下面的例子中,一个对话范围的Web Bean控制和它关联的对话:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -413,43 +428,43 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "Web Bean可以通过<literal>Conversation</literal>接口控制自己的生命周期。但是其"
 "他一些Web Bean的生命周期完全依赖与其他对象。"
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "对话的传播"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "对话上下文在任何JSF faces请求中自动传播(JSF表单提交)。在非faces请求中,对话"
 "上下文将不会自动传播,例如通过一个链接来导航。"
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "我们可以强迫在非faces请求中传播对话,方法是在请求参数中包含一个对话的唯一标识"
 "符即可。Web Beans规范为此保留了一个请求参数关键字<literal>cid</literal>。对话"
@@ -457,13 +472,13 @@
 "的名字<literal>conversation</literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "因此,下面的链接能够传播对话:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -473,35 +488,50 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "Web Bean管理器也需要能够跨越任何重定向来传播对话,甚至这个对话没有被升级为长"
 "时对话。这样我们就能很容易实现常用的POST-then-redirect模式,而不需要构建一个"
 "脆弱的 \"闪存\"对象。在这个例子中,Web Bean管理器自动向重定向URL中添加一个请"
 "求参数。"
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "对话超时"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Web Bean管理器可以在任何时候销毁一个对话及其上下文中维护的所有状态,这样的设"
 "计可以降低资源的消耗。一个Web Bean管理器的实现将根据超时&#151;设置自动的完成"
@@ -509,134 +539,113 @@
 "活时间。"
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "<literal>Conversation</literal>对象提供一个方法来设置超时。这个方法可以让Web "
 "Bean管理器忽略原来的配置。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "依赖的伪范围"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "除了内置的四个范围,Web Beans还提供了一个<emphasis>依赖的伪范围</emphasis>。"
 "这个范围是没有显式设置范围类型的Web Bean的默认范围。"
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr "例如,这个Web Bean有一个范围类型<literal>@Dependent</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"当一个注入点被解析为一个依赖的Web Bean之后,每当第一个Web Bean被初始化时,都"
-"会创建一个依赖的Web Bean实例。不同的Web Beans或者不同的注入点的依赖的Web "
-"Beans的实例都不会被共享。它们是其它Web Bean实例的<emphasis>依赖的对象</"
-"emphasis>。"
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
-msgstr "依赖的Web Bean实例在它们所依赖对象实例销毁的时候被销毁。"
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
 "Web Bean能够让我们轻松获得一个Java类或者EJB Bean的依赖实例,甚至这个类或者"
 "EJB Bean已经被声明为一个其他范围的Web Bean也没问题。"
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "<literal>@New</literal>注释"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"内置的<literal>@New</literal>绑定注释允许在注入点<emphasis>隐式</emphasis>地"
-"定义一个依赖的Web Bean。假设我们需要声明下面的注入域:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"这个Web Bean被隐式地定义为范围为<literal>@Dependent</literal>,绑定类型为"
-"<literal>@New</literal>,API类型为<literal>Calculator</literal>,实现了"
-"<literal>Calculator</literal>类,部署类型为<literal>@Standard</literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "甚至在<literal>Calculator</literal><emphasis>已经</emphasis>通过不同的范围类"
 "型声明过的情况下也是如此。例如:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -646,7 +655,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -655,14 +664,12 @@
 "所以下面注入的属性,每个都获得一个不同的 <literal>Calculator</literal>实例:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -673,7 +680,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -687,9 +694,50 @@
 "literal>类上。"
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
 "the next chapter."
 msgstr "这个特性对于生产者方法来说特别有用,我们将在下一章看到。"
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr "在一个JSF应用中持有与一个特定的Web浏览标签页关联的状态。"
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "当一个注入点被解析为一个依赖的Web Bean之后,每当第一个Web Bean被初始化时,"
+#~ "都会创建一个依赖的Web Bean实例。不同的Web Beans或者不同的注入点的依赖的"
+#~ "Web Beans的实例都不会被共享。它们是其它Web Bean实例的<emphasis>依赖的对象"
+#~ "</emphasis>。"
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr "依赖的Web Bean实例在它们所依赖对象实例销毁的时候被销毁。"
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "内置的<literal>@New</literal>绑定注释允许在注入点<emphasis>隐式</emphasis>"
+#~ "地定义一个依赖的Web Bean。假设我们需要声明下面的注入域:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "这个Web Bean被隐式地定义为范围为<literal>@Dependent</literal>,绑定类型为"
+#~ "<literal>@New</literal>,API类型为<literal>Calculator</literal>,实现了"
+#~ "<literal>Calculator</literal>类,部署类型为<literal>@Standard</literal>。"

Modified: doc/trunk/reference/zh-CN/specialization.po
===================================================================
--- doc/trunk/reference/zh-CN/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 23:18+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-13 16:32+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,27 +14,129 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "特化"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
-msgid "We've already seen how the Web Beans dependency injection model lets us <emphasis>override</emphasis> the implementation of an API at deployment time. For example, the following enterprise Web Bean provides an implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "我们已经看到Web Bean的依赖注入模型如何让我们在部署时期 <emphasis>重载</emphasis> 一个API实现。例如,下面的企业级Web Bean在生产环境下使提供一个<literal>PaymentProcessor</literal>接口的实现:"
+msgid ""
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"我们已经看到Web Bean的依赖注入模型如何让我们在部署时期 <emphasis>重载</"
+"emphasis> 一个API实现。例如,下面的企业级Web Bean在生产环境下使提供一个"
+"<literal>PaymentProcessor</literal>接口的实现:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"但在我们的阶段开发环境中,我们可以使用一个不同的Web Bean来重载这个"
+"<literal>PaymentProcessor</literal> 实现:"
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -42,126 +144,206 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid "But in our staging environment, we override that implementation of <literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "但在我们的阶段开发环境中,我们可以使用一个不同的Web Bean来重载这个<literal>PaymentProcessor</literal> 实现:"
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
-msgid "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</literal> is to completely replace <literal>AsyncPaymentProcessor</literal> in a particular deployment of the system. In that deployment, the deployment type <literal>@Staging</literal> would have a higher priority than the default deployment type <literal>@Production</literal>, and therefore clients with the following injection point:"
-msgstr "我们试图做的是在特定的系统部署环境中使用<literal>StagingCreditCardPaymentProcessor</literal>来完全替代<literal>AsyncPaymentProcessor</literal>。在这个部署中,部署类型为<literal>@Staging</literal>的将有比默认部署类型<literal>@Production</literal>更高的优先级,因此下面注入点的客户:"
+msgid ""
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
-msgid "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "将会收到一个 <literal>StagingCreditCardPaymentProcessor</literal> 的实例。"
+msgid ""
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "不幸的是,我们很容易掉入几个陷阱:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
-msgid "the higher-priority Web Bean may not implement all the API types of the Web Bean that it attempts to override,"
-msgstr "更高优先级的Web Bean可能没有实现其要重载的所有的API类型,"
+msgid ""
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
-msgid "the higher-priority Web Bean may not declare all the binding types of the Web Bean that it attempts to override,"
-msgstr "更高优先级的Web Bean可能没有声明其要重载的所有绑定类型,"
+msgid ""
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:40
+#. Tag: title
+#: specialization.xml:105
 #, no-c-format
-msgid "the higher-priority Web Bean might not have the same name as the Web Bean that it attempts to override, or"
-msgstr "更高优先级的Web Bean可能没有和其要重载的Web Bean拥有相同的名字,或者"
+msgid "A minor problem with alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:44
+#: specialization.xml:107
 #, no-c-format
-msgid "the Web Bean that it attempts to override might declare a producer method, disposal method or observer method."
-msgstr "其要重载的Web Bean有可能声明了一个生产者方法,清除方法或者观察者方法。"
+msgid ""
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:49
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
-msgid "In each of these cases, the Web Bean that we tried to override could still be called at runtime. Therefore, overriding is somewhat prone to developer error."
-msgstr "在上面的任何一种情况,我们试图重载的Web Bean仍旧可以在运行时被调用。因此重载对于开发者来说是很容易出错的。"
+msgid ""
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
+#: specialization.xml:115
 #, no-c-format
-msgid "Web Beans provides a special feature, called <emphasis>specialization</emphasis>, that helps the developer avoid these traps. Specialization looks a little esoteric at first, but it's easy to use in practice, and you'll really appreciate the extra security it provides."
-msgstr "Web Bean提供了一个特殊的特性,称之为<emphasis>特化</emphasis>,能够帮助开发者避免这些陷阱。特化初看起来有些神秘,但是在实际应用中非常容易使用,你很快就会感激它提供的特殊的安全性。"
+msgid ""
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
+msgstr ""
+"Web Bean提供了一个特殊的特性,称之为<emphasis>特化</emphasis>,能够帮助开发者"
+"避免这些陷阱。特化初看起来有些神秘,但是在实际应用中非常容易使用,你很快就会"
+"感激它提供的特殊的安全性。"
+
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "使用特化"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
-msgid "Specialization is a feature that is specific to simple and enterprise Web Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "特化是为简单和企业级Web Bean提供的特性。要使用特化,更高优先级的Web Bean必须:"
+msgid ""
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "是其重载的Web Bean的直接子类,并且"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
-msgid "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, and"
-msgstr "如果其重载的是简单的Web Bean, 它也要是一个简单的Web Bean;如果其重载的是企业级的Web Bean, 它也要是一个企业级的Web Bean,并且"
+msgid ""
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "需要使用 <literal>@Specializes</literal> 注释。"
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr "我们称更高优先级的Web Bean<emphasis>特化</emphasis>了它的超类。"
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -170,80 +352,192 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
-msgid "We say that the higher-priority Web Bean <emphasis>specializes</emphasis> its superclass."
-msgstr "我们称更高优先级的Web Bean<emphasis>特化</emphasis>了它的超类。"
+msgid ""
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "特化的优点"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "当使用特化时:"
+msgid ""
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:91
+#: specialization.xml:165
 #, no-c-format
-msgid "the binding types of the superclass are automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "超类的绑定类型自动被使用<literal>@Specializes</literal>注释的Web Bean继承,并且"
+msgid ""
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:172
 #, no-c-format
-msgid "the Web Bean name of the superclass is automatically inherited by the Web Bean annotated <literal>@Specializes</literal>, and"
-msgstr "超类的Web Bean名称自动被使用<literal>@Specializes</literal>注释的Web Bean继承,并且"
+msgid ""
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:99
-#, no-c-format
-msgid "producer methods, disposal methods and observer methods declared by the superclass are called upon an instance of the Web Bean annotated <literal>@Specializes</literal>."
-msgstr "超类声明的生产者方法,清除方法和观察者方法将在使用<literal>@Specializes</literal>注释的Web Bean实例上调用。"
+#~ msgid "Specialization"
+#~ msgstr "特化"
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid "In our example, the binding type <literal>@CreditCard</literal> of <literal>CreditCardPaymentProcessor</literal> is inherited by <literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "在我们这个例子中,<literal>CreditCardPaymentProcessor</literal> 的绑定类型 <literal>@CreditCard</literal>  被<literal>StagingCreditCardPaymentProcessor</literal>继承。"
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "我们试图做的是在特定的系统部署环境中使用"
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>来完全替代"
+#~ "<literal>AsyncPaymentProcessor</literal>。在这个部署中,部署类型为"
+#~ "<literal>@Staging</literal>的将有比默认部署类型<literal>@Production</"
+#~ "literal>更高的优先级,因此下面注入点的客户:"
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "进一步,Web Bean管理器将验证:"
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid "all API types of the superclass are API types of the Web Bean annotated <literal>@Specializes</literal> (all local interfaces of the superclass enterprise bean are also local interfaces of the subclass),"
-msgstr "超类的所有API类型是使用 <literal>@Specializes</literal> 注释的Web Bean的API类型(所有企业级Bean超类的本地接口是子类的本地接口)"
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "将会收到一个 <literal>StagingCreditCardPaymentProcessor</literal> 的实例。"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid "the deployment type of the Web Bean annotated <literal>@Specializes</literal> has a higher precedence than the deployment type of the superclass, and"
-msgstr "使用 <literal>@Specializes</literal> 注释的Web Bean的部署类型比超类的部署类型拥有更高的优先级,并且"
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "不幸的是,我们很容易掉入几个陷阱:"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "没有其他特化该超类的Web Bean被激活。"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr "更高优先级的Web Bean可能没有实现其要重载的所有的API类型,"
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid "If any of these conditions are violated, the Web Bean manager throws an exception at initialization time."
-msgstr "如果任何一条有冲突的话,Web Bean管理器将在初始化时抛出一个异常。"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr "更高优先级的Web Bean可能没有声明其要重载的所有绑定类型,"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid "Therefore, we can be certain that the superclass will <emphasis>never</emphasis> be called in any deployment of the system where the Web Bean annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr "因此,我们可以确定当使用<literal>@Specializes</literal>注释的Web Bean被部署和激活时,超类在系统的任何部署中<emphasis>都不会</emphasis>被调用。"
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "更高优先级的Web Bean可能没有和其要重载的Web Bean拥有相同的名字,或者"
 
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "其要重载的Web Bean有可能声明了一个生产者方法,清除方法或者观察者方法。"
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "在上面的任何一种情况,我们试图重载的Web Bean仍旧可以在运行时被调用。因此重"
+#~ "载对于开发者来说是很容易出错的。"
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "特化是为简单和企业级Web Bean提供的特性。要使用特化,更高优先级的Web Bean必"
+#~ "须:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "是其重载的Web Bean的直接子类,并且"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "如果其重载的是简单的Web Bean, 它也要是一个简单的Web Bean;如果其重载的是企"
+#~ "业级的Web Bean, 它也要是一个企业级的Web Bean,并且"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "需要使用 <literal>@Specializes</literal> 注释。"
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "特化的优点"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "当使用特化时:"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "超类的绑定类型自动被使用<literal>@Specializes</literal>注释的Web Bean继"
+#~ "承,并且"
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "超类的Web Bean名称自动被使用<literal>@Specializes</literal>注释的Web Bean"
+#~ "继承,并且"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "超类声明的生产者方法,清除方法和观察者方法将在使用<literal>@Specializes</"
+#~ "literal>注释的Web Bean实例上调用。"
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "在我们这个例子中,<literal>CreditCardPaymentProcessor</literal> 的绑定类"
+#~ "型 <literal>@CreditCard</literal>  被"
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>继承。"
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "进一步,Web Bean管理器将验证:"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "超类的所有API类型是使用 <literal>@Specializes</literal> 注释的Web Bean的"
+#~ "API类型(所有企业级Bean超类的本地接口是子类的本地接口)"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "使用 <literal>@Specializes</literal> 注释的Web Bean的部署类型比超类的部署"
+#~ "类型拥有更高的优先级,并且"
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr "没有其他特化该超类的Web Bean被激活。"
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr "如果任何一条有冲突的话,Web Bean管理器将在初始化时抛出一个异常。"
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "因此,我们可以确定当使用<literal>@Specializes</literal>注释的Web Bean被部"
+#~ "署和激活时,超类在系统的任何部署中<emphasis>都不会</emphasis>被调用。"

Modified: doc/trunk/reference/zh-CN/stereotypes.po
===================================================================
--- doc/trunk/reference/zh-CN/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-13 16:04+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,84 +14,91 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "模板"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "根据Web Bean规范:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
-msgid "In many systems, use of architectural patterns produces a set of recurring Web Bean roles. A stereotype allows a framework developer to identify such a role and declare some common metadata for Web Beans with that role in a central place."
-msgstr "在很多系统中,体系模式的使用会产生一套重复发生的Web Bean角色。一个模板允许一个框架开发者来识别这样的一个角色,并且在一个中心地方为拥有这个角色的Web Bean声明一些通用的元数据。"
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
+msgid ""
+"In many systems, use of architectural patterns produces a set of recurring "
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"在很多系统中,体系模式的使用会产生一套重复发生的Web Bean角色。一个模板允许一"
+"个框架开发者来识别这样的一个角色,并且在一个中心地方为拥有这个角色的Web Bean"
+"声明一些通用的元数据。"
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "一个模板封装了下面的任何组合:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "一个默认的部署类型,"
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "一个默认的范围类型,"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "一个对于Web Bean范围的限制"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "一套拦截器绑定注释。"
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "一个Web Bean实现或者继承一个特定类型的需求,以及"
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "一套拦截器绑定注释。"
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid "A stereotype may also specify that all Web Beans with the stereotype have defaulted Web Bean names."
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
 msgstr "一个模板也可以指定所有使用这个模板的Web Bean拥有的默认的Web Bean名称。"
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "一个Web Bean可以声明零个,一个或者多个模板。"
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
-msgid "A stereotype is a Java annotation type. This stereotype identifies action classes in some MVC framework:"
+msgid ""
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
+
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
 msgstr "一个模板其实就是一个Java注释类型。这个模板在一些MVC框架中识别动作类:"
 
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -100,13 +107,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "我们注释来让Web Bean应用模板"
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -115,234 +122,286 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "一个模板默认的范围和部署类型"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
-msgid "A stereotype may specify a default scope and/or default deployment type for Web Beans with that stereotype. For example, if the deployment type <literal>@WebTier</literal> identifies Web Beans that should only be deployed when the system executes as a web application, we might specify the following defaults for action classes:"
-msgstr "一个模板可以为使用该模板的Web Bean指定一个默认的范围或者默认的部署类型。例如,如果<literal>@WebTier</literal> 部署类型识别那些只应该在系统作为一个Web应用运行时才应该部署的Web Bean,我们可以为动作类指定下面的默认值:"
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr "一个模板也可以指定所有使用这个模板的Web Bean拥有的默认的Web Bean名称。"
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid "Of course, a particular action may still override these defaults if necessary:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
 msgstr "当然,如果必要的话,一个特殊的动作类仍旧可以重载这些默认值:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "如果我们想要敬爱那个所有动作类强制在某个特殊的范围,我们也可以这样做。"
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "通过模板来限制范围和类型"
+msgid "Interceptor bindings for stereotypes"
+msgstr "模板的拦截器绑定"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
-msgid "Suppose that we wish to prevent actions from declaring certain scopes. Web Beans lets us explicitly specify the set of allowed scopes for Web Beans with a certain stereotype. For example:"
-msgstr "假定我们希望那个通过特定的范围声明来阻止一个动作。Web Bean可以让我们显式地为使用特定模板的Web Bean指定一套允许的范围。例如:"
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr "一个模板指定一套拦截器绑定让使用该模板的Web Bean继承。"
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr "这将能够帮助我们从业务代码中剥离技术关注点!"
+
+#. Tag: title
+#: stereotypes.xml:103
 #, no-c-format
-msgid "If a particular action class attempts to specify a scope other than the Web Beans request scope, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "如果一个特殊的动作类试图指定超越Web Bean请求范围的范围,Web Bean管理器在初始化时就会抛出一个异常。"
+msgid "Name defaulting with stereotypes"
+msgstr "模板的默认命名"
 
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
-msgid "We can also force all Web Bean with a certain stereotype to implement an interface or extend a class:"
-msgstr "我们也可以强制所有的使用特定模板的Web Bean实现一个接口或者继承一个类:"
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"最后,我们可以为所有使用模板的Web Bean指定一个Web Bean名称,Web Bean管理器将"
+"其设为默认名称。JSP页面中常常引用动作类,所以它们是这个特性的最好的例子。我们"
+"所需做的就是添加一个空的 <literal>@Named</literal> 注释:"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
-msgid "If a particular action class does not extend the class <literal>AbstractAction</literal>, an exception will be thrown by the Web Bean manager at initialization time."
-msgstr "如果一个特殊的动作类没有继承 <literal>AbstractAction</literal>,Web Bean管理器会在初始化时抛出一个异常。"
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
+msgid ""
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"现在, <literal>LoginAction</literal> 将拥有一个名为 <literal>loginAction</"
+"literal> Web Bean名称."
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "模板的拦截器绑定"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "标准的模板"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
-msgid "A stereotype may specify a set of interceptor bindings to be inherited by all Web Beans with that stereotype."
-msgstr "一个模板指定一套拦截器绑定让使用该模板的Web Bean继承。"
+msgid ""
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
-msgid "This helps us get technical concerns even further away from the business code!"
-msgstr "这将能够帮助我们从业务代码中剥离技术关注点!"
+msgid ""
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "模板"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "模板的默认命名"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
-msgid "Finally, we can specify that all Web Beans with a certain stereotype have a Web Bean name, defaulted by the Web Bean manager. Actions are often referenced in JSP pages, so they're a perfect use case for this feature. All we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "最后,我们可以为所有使用模板的Web Bean指定一个Web Bean名称,Web Bean管理器将其设为默认名称。JSP页面中常常引用动作类,所以它们是这个特性的最好的例子。我们所需做的就是添加一个空的 <literal>@Named</literal> 注释:"
+msgid ""
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid "Now, <literal>LoginAction</literal> will have the name <literal>loginAction</literal>."
-msgstr "现在, <literal>LoginAction</literal> 将拥有一个名为 <literal>loginAction</literal> Web Bean名称."
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "标准的模板"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
-msgid "We've already met two standard stereotypes defined by the Web Beans specification: <literal>@Interceptor</literal> and <literal>@Decorator</literal>."
-msgstr "我们已经见到了Web Bean规范定义的两个标准的模板:<literal>@Interceptor</literal> 和 <literal>@Decorator</literal>。"
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
+msgid ""
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
+msgstr ""
+"我们已经见到了Web Bean规范定义的两个标准的模板:<literal>@Interceptor</"
+"literal> 和 <literal>@Decorator</literal>。"
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Bean还定义了另一个标准模板:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -352,8 +411,125 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
-msgid "This stereotype is intended for use with JSF. Instead of using JSF managed beans, just annotate a Web Bean <literal>@Model</literal>, and use it directly in your JSF page."
-msgstr "这个模板是为了JSF使用的。我们可以直接在一个Web Bean上使用 <literal>@Model</literal> 注释就可以让这个Web Bean替代JSF的管理Bean。你可以直接在JSF页面中使用这个Web Bean。"
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
+msgid ""
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"这个模板是为了JSF使用的。我们可以直接在一个Web Bean上使用 <literal>@Model</"
+"literal> 注释就可以让这个Web Bean替代JSF的管理Bean。你可以直接在JSF页面中使用"
+"这个Web Bean。"
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "根据Web Bean规范:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "一个默认的部署类型,"
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "一个对于Web Bean范围的限制"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr "一个Web Bean实现或者继承一个特定类型的需求,以及"
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "一个Web Bean可以声明零个,一个或者多个模板。"
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "一个模板可以为使用该模板的Web Bean指定一个默认的范围或者默认的部署类型。例"
+#~ "如,如果<literal>@WebTier</literal> 部署类型识别那些只应该在系统作为一个"
+#~ "Web应用运行时才应该部署的Web Bean,我们可以为动作类指定下面的默认值:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr ""
+#~ "如果我们想要敬爱那个所有动作类强制在某个特殊的范围,我们也可以这样做。"
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "通过模板来限制范围和类型"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "假定我们希望那个通过特定的范围声明来阻止一个动作。Web Bean可以让我们显式地"
+#~ "为使用特定模板的Web Bean指定一套允许的范围。例如:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "如果一个特殊的动作类试图指定超越Web Bean请求范围的范围,Web Bean管理器在初"
+#~ "始化时就会抛出一个异常。"
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "我们也可以强制所有的使用特定模板的Web Bean实现一个接口或者继承一个类:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "如果一个特殊的动作类没有继承 <literal>AbstractAction</literal>,Web Bean管"
+#~ "理器会在初始化时抛出一个异常。"
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Bean还定义了另一个标准模板:"

Modified: doc/trunk/reference/zh-CN/viewlayers.po
===================================================================
--- doc/trunk/reference/zh-CN/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/zh-CN/weldexamples.po
===================================================================
--- doc/trunk/reference/zh-CN/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/zh-CN/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language zh-CN translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/zh-CN/xml.po
===================================================================
--- doc/trunk/reference/zh-CN/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-CN/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: master.xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-13 15:01+0800\n"
 "Last-Translator: Sean Wu <alartin at gmail.com>\n"
 "Language-Team: none\n"
@@ -14,93 +14,124 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "使用XML定义Web Bean"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
-msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
-msgstr "目前为止,我们看了大量使用注释来声明Web Bean的例子。然而,我们有时候并不使用注释来定义Web Bean,如下列情况:"
+#: xml.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"目前为止,我们看了大量使用注释来声明Web Bean的例子。然而,我们有时候并不使用"
+"注释来定义Web Bean,如下列情况:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr "当实现类是从先前已经存在的类库中产生的时候,或者"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
 msgstr "多个Web Bean对应同一个实现类的时候。"
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "在上述任何一种情况下,Web Bean给我们两种选择:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "写一个生产者方法,或者"
+#: xml.xml:31
+#, fuzzy, no-c-format
+msgid ""
+"Many frameworks use XML to provide metadata relating to Java classes. "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
+"class and member names as the string values of XML elements and attributes, "
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"很多框架使用XML来提供Java类相关的元数据。然而,Web Bean使用了和大多其他框架不"
+"同的方法来指定Java类的名字,域或者方法。Web Bean让你使用类或者成员名作为XML元"
+"素名,而不是将类和成员名作为XML元素的字符串值来声明Web Bean。"
 
 #. Tag: para
-#: xml.xml:24
+#: xml.xml:38
 #, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "使用XML来声明Web Bean。"
+msgid ""
+"The advantage of this approach is that you can write an XML schema that "
+"prevents spelling errors in your XML document. It's even possible for a tool "
+"to generate the XML schema automatically from the compiled Java code. Or, an "
+"integrated development environment could perform the same validation without "
+"the need for the explicit intermediate generation step."
+msgstr ""
+"这种方法的好处是你可以使用XML模式来验证XML, 阻止XML文档中的拼写错误。它甚至可"
+"以让一个工具从编译好的Java代码中自动生成XML模式。或者一个整合开发环境(IDE)"
+"可以直接进行验证,无需使用显式的中间生成步骤。"
 
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
-msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
-msgstr "很多框架使用XML来提供Java类相关的元数据。然而,Web Bean使用了和大多其他框架不同的方法来指定Java类的名字,域或者方法。Web Bean让你使用类或者成员名作为XML元素名,而不是将类和成员名作为XML元素的字符串值来声明Web Bean。"
-
-#. Tag: para
-#: xml.xml:33
-#, no-c-format
-msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
-msgstr "这种方法的好处是你可以使用XML模式来验证XML, 阻止XML文档中的拼写错误。它甚至可以让一个工具从编译好的Java代码中自动生成XML模式。或者一个整合开发环境(IDE)可以直接进行验证,无需使用显式的中间生成步骤。"
-
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "声明Web Bean类"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
-msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "对于每个Java包,Web Bean定义了一个对应的XML名域空间。这个名域由 <literal>urn:java:</literal>前缀加上Java包名组成。对于 <literal>com.mydomain.myapp</literal> 包来说,对应的XML名域是 <literal>urn:java:com.mydomain.myapp</literal>。"
+#: xml.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"For each Java package, Weld defines a corresponding XML namespace. The "
+"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
+"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
+"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr ""
+"对于每个Java包,Web Bean定义了一个对应的XML名域空间。这个名域由 <literal>urn:"
+"java:</literal>前缀加上Java包名组成。对于 <literal>com.mydomain.myapp</"
+"literal> 包来说,对应的XML名域是 <literal>urn:java:com.mydomain.myapp</"
+"literal>。"
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
-msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
-msgstr "属于一个包的Java类型指的是在对应这个包的名域中使用一个XML元素。元素的名字就是Java类型的名字。类型的域和方法通过相同的名域下的子元素定义。如果类型是一个注释的话,其成员通过这个元素的属性指定。"
+msgid ""
+"Java types belonging to a package are referred to using an XML element in "
+"the namespace corresponding to the package. The name of the element is the "
+"name of the Java type. Fields and methods of the type are specified by child "
+"elements in the same namespace. If the type is an annotation, members are "
+"specified by attributes of the element."
+msgstr ""
+"属于一个包的Java类型指的是在对应这个包的名域中使用一个XML元素。元素的名字就是"
+"Java类型的名字。类型的域和方法通过相同的名域下的子元素定义。如果类型是一个注"
+"释的话,其成员通过这个元素的属性指定。"
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
-msgid "For example, the element <literal>&lt;util:Date/&gt;</literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "例如, 在下面的XML片段中的元素<literal>&lt;util:Date/&gt;</literal>指的是 <literal>java.util.Date</literal> 类:"
+msgid ""
+"For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"例如, 在下面的XML片段中的元素<literal>&lt;util:Date/&gt;</literal>指的是 "
+"<literal>java.util.Date</literal> 类:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -110,37 +141,45 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
-msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
-msgstr "这个是将<literal>Date</literal> 声明为一个简单web Bean所需的所有代码!现在任何一个 <literal>Date</literal> 实例都可以被任何其他Web Bean注入了:"
+#: xml.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"And this is all the code we need to declare that <literal>Date</literal> is "
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"这个是将<literal>Date</literal> 声明为一个简单web Bean所需的所有代码!现在任"
+"何一个 <literal>Date</literal> 实例都可以被任何其他Web Bean注入了:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "声明Web Bean的元数据"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
-msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
-msgstr "我们可以直接通过Web Bean声明的子元素来声明范围,部署类型和拦截器绑定类型:"
+#: xml.xml:80
+#, fuzzy, no-c-format
+msgid ""
+"We can declare the scope, deployment type and interceptor binding types "
+"using direct child elements of the bean declaration:"
+msgstr ""
+"我们可以直接通过Web Bean声明的子元素来声明范围,部署类型和拦截器绑定类型:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -150,29 +189,29 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
 msgstr "我们可以使用相同方法来指定名字和绑定类型:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -192,36 +231,39 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
-msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
-msgstr "<literal>@Login</literal> 和 <literal>@SystemStart</literal> 是绑定注释类型。"
+#: xml.xml:91
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
+"qualifier annotations types."
+msgstr ""
+"<literal>@Login</literal> 和 <literal>@SystemStart</literal> 是绑定注释类型。"
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "通常,一个Web Bean可以支持多个绑定类型:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -230,18 +272,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
-msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
-msgstr "拦截器和装饰器只不过是简单的Web Beans,所以它们可以像其他简单Web Bean一样被声明:"
+#: xml.xml:101
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"拦截器和装饰器只不过是简单的Web Beans,所以它们可以像其他简单Web Bean一样被声"
+"明:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -250,42 +296,42 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "声明Web Bean成员"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "TODO!"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "声明内联的Web Beans"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
 msgstr "Web Beans让我们能够在一个注入点定义一个Web Bean。例如:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -300,50 +346,72 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
-msgid "The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
-msgstr " <literal>&lt;Name&gt;</literal> 元素声明了一个范围为 <literal>@Dependent</literal> ,类为 <literal>Name</literal> 的一个简单的Web Bean,并且设置了一套初始的域值。这个Web Bean有一个特殊的,容器生成的绑定,因此只能在它声明的特定注入点被注入。"
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+" <literal>&lt;Name&gt;</literal> 元素声明了一个范围为 <literal>@Dependent</"
+"literal> ,类为 <literal>Name</literal> 的一个简单的Web Bean,并且设置了一套"
+"初始的域值。这个Web Bean有一个特殊的,容器生成的绑定,因此只能在它声明的特定"
+"注入点被注入。"
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
-msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
-msgstr "这个简单但是很强大的特性能够让我们使用Web Bean XML配置格式来指定整个Java类的图。这并不是完整的数据绑定方案,但是它很接近了!"
+#: xml.xml:131
+#, fuzzy, no-c-format
+msgid ""
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
+"solution, but it's close!"
+msgstr ""
+"这个简单但是很强大的特性能够让我们使用Web Bean XML配置格式来指定整个Java类的"
+"图。这并不是完整的数据绑定方案,但是它很接近了!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "使用一个模式"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
-msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
-msgstr "如果我们希望我们的XML文档格式由非Java开发者或者没有权限访问我们代码的人来制定,我们需要提供一个模式。在Web Beans中使用模式没有什么特殊的地方。"
+#: xml.xml:141
+#, fuzzy, no-c-format
+msgid ""
+"If we want our XML document format to be authored by people who aren't Java "
+"developers, or who don't have access to our code, we need to provide a "
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"如果我们希望我们的XML文档格式由非Java开发者或者没有权限访问我们代码的人来制"
+"定,我们需要提供一个模式。在Web Beans中使用模式没有什么特殊的地方。"
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
 "          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
 "\n"
 "    <myapp:System>\n"
 "        ...\n"
@@ -352,8 +420,21 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
-msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
-msgstr "编写一个XML模式相当繁琐。因此,Web Bean的参考实现项目提供了一个工具,可以从编译好的Java代码中自动化生成XML模式。"
+#: xml.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"编写一个XML模式相当繁琐。因此,Web Bean的参考实现项目提供了一个工具,可以从编"
+"译好的Java代码中自动化生成XML模式。"
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "在上述任何一种情况下,Web Bean给我们两种选择:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "写一个生产者方法,或者"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "使用XML来声明Web Bean。"

Modified: doc/trunk/reference/zh-TW/Author_Group.po
===================================================================
--- doc/trunk/reference/zh-TW/Author_Group.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/Author_Group.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 09:27+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,117 +17,119 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: author
-#: Author_Group.xml:4
+#: Author_Group.xml:5
 #, no-c-format
 msgid "<firstname>Gavin</firstname> <surname>King</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:7
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:8
+#, no-c-format
+msgid "JSR-299: Contexts and Dependency Injection Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red Hat "
-"Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:12
+#: Author_Group.xml:14
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
-#. Tag: affiliation
-#: Author_Group.xml:15
-#, fuzzy, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
+#. Tag: contrib
+#: Author_Group.xml:17
+#, no-c-format
+msgid "Weld (JSR-299 RI) Lead"
 msgstr ""
-"<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: author
-#: Author_Group.xml:21
+#: Author_Group.xml:24
 #, fuzzy, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
+
+#. Tag: author
+#: Author_Group.xml:31
+#, fuzzy, no-c-format
 msgid "<firstname>David</firstname> <surname>Allen</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:25
+#: Author_Group.xml:35
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:28 Author_Group.xml:57
+#: Author_Group.xml:38 Author_Group.xml:67
 #, no-c-format
 msgid "Italian Translation"
 msgstr "義大利文翻譯"
 
 #. Tag: othercredit
-#: Author_Group.xml:30
+#: Author_Group.xml:40
 #, fuzzy, no-c-format
 msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:33
+#: Author_Group.xml:43
 #, fuzzy, no-c-format
 msgid "Spanish Translation"
 msgstr "義大利文翻譯"
 
-#. Tag: orgname
-#: Author_Group.xml:35 Author_Group.xml:43 Author_Group.xml:51
-#, no-c-format
-msgid "Red Hat Middleware LLC"
-msgstr ""
-
 #. Tag: othercredit
-#: Author_Group.xml:38
+#: Author_Group.xml:48
 #, fuzzy, no-c-format
 msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
 msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:41
+#: Author_Group.xml:51
 #, fuzzy, no-c-format
 msgid "Korean Translation"
 msgstr "義大利文翻譯"
 
 #. Tag: othercredit
-#: Author_Group.xml:46
+#: Author_Group.xml:56
 #, fuzzy, no-c-format
 msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:49
+#: Author_Group.xml:59
 #, fuzzy, no-c-format
 msgid "Traditional Chinese Translation"
 msgstr "義大利文翻譯"
 
 #. Tag: othercredit
-#: Author_Group.xml:54
+#: Author_Group.xml:64
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 
 #. Tag: othercredit
-#: Author_Group.xml:59
+#: Author_Group.xml:69
 #, fuzzy, no-c-format
 msgid "<firstname>Sean</firstname> <surname>Wu</surname>"
 msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: contrib
-#: Author_Group.xml:62
+#: Author_Group.xml:72
 #, fuzzy, no-c-format
 msgid "Simplified Chinese Translation"
 msgstr "義大利文翻譯"
 
-#. Tag: orgname
-#: Author_Group.xml:64
-#, no-c-format
-msgid "Kava Community"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat "
+#~ "Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red "
+#~ "Hat Middleware LLC</orgname>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"
+#~ msgstr ""
+#~ "<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
+#~ "<orgname>Red Hat Middleware LLC</orgname>"

Modified: doc/trunk/reference/zh-TW/Book_Info.po
===================================================================
--- doc/trunk/reference/zh-TW/Book_Info.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/Book_Info.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 09:34+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -19,14 +19,15 @@
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
-msgid "Web Beans: Java Contexts and Dependency Injection"
+msgid "Weld - JSR-299 Reference Implementation"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:5
 #, fuzzy, no-c-format
 msgid ""
-"The new standard for dependency injection and contextual state management"
+"JSR-299: The new Java standard for dependency injection and contextual "
+"lifecycle management"
 msgstr ""
 "依賴注入(dependency injection)與狀態管理(contextual state management)的"
 "新 Java 標準"

Added: doc/trunk/reference/zh-TW/beans.po
===================================================================
--- doc/trunk/reference/zh-TW/beans.po	                        (rev 0)
+++ doc/trunk/reference/zh-TW/beans.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1244 @@
+# Language zh-TW translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: beans.xml:4
+#, no-c-format
+msgid "More about beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:6
+#, no-c-format
+msgid ""
+"A bean is usually an application class that contains business logic. It may "
+"be called directly from Java code, or it may be invoked via the Unified EL. "
+"A bean may access transactional resources. Dependencies between beans are "
+"managed automatically by the container. Most beans are <emphasis>stateful</"
+"emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a bean is "
+"always managed by the container."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:13
+#, no-c-format
+msgid ""
+"Let's back up a second. What does it really mean to be <emphasis>contextual</"
+"emphasis>? Since beans may be stateful, it matters <emphasis>which</"
+"emphasis> bean instance I have. Unlike a stateless component model (for "
+"example, stateless session beans) or a singleton component model (such as "
+"servlets, or singleton beans), different clients of a bean see the bean in "
+"different states. The client-visible state depends upon which instance of "
+"the bean the client has a reference to."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:21
+#, no-c-format
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the bean determines:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:29
+#, no-c-format
+msgid "the lifecycle of each instance of the bean and"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:32
+#, no-c-format
+msgid "which clients share a reference to a particular instance of the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:36
+#, no-c-format
+msgid ""
+"For a given thread in a CDI application, there may be an <emphasis>active "
+"context</emphasis> associated with the scope of the bean. This context may "
+"be unique to the thread (for example, if the bean is request scoped), or it "
+"may be shared with certain other threads (for example, if the bean is "
+"session scoped) or even all other threads (if it is application scoped)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:43
+#, no-c-format
+msgid ""
+"Clients (for example, other beans) executing in the same context will see "
+"the same instance of the bean. But clients in a different context may see a "
+"different instance (depending on the relationship between the contexts)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:49
+#, no-c-format
+msgid ""
+"One great advantage of the contextual model is that it allows stateful beans "
+"to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the bean it's using, <emphasis>nor does it even "
+"need to know what that lifecycle is.</emphasis> Beans interact by passing "
+"messages, and the bean implementations define the lifecycle of their own "
+"state. The beans are loosely coupled because:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:58
+#, no-c-format
+msgid "they interact via well-defined public APIs"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:61
+#, no-c-format
+msgid "their lifecycles are completely decoupled"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:65
+#, no-c-format
+msgid ""
+"We can replace one bean with another different bean that implements the same "
+"interface and has a different lifecycle (a different scope) without "
+"affecting the other bean implementation. In fact, CDI defines a simple "
+"facility for overriding bean implementations at deployment time, as we will "
+"see in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:71
+#, no-c-format
+msgid ""
+"Note that not all clients of a bean are beans themselves. Other objects such "
+"as servlets or message-driven beans&#8212;which are by nature not "
+"injectable, contextual objects&#8212;may also obtain references to beans by "
+"injection."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:78
+#, no-c-format
+msgid "The anatomy of a bean"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:80
+#, no-c-format
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:84
+#, no-c-format
+msgid "A bean comprises the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:87
+#, no-c-format
+msgid "A (nonempty) set of bean types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:88
+#, no-c-format
+msgid "A (nonempty) set of qualifiers"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:89
+#, no-c-format
+msgid "A scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:90
+#, no-c-format
+msgid "Optionally, a bean EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:91
+#, no-c-format
+msgid "A set of interceptor bindings"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:92
+#, no-c-format
+msgid "A bean implementation"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:95
+#, no-c-format
+msgid "Furthermore, a bean may or may not be an alternative."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:99
+#, no-c-format
+msgid "Let's see what all this new terminology means."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:102
+#, no-c-format
+msgid "Bean types, qualifiers and dependency injection"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:104
+#, no-c-format
+msgid ""
+"Beans usually acquire references to other beans via dependency injection. "
+"Any injected attribute specifies a \"contract\" that must be satisfied by "
+"the bean to be injected. The contract is:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:110
+#, no-c-format
+msgid "a bean type, together with"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:111
+#, no-c-format
+msgid "a set of qualifiers."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:114
+#, no-c-format
+msgid ""
+"A bean type is a user-defined class or interface; a type that is client-"
+"visible. If the bean is an EJB session bean, the bean type is the "
+"<literal>@Local</literal> interface or bean-class local view. A bean may "
+"have multiple bean types. For example, the following bean has four bean "
+"types:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:122
+#, no-c-format
+msgid ""
+"The bean types are <literal>BookShop</literal>, <literal>Business</literal> "
+"and <literal>Shop&lt;Book&gt;</literal>, as well as the implicit type "
+"<literal>java.lang.Object</literal>. (Notice that a parameterized type is a "
+"legal bean type)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:128
+#, no-c-format
+msgid ""
+"Meanwhile, this session bean has only the local interfaces "
+"<literal>BookShop</literal>, <literal>Auditable</literal> and <literal>java."
+"lang.Object</literal> as bean types, since the bean class, "
+"<literal>BookShopBean</literal> is not a client-visible type."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"public class BookShopBean \n"
+"      extends Business \n"
+"      implements BookShop, Auditable {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:137
+#, no-c-format
+msgid ""
+"Most bean types you can probably figure out. One gotcha is primitive types. "
+"All primitive types are assumed to be identical to their corresponding "
+"wrapper types in <literal>java.lang</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:143
+#, no-c-format
+msgid ""
+"Bean types may be restricted to an explicit set by annotating the bean with "
+"the <literal>@Typed</literal> annotation and listing the classes that should "
+"be bean types. For instance, the bean types of this bean have been "
+"restricted to <literal>Shop&lt;Book&gt;</literal>, together with "
+"<literal>java.lang.Object</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Typed(Shop.class)\n"
+"public class BookShop \n"
+"      extends Business \n"
+"      implements Shop<Book> {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:151
+#, no-c-format
+msgid ""
+"Sometimes, a bean type alone does not provide enough information for the "
+"container to know which bean to inject. For instance, suppose we have two "
+"implementations of the <literal>PaymentProcessor</literal> interface: "
+"<literal>CreditCardPaymentProcessor</literal> and "
+"<literal>DebitPaymentProcessor</literal>. Injecting a field of type "
+"<literal>PaymentProcessor</literal> introduces an ambiguous condition. In "
+"these cases, the client must specify some additional quality of the "
+"implementation it is interested in. We model this kind of \"quality\" using "
+"a qualifier."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:160
+#, no-c-format
+msgid ""
+"A qualifier is a user-defined annotation that is itself annotated "
+"<literal>@Qualifer</literal>. A qualifier annotation is an extension of the "
+"type system. It lets us disambiguate a type without having to fall back to "
+"string-based names. Here's an example of a qualifier annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface CreditCard {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:168
+#, no-c-format
+msgid ""
+"You may not be used to seeing the definition of an annotation. In fact, this "
+"might be the first time you've encountered one. With CDI, annotation "
+"definitions will become a familiar artifact as you'll be creating them from "
+"time to time."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:175
+#, no-c-format
+msgid ""
+"Pay attention to the names of the built-in annotations in CDI and EJB. "
+"You'll notice that they are often adjectives. We encourage you to follow "
+"this convention when creating your custom annotations, since they serve to "
+"describe the behaviors and roles of the class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:182
+#, no-c-format
+msgid ""
+"Now that we have defined a qualifier annotation, we can use it to "
+"disambiguate an injection point. The following injection point has the bean "
+"type <literal>PaymentProcessor</literal> and qualifier <literal>@CreditCard</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:188
+#, no-c-format
+msgid "<![CDATA[@Inject @CreditCard PaymentProcessor paymentProcessor]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:191
+#, no-c-format
+msgid ""
+"If an injection point does not explicitly specify a qualifier, it has the "
+"default qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:197
+#, no-c-format
+msgid ""
+"For each injection point, the container searches for a bean which satisfies "
+"the contract, one which has the bean type and all the qualifiers. If it "
+"finds exactly one matching bean, it injects an instance of that bean. If it "
+"doesn't, it reports an error to the user."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:203
+#, no-c-format
+msgid ""
+"How do we specify that qualifiers of a bean? By annotating the bean class, "
+"of course! The following bean has the qualifier <literal>@CreditCard</"
+"literal> and implements the bean type <literal>PaymentProcessor</literal>. "
+"Therefore, it satisfies our qualified injection point:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:212
+#, no-c-format
+msgid ""
+"If a bean does not explicitly specify a qualifier, it has the default "
+"qualifier, <literal>@Default</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:225
+#, no-c-format
+msgid ""
+"That's not quite the end of the story. CDI also defines a simple "
+"<emphasis>resolution rule</emphasis> that helps the container decide what to "
+"do if there is more than one bean that satisfies a particular contract. "
+"We'll get into the details in <xref linkend=\"injection\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:245
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:248
+#, no-c-format
+msgid ""
+"The <emphasis>scope</emphasis> of a bean defines the lifecycle and "
+"visibility of its instances. The CDI context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built "
+"into the specification, and provided by the container. Each scope is "
+"represented by an annotation type."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:255
+#, no-c-format
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:261
+#, no-c-format
+msgid ""
+"An instance of a session-scoped bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:265
+#, no-c-format
+msgid ""
+"Keep in mind that once a bean is bound to a context, it remains in that "
+"context until the context is destroyed. There is no way to explicitly remove "
+"a bean from a context. If you don't the bean to live in the session "
+"indefinitely, consider using another scope such as the request or "
+"conversation scope instead."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:272
+#, no-c-format
+msgid ""
+"If a scope is not explicitly specified, then the bean belongs to a special "
+"scope called the <emphasis>dependent pseudo-scope</emphasis>. Beans with "
+"this scope live to serve the object into which they were injected, which "
+"means their lifecycle is bound to the lifecycle of that object."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:278
+#, no-c-format
+msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:283
+#, no-c-format
+msgid "EL name"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:285
+#, no-c-format
+msgid ""
+"If you want to reference a bean in non-Java code that supports Unified EL "
+"expressions, for example, in a JSP or JSF page, you must assign the bean an "
+"<emphasis>EL name</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:290
+#, no-c-format
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:296
+#, no-c-format
+msgid "Now we can easily use the bean in any JSF or JSP page:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:298
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"   ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:301
+#, no-c-format
+msgid ""
+"The <literal>@Named</literal> annotation is not what makes the class a bean. "
+"Most classes in a bean archive are already recognized as beans. The "
+"<literal>@Named</literal> annotation just makes it possible to reference the "
+"bean from the EL, most commonly from a JSF view."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:308
+#, no-c-format
+msgid ""
+"We can let CDI choose a name for us by leaving off the value of the "
+"<literal>@Named</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:312
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Named\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:314
+#, no-c-format
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:324
+#, no-c-format
+msgid "Alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:326
+#, no-c-format
+msgid ""
+"We've already seen how qualifiers let us choose between multiple "
+"implementations of an interface at development time. But sometimes we have "
+"an interface (or other bean type) whose implementation varies depending upon "
+"the deployment environment. For example, we may want to use a mock "
+"implementation in a testing environment. An <emphasis>alternative</emphasis> "
+"may be declared by annotating the bean class with the <literal>@Alternative</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:336
+#, no-c-format
+msgid ""
+"We normally annotate a bean <literal>@Alternative</literal> only when there "
+"is some other implementation of an interface it implements (or of any of its "
+"bean types). We can choose between alternatives at deployment time by "
+"<emphasis>selecting</emphasis> an alternative in the CDI deployment "
+"descriptor <literal>META-INF/beans.xml</literal> of the jar or Java EE "
+"module that uses it. Different modules can specify that they use different "
+"alternatives."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:344
+#, no-c-format
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:351
+#, no-c-format
+msgid "Interceptor binding types"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:353
+#, no-c-format
+msgid ""
+"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
+"this functionality has been generalized to work with other managed beans. "
+"That's right, you no longer have to make your bean an EJB just to intercept "
+"its methods. Holler. So what does CDI have to offer above and beyond that? "
+"Well, quite a lot actually. Let's cover some background."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:360
+#, no-c-format
+msgid ""
+"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
+"You were required to specify the <emphasis>implementation</emphasis> of the "
+"interceptor directly on the <emphasis>implementation</emphasis> of the EJB, "
+"either in the <literal>@Interceptors</literal> annotation or in the XML "
+"descriptor. You might as well just put the interceptor code <emphasis>in</"
+"emphasis> the implementation! Second, the order in which the interceptors "
+"are applied is taken from the order in which they are declared in the "
+"annotation or the XML descriptor. Perhaps this isn't so bad if you're "
+"applying the interceptors to a single bean. But, if you are applying them "
+"repeatedly, then there's a good chance that you'll inadvertently define a "
+"different order for different beans. Now that's a problem."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:371
+#, no-c-format
+msgid ""
+"CDI provides a new approach to binding interceptors to beans that introduces "
+"a level of indirection (and thus control). We must define an "
+"<emphasis>interceptor binding type</emphasis> to describe the behavior "
+"implemented by the interceptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:377
+#, no-c-format
+msgid ""
+"An interceptor binding type is a user-defined annotation that is itself "
+"annotated <literal>@InterceptorBinding</literal>. It lets us bind "
+"interceptor classes to bean classes with no direct dependency between the "
+"two classes."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:382
+#, no-c-format
+msgid ""
+"<![CDATA[@InterceptorBinding\n"
+"@Inherited\n"
+"@Target( { TYPE, METHOD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:384
+#, no-c-format
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[public @Transactional @Interceptor\n"
+"class TransactionInterceptor { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:390
+#, no-c-format
+msgid ""
+"We can apply the interceptor to a bean by annotating the bean class with the "
+"same interceptor binding type:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:394
+#, no-c-format
+msgid ""
+"<![CDATA[public @SessionScoped @Transactional\n"
+"class ShoppingCart implements Serializable { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:396
+#, no-c-format
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:401
+#, no-c-format
+msgid ""
+"Interceptors are deployment-specific. (We don't need a "
+"<literal>TransactionInterceptor</literal> in our unit tests!) By default, an "
+"interceptor is disabled. We can enable an interceptor using the CDI "
+"deployment descriptor <literal>META-INF/beans.xml</literal> of the jar or "
+"Java EE module. This is also where we specify the interceptor ordering."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:408
+#, no-c-format
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:418
+#, no-c-format
+msgid "What kinds of classes are beans?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:420
+#, no-c-format
+msgid ""
+"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
+"that the whole story? Actually, it's just the beginning. Let's explore the "
+"various kinds of beans that CDI implementations must support out-of-the-box."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:427
+#, no-c-format
+msgid "Managed beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:429
+#, no-c-format
+msgid ""
+"A managed bean is a Java class. The basic lifecycle and semantics of a "
+"managed bean are defined by the Managed Beans specification. You can "
+"explicitly declare a managed bean by annotating the bean class "
+"<literal>@ManagedBean</literal>, but in CDI you don't need to. According to "
+"the specification, the CDI container treats any class that satisfies the "
+"following conditions as a managed bean:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:440
+#, no-c-format
+msgid "It is not a non-static inner class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:443
+#, no-c-format
+msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:446
+#, no-c-format
+msgid ""
+"It is not annotated with an EJB component-defining annotation or declared as "
+"an EJB bean class in <literal>ejb-jar.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:452
+#, no-c-format
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:455
+#, no-c-format
+msgid "It has an appropriate constructor&#8212;either:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:460
+#, no-c-format
+msgid "the class has a constructor with no parameters, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:463
+#, no-c-format
+msgid "the class declares a constructor annotated <literal>@Inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:471
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a managed bean contains the bean "
+"class, every superclass and all interfaces it implements directly or "
+"indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:474
+#, no-c-format
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:476
+#, no-c-format
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:479
+#, no-c-format
+msgid ""
+"Session beans are also, technically, managed beans. However, since they have "
+"their own special lifecycle and take advantage of additional enterprise "
+"services, the CDI specification considers them to be a different kind of "
+"bean."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:488
+#, no-c-format
+msgid "Session beans"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:490
+#, no-c-format
+msgid ""
+"Session beans belong to the EJB specification. They have a special "
+"lifecycle, state management and concurrency model that is different to other "
+"managed beans and non-managed Java objects. But session beans participate in "
+"CDI just like any other bean. You can inject one session bean into another "
+"session bean, a managed bean into a session bean, a session bean into a "
+"managed bean, have a managed bean observe an event raised by a session bean, "
+"and so on."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:499
+#, no-c-format
+msgid ""
+"Message-driven and entity beans are by nature non-contextual objects and may "
+"not be injected into other objects. However, message-driven beans can take "
+"advantage of some CDI functionality, such as dependency injection, "
+"interceptors and decorators. In fact, CDI will perform injection into any "
+"session or message-driven bean, even those which are not contextual "
+"instances."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:507
+#, no-c-format
+msgid ""
+"The unrestricted set of bean types for a session bean contains all local "
+"interfaces of the bean and their superinterfaces. If the session bean has a "
+"bean class local view, the unrestricted set of bean types contains the bean "
+"class and all superclasses. In addition, <literal>java.lang.Object</literal> "
+"is a bean type of every session bean. But remote interfaces are "
+"<emphasis>not</emphasis> included in the set of bean types."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:515
+#, no-c-format
+msgid ""
+"There's no reason to explicitly declare the scope of a stateless session "
+"bean or singleton session bean. The EJB container controls the lifecycle of "
+"these beans, according to the semantics of the <literal>@Stateless</literal> "
+"or <literal>@Singleton</literal> declaration. On the other hand, a stateful "
+"session bean may have any scope."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:519
+#, no-c-format
+msgid ""
+"Stateful session beans may define a <emphasis>remove method</emphasis>, "
+"annotated <literal>@Remove</literal>, that is used by the application to "
+"indicate that an instance should be destroyed. However, for a contextual "
+"instance of the bean&#8212;an instance under the control of CDI&#8212;this "
+"method may only be called by the application if the bean has scope "
+"<literal>@Dependent</literal>. For beans with other scopes, the application "
+"must let the container destroy the bean."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:527
+#, no-c-format
+msgid ""
+"So, when should we use a session bean instead of a plain managed bean? "
+"Whenever we need the advanced enterprise services offered by EJB, such as:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:534
+#, no-c-format
+msgid "method-level transaction management and security,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:537
+#, no-c-format
+msgid "concurrency management,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:540
+#, no-c-format
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:544
+#, no-c-format
+msgid "remote or web service invocation, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:547
+#, no-c-format
+msgid "timers and asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:551
+#, no-c-format
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:553
+#, no-c-format
+msgid ""
+"Many beans (including any <literal>@SessionScoped</literal> or "
+"<literal>@ApplicationScoped</literal> beans) are available for concurrent "
+"access. Therefore, the concurrency management provided by EJB 3.1 is "
+"especially useful. Most session and application scoped beans should be EJBs."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:559
+#, no-c-format
+msgid ""
+"Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB stateless/stateful/singleton model, with its support for "
+"passivation and instance pooling."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:565
+#, no-c-format
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:570
+#, no-c-format
+msgid ""
+"The point we're trying to make is: use a session bean when you need the "
+"services it provides, not just because you want to use dependency injection, "
+"lifecycle management, or interceptors. Java EE 6 provides a graduated "
+"programming model. It's usually easy to start with an ordinary managed bean, "
+"and later turn it into an EJB just by adding one of the following "
+"annotations: <literal>@Stateless</literal>, <literal>@Stateful</literal> or "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:578
+#, no-c-format
+msgid ""
+"On the other hand, don't be scared to use session beans just because you've "
+"heard your friends say they're \"heavyweight\". It's nothing more than "
+"superstition to think that something is \"heavier\" just because it's hosted "
+"natively within the Java EE container, instead of by a proprietary bean "
+"container or dependency injection framework that runs as an additional layer "
+"of obfuscation. And as a general principle, you should be skeptical of folks "
+"who use vaguely defined terminology like \"heavyweight\"."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:589
+#, no-c-format
+msgid "Producer methods"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:591
+#, no-c-format
+msgid ""
+"Not everything that needs to be injected can be boiled down to a bean class "
+"instantiated by the container using <literal>new</literal>. There are plenty "
+"of cases where we need additional control. What if we need to decide at "
+"runtime which implementation of a type to instantiate and inject? What if we "
+"need to inject an object that is obtained by querying a service or "
+"transactional resource, for example by executing a JPA query?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:599
+#, no-c-format
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that acts as a source of "
+"bean instances. The method declaration itself describes the bean and the "
+"container invokes the method to obtain an instance of the bean when no "
+"instance exists in the specified context. A producer method lets the "
+"application take full control of the bean instantiation process."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:606
+#, no-c-format
+msgid ""
+"A producer method is declared by annotating a method of a bean class with "
+"the <literal>@Produces</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:611
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class RandomNumberGenerator {\n"
+"   \n"
+"   private Random random = new Random(System.currentTimeMillis());\n"
+"       \n"
+"   @Produces @Named @Random int getRandomNumber() {\n"
+"      return random.nextInt(100);\n"
+"   }\n"
+"   \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:613
+#, no-c-format
+msgid ""
+"We can't write a bean class that is itself a random number. But we can "
+"certainly write a method that returns a random number. By making the method "
+"a producer method, we allow the return value of the method&#8212;in this "
+"case an <literal>Integer</literal>&#8212;to be injected. We can even specify "
+"a qualifier&#8212;in this case <literal>@Random</literal>, a scope&#8212;"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name&#8212;which in this case defaults to <literal>randomNumber</literal> "
+"according to the JavaBeans property name convention. Now we can get a random "
+"number anywhere:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:622
+#, no-c-format
+msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:624
+#, no-c-format
+msgid "Even in a Unified EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:628
+#, no-c-format
+msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:630
+#, no-c-format
+msgid ""
+"A producer method must be a non-abstract method of a managed bean class or "
+"session bean class. A producer method may be either static or non-static. If "
+"the bean is a session bean, the producer method must be either a business "
+"method of the EJB or a static method of the bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:636
+#, no-c-format
+msgid "The bean types of a producer method depend upon the method return type:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:642
+#, no-c-format
+msgid ""
+"If the return type is an interface, the unrestricted set of bean types "
+"contains the return type, all interfaces it extends directly or indirectly "
+"and <literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:648
+#, no-c-format
+msgid ""
+"If a return type is primitive or is a Java array type, the unrestricted set "
+"of bean types contains exactly two types: the method return type and "
+"<literal>java.lang.Object</literal>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:654
+#, no-c-format
+msgid ""
+"If the return type is a class, the unrestricted set of bean types contains "
+"the return type, every superclass and all interfaces it implements directly "
+"or indirectly."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:661
+#, no-c-format
+msgid ""
+"If the producer method has method parameters, the container will look for a "
+"bean that satisfies the type and qualifiers of each parameter and pass it to "
+"the method automatically&#8212;another form of dependency injection."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
+"   return user.getRoles();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:669
+#, no-c-format
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:674
+#, no-c-format
+msgid "Producer fields"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:676
+#, no-c-format
+msgid ""
+"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
+"method. A producer field is declared by annotating a field of a bean class "
+"with the <literal>@Produces</literal> annotation&#8212;the same annotation "
+"used for producer methods."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:682
+#, no-c-format
+msgid ""
+"<![CDATA[public class Shop {\n"
+"   @Produces PaymentProcessor paymentProcessor = ....;\n"
+"   @Produces @Catalog List<Product> products = ....;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:684
+#, no-c-format
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:688
+#, no-c-format
+msgid ""
+"A producer field is really just a shortcut that lets us avoid writing a "
+"useless getter method. However, in addition to convenience, producer fields "
+"serve a specific purpose as an adaptor for Java EE component environment "
+"injection, but to learn more about that, you'll have to wait until <xref "
+"linkend=\"resources\"/>. Because we can't wait to get to work on some "
+"examples."
+msgstr ""

Modified: doc/trunk/reference/zh-TW/decorators.po
===================================================================
--- doc/trunk/reference/zh-TW/decorators.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/decorators.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: decorators\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 12:39+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,51 +17,63 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: decorators.xml:4
+#: decorators.xml:5
 #, no-c-format
 msgid "Decorators"
 msgstr "裝飾器(Decorators)"
 
 #. Tag: para
-#: decorators.xml:6
-#, no-c-format
+#: decorators.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
-msgstr "呼叫攔截器(Interceptors)是個用來擷取和區分與型別系統<emphasis>垂直</emphasis>的相關問題的強大方式。任何攔截器皆可攔截任何 Java 類型的調用(invocation)。這使它們適用於解決涉及技術上的問題,例如交易管理和安全性。不過,就一般來講,攔截器並不會知道它們所攔截的事件之實際 語。因此,攔截器並不適合作為一個區分涉及商業問題的工具。意"
+"<emphasis>orthogonal</emphasis> to the application (and type system). Any "
+"interceptor is able to intercept invocations of any Java type. This makes "
+"them perfect for solving technical concerns such as transaction management, "
+"security and call logging. However, by nature, interceptors are unaware of "
+"the actual semantics of the events they intercept. Thus, interceptors aren't "
+"an appropriate tool for separating business-related concerns."
+msgstr ""
+"呼叫攔截器(Interceptors)是個用來擷取和區分與型別系統<emphasis>垂直</"
+"emphasis>的相關問題的強大方式。任何攔截器皆可攔截任何 Java 類型的調用"
+"(invocation)。這使它們適用於解決涉及技術上的問題,例如交易管理和安全性。不"
+"過,就一般來講,攔截器並不會知道它們所攔截的事件之實際 語。因此,攔截器並不適"
+"合作為一個區分涉及商業問題的工具。意"
 
 #. Tag: para
-#: decorators.xml:14
-#, no-c-format
+#: decorators.xml:15
+#, fuzzy, no-c-format
 msgid ""
 "The reverse is true of <emphasis>decorators</emphasis>. A decorator "
 "intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
+"aware of all the semantics attached to that interface. Since decorators "
+"directly implement operations with business semantics, it makes them the "
+"perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
-msgstr "<emphasis>裝飾器(decorators)</emphasis>則是相反的。裝飾器只會針對於特定 java 介面來攔截調用,因此它知道該介面的所有語意。這使得裝飾器適用於模擬涉及商業上的問題。同時這也代表裝飾器並沒有攔截器的普遍性。裝飾器無法解決涉及多種不同類型的技術問題。"
+"aren't able to solve technical concerns that cut across many disparate "
+"types. Interceptors and decorators, though similar in many ways, are "
+"complementary. Let's look at some cases where decorators fit the bill."
+msgstr ""
+"<emphasis>裝飾器(decorators)</emphasis>則是相反的。裝飾器只會針對於特定 "
+"java 介面來攔截調用,因此它知道該介面的所有語意。這使得裝飾器適用於模擬涉及商"
+"業上的問題。同時這也代表裝飾器並沒有攔截器的普遍性。裝飾器無法解決涉及多種不"
+"同類型的技術問題。"
 
 #. Tag: para
-#: decorators.xml:22
+#: decorators.xml:24
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
 msgstr "假設我們有個顯示帳號的介面:"
 
 #. Tag: programlisting
-#: decorators.xml:24
-#, no-c-format
+#: decorators.xml:26
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public interface Account {\n"
-"    public BigDecimal getBalance();\n"
-"    public User getOwner();\n"
-"    public void withdraw(BigDecimal amount);\n"
-"    public void deposit(BigDecimal amount);\n"
+"   public BigDecimal getBalance();\n"
+"   public User getOwner();\n"
+"   public void withdraw(BigDecimal amount);\n"
+"   public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public interface Account {\n"
@@ -72,49 +84,68 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:26
-#, no-c-format
+#: decorators.xml:28
+#, fuzzy, no-c-format
 msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
+"Several different beans in our system implement the <literal>Account</"
+"literal> interface. However, we have a common legal requirement that; for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
-msgstr "我們的系統中會有幾個不同的 Web Bean 實做 <literal>Account</literal> 介面。不過,我們有個法律上的統一規定需求,那就是不管是任何哪種類型的帳號,大型的交易都必須被系統記錄於一個特殊的日誌中。這是一項適合裝飾器的工作。"
+msgstr ""
+"我們的系統中會有幾個不同的 Web Bean 實做 <literal>Account</literal> 介面。不"
+"過,我們有個法律上的統一規定需求,那就是不管是任何哪種類型的帳號,大型的交易"
+"都必須被系統記錄於一個特殊的日誌中。這是一項適合裝飾器的工作。"
 
 #. Tag: para
-#: decorators.xml:32
-#, no-c-format
+#: decorators.xml:34
+#, fuzzy, no-c-format
 msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
-msgstr "裝飾器(decorator)是個單純的 Web Bean,它可實做它所裝飾的類型並且會被標記為 <literal>@Decorator</literal>。"
+"A decorator is a bean (possibly even an abstract class) that implements the "
+"type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr ""
+"裝飾器(decorator)是個單純的 Web Bean,它可實做它所裝飾的類型並且會被標記為 "
+"<literal>@Decorator</literal>。"
 
 #. Tag: programlisting
-#: decorators.xml:35
+#: decorators.xml:39
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
+
+#. Tag: para
+#: decorators.xml:41
 #, no-c-format
 msgid ""
+"The decorator implements the methods of the decorated type that it wants to "
+"intercept."
+msgstr ""
+
+#. Tag: programlisting
+#: decorators.xml:45
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[@Decorator\n"
-"public abstract class LargeTransactionDecorator \n"
-"        implements Account {\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    @Decorates Account account;\n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      ...\n"
+"   }\n"
 "    \n"
-"    @PersistenceContext EntityManager em;\n"
-"    \n"
-"    public void withdraw(BigDecimal amount) {\n"
-"        account.withdraw(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedWithdrawl(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
-"    public void deposit(BigDecimal amount);\n"
-"        account.deposit(amount);\n"
-"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
-"            em.persist( new LoggedDeposit(amount) );\n"
-"        }\n"
-"    }\n"
-"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      ...\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Decorator\n"
@@ -142,138 +173,236 @@
 "}]]>"
 
 #. Tag: para
-#: decorators.xml:37
-#, no-c-format
+#: decorators.xml:47
+#, fuzzy, no-c-format
 msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
+"Unlike other beans, a decorator may be an abstract class. Therefore, if "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
-msgstr "和其它單純的 Web Bean 不同的是,裝飾器可能會是個抽象類別(abstract class)。若裝飾器無須為被裝飾之介面的特定 method 進行任何特殊動作的話,您便無須實做該 method。"
+msgstr ""
+"和其它單純的 Web Bean 不同的是,裝飾器可能會是個抽象類別(abstract class)。"
+"若裝飾器無須為被裝飾之介面的特定 method 進行任何特殊動作的話,您便無須實做該 "
+"method。"
 
+#. Tag: para
+#: decorators.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"Interceptors for a method are called before decorators that apply to the "
+"method."
+msgstr "一個 method 的攔截器會於套用至該 method 的裝飾器之前先被調用。"
+
 #. Tag: title
-#: decorators.xml:43
-#, no-c-format
-msgid "Delegate attributes"
+#: decorators.xml:57
+#, fuzzy, no-c-format
+msgid "Delegate object"
 msgstr "Delegate(類別;表示委派)屬性"
 
 #. Tag: para
-#: decorators.xml:45
+#: decorators.xml:59
 #, no-c-format
 msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
-msgstr "所有的裝飾器都有個 <emphasis>delegate 屬性</emphasis>。delegate 屬性的類型以及綁定類型可斷定裝飾器應綁定至哪些 Web Bean。delegate 屬性類型必須實做或是延伸裝飾器所實做的所有介面。"
+"Decorators have a special injection point, called the <emphasis>delegate "
+"injection point</emphasis>, with the same type as the beans they decorate, "
+"and the annotation <literal>@Delegate</literal>. There must be exactly one "
+"delegate injection point, which can be a constructor parameter, initializer "
+"method parameter or injected field."
+msgstr ""
 
-#. Tag: para
-#: decorators.xml:50
-#, no-c-format
-msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
-msgstr "下列 delegate 屬性指出裝飾器已綁定至所有實做 <literal>Account</literal> 的 Web Bean:"
-
 #. Tag: programlisting
-#: decorators.xml:53
+#: decorators.xml:65
 #, no-c-format
-msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr "<![CDATA[@Decorates Account account;]]>"
-
-#. Tag: para
-#: decorators.xml:55
-#, no-c-format
 msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
-msgstr "Delegate 屬性可指定一個 binding annotation(綁定註解)。如此一來裝飾器便只會綁定至含有相同 binding 的 Web Bean。"
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 
-#. Tag: programlisting
-#: decorators.xml:58
-#, no-c-format
-msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
-
 #. Tag: para
-#: decorators.xml:60
-#, no-c-format
-msgid "A decorator is bound to any Web Bean which:"
+#: decorators.xml:67
+#, fuzzy, no-c-format
+msgid "A decorator is bound to any bean which:"
 msgstr "一個裝飾器會綁定至任何符合以下條件的 Web Bean:"
 
 #. Tag: para
-#: decorators.xml:64
-#, no-c-format
-msgid "has the type of the delegate attribute as an API type, and"
+#: decorators.xml:71
+#, fuzzy, no-c-format
+msgid "has the type of the delegate injection point as a bean type, and"
 msgstr "擁有一個 API 類型的 delegate 屬性類型,以及"
 
 #. Tag: para
-#: decorators.xml:67
-#, no-c-format
-msgid "has all binding types that are declared by the delegate attribute."
+#: decorators.xml:74
+#, fuzzy, no-c-format
+msgid "has all qualifiers that are declared at the delegate injection point."
 msgstr "擁有 delegate 屬性所宣告的所有綁定類型。"
 
 #. Tag: para
-#: decorators.xml:71
-#, no-c-format
+#: decorators.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
-msgstr "裝飾器能夠引動 delegate 屬性,這和透過一個攔截器調用 <literal>InvocationContext.proceed()</literal> 的效果大致相同。"
+"This delegate injection point specifies that the decorator is bound to all "
+"beans that implement <literal>Account</literal>:"
+msgstr ""
+"下列 delegate 屬性指出裝飾器已綁定至所有實做 <literal>Account</literal> 的 "
+"Web Bean:"
 
+#. Tag: programlisting
+#: decorators.xml:83
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Any Account account;]]>"
+msgstr "<![CDATA[@Decorates Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:85
+#, fuzzy, no-c-format
+msgid ""
+"A delegate injection point may specify any number of qualifier annotations. "
+"The decorator will only be bound to beans with the same qualifiers."
+msgstr ""
+"Delegate 屬性可指定一個 binding annotation(綁定註解)。如此一來裝飾器便只會"
+"綁定至含有相同 binding 的 Web Bean。"
+
+#. Tag: programlisting
+#: decorators.xml:90
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Delegate @Foreign Account account;]]>"
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
+
+#. Tag: para
+#: decorators.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"The decorator may invoke the delegate object, which has much the same effect "
+"as calling <literal>InvocationContext.proceed()</literal> from an "
+"interceptor. The main difference is that the decorator can invoke "
+"<emphasis>any</emphasis> business method on the delegate object."
+msgstr ""
+"裝飾器能夠引動 delegate 屬性,這和透過一個攔截器調用 "
+"<literal>InvocationContext.proceed()</literal> 的效果大致相同。"
+
+#. Tag: programlisting
+#: decorators.xml:98
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator\n"
+"      implements Account {\n"
+"   @Inject @Delegate @Any Account account;\n"
+"\n"
+"   @PersistenceContext EntityManager em;\n"
+"    \n"
+"   public void withdraw(BigDecimal amount) {\n"
+"      account.withdraw(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedWithdrawl(amount) );\n"
+"      }\n"
+"   }\n"
+"    \n"
+"   public void deposit(BigDecimal amount);\n"
+"      account.deposit(amount);\n"
+"      if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"         em.persist( new LoggedDeposit(amount) );\n"
+"      }\n"
+"   }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
+
 #. Tag: title
-#: decorators.xml:78
+#: decorators.xml:103
 #, no-c-format
 msgid "Enabling decorators"
 msgstr "啟用裝飾器"
 
 #. Tag: para
-#: decorators.xml:80
+#: decorators.xml:105
 #, no-c-format
 msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
-msgstr "我們需要在 <literal>web-beans.xml</literal> 中<emphasis>啟用</emphasis>我們的裝飾器。"
+"By default, all decorators are disabled. We need to <emphasis>enable</"
+"emphasis> our decorator in the <literal>beans.xml</literal> descriptor of a "
+"bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: decorators.xml:83
+#: decorators.xml:111
 #, no-c-format
 msgid ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <decorators>\n"
+"         <class>org.mycompany.myapp.LargeTransactionDecorator</class>\n"
+"   </decorators>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Decorators>\n"
-"    <myapp:LargeTransactionDecorator/>\n"
-"</Decorators>]]>"
 
 #. Tag: para
-#: decorators.xml:85
-#, no-c-format
+#: decorators.xml:113
+#, fuzzy, no-c-format
 msgid ""
 "This declaration serves the same purpose for decorators that the "
-"<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr "此宣告(declaration)對於裝飾器的目的和 <literal>&lt;Interceptors&gt;</literal> 宣告對於攔截器的目的是相同的:"
+"<literal>&lt;interceptors&gt;</literal> declaration serves for interceptors:"
+msgstr ""
+"此宣告(declaration)對於裝飾器的目的和 <literal>&lt;Interceptors&gt;</"
+"literal> 宣告對於攔截器的目的是相同的:"
 
 #. Tag: para
-#: decorators.xml:90
+#: decorators.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
 "ensuring deterministic behavior, and"
-msgstr "它能讓我們為我們系統中所有的裝飾器指定一個全排序(total ordering),以確保確定性的特性,並且"
+msgstr ""
+"它能讓我們為我們系統中所有的裝飾器指定一個全排序(total ordering),以確保確"
+"定性的特性,並且"
 
 #. Tag: para
-#: decorators.xml:94
+#: decorators.xml:126
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
 msgstr "它讓我們能夠在建置時啟用或停用裝飾器類別。"
 
-#. Tag: para
-#: decorators.xml:98
-#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr "一個 method 的攔截器會於套用至該 method 的裝飾器之前先被調用。"
+#~ msgid ""
+#~ "All decorators have a <emphasis>delegate attribute</emphasis>. The type "
+#~ "and binding types of the delegate attribute determine which Web Beans the "
+#~ "decorator is bound to. The delegate attribute type must implement or "
+#~ "extend all interfaces implemented by the decorator."
+#~ msgstr ""
+#~ "所有的裝飾器都有個 <emphasis>delegate 屬性</emphasis>。delegate 屬性的類型"
+#~ "以及綁定類型可斷定裝飾器應綁定至哪些 Web Bean。delegate 屬性類型必須實做或"
+#~ "是延伸裝飾器所實做的所有介面。"
 
+#~ msgid ""
+#~ "We need to <emphasis>enable</emphasis> our decorator in <literal>web-"
+#~ "beans.xml</literal>."
+#~ msgstr ""
+#~ "我們需要在 <literal>web-beans.xml</literal> 中<emphasis>啟用</emphasis>我"
+#~ "們的裝飾器。"

Added: doc/trunk/reference/zh-TW/dependencies.po
===================================================================
--- doc/trunk/reference/zh-TW/dependencies.po	                        (rev 0)
+++ doc/trunk/reference/zh-TW/dependencies.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,134 @@
+# Language zh-TW translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"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 "Weld project dependencies"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:7
+#, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink src=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:13
+#, no-c-format
+msgid "Artifacts coming from Sun"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:21 dependencies.xml:110
+#, no-c-format
+msgid "Artifact"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:24 dependencies.xml:113
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:33
+#, no-c-format
+msgid "javax.ejb:ejb-api:3.1"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:36 dependencies.xml:44 dependencies.xml:52
+#: dependencies.xml:60 dependencies.xml:68 dependencies.xml:76
+#: dependencies.xml:128
+#, no-c-format
+msgid "compile"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:41
+#, no-c-format
+msgid "javax.faces:jsf-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:49
+#, no-c-format
+msgid "javax.el:el-api:2.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:57
+#, no-c-format
+msgid "javax.persistence:persistence-api:2.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:65
+#, no-c-format
+msgid "javax.servlet:servlet-api:3.0"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:73
+#, no-c-format
+msgid "javax.interceptor:interceptor-api:1.1"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:81
+#, no-c-format
+msgid "org.glasfish.web:el-impl:2.1.2"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:84 dependencies.xml:92
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:89
+#, no-c-format
+msgid "javax.faces:jsf-impl:2.0.x"
+msgstr ""
+
+#. Tag: title
+#: dependencies.xml:101
+#, no-c-format
+msgid "Artifacts coming from Hibernate"
+msgstr ""
+
+#. Tag: para
+#: dependencies.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: dependencies.xml:125
+#, no-c-format
+msgid "javax.validation:validation-api"
+msgstr ""
+
+#. Tag: ulink
+#: dependencies.xml:131
+#, no-c-format
+msgid "BVAL-193"
+msgstr ""

Modified: doc/trunk/reference/zh-TW/ee.po
===================================================================
--- doc/trunk/reference/zh-TW/ee.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/ee.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ee\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 12:12+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -24,45 +24,93 @@
 
 #. Tag: para
 #: ee.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
-msgstr "Web Bean 已完整整合入 Java EE 環境中。Web Bean 可存取 Java EE 資源以及 JPA persistence context。它們可能會被使用於 JSF 以及 JSP 網頁中的 Unified EL 表示式中。它們也可被注入一些物件中,例如 Servlets 以及訊息導向的 Bean 中(非 Web Beans)。"
+"CDI is fully integrated into the Java EE environment. Beans have access to "
+"Java EE resources and JPA persistence contexts. They may be used in Unified "
+"EL expressions in JSF and JSP pages. They may even be injected into other "
+"platform components, such as servlets and message-driven Beans, which are "
+"not beans themselves."
+msgstr ""
+"Web Bean 已完整整合入 Java EE 環境中。Web Bean 可存取 Java EE 資源以及 JPA "
+"persistence context。它們可能會被使用於 JSF 以及 JSP 網頁中的 Unified EL 表示"
+"式中。它們也可被注入一些物件中,例如 Servlets 以及訊息導向的 Bean 中(非 Web "
+"Beans)。"
 
 #. Tag: title
-#: ee.xml:12
+#: ee.xml:13
 #, no-c-format
-msgid "Injecting Java EE resources into a Web Bean"
-msgstr "將 Java EE 資源注入 Web Bean 中"
+msgid "Built-in beans"
+msgstr ""
 
 #. Tag: para
-#: ee.xml:14
+#: ee.xml:15
 #, no-c-format
 msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:22
+#, no-c-format
+msgid "the current JTA <literal>UserTransaction</literal>,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:27
+#, no-c-format
+msgid ""
+"a <literal>Principal</literal> representing the current caller identity,"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:32
+#, no-c-format
+msgid ""
+"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"Validation</ulink> <literal>ValidationFactory</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: ee.xml:38
+#, no-c-format
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: ee.xml:47
+#, fuzzy, no-c-format
+msgid "Injecting Java EE resources into a bean"
+msgstr "將 Java EE 資源注入 Web Bean 中"
+
+#. Tag: para
+#: ee.xml:49
+#, fuzzy, no-c-format
+msgid ""
+"All managed beans may take advantage of Java EE component environment "
+"injection using <literal>@Resource</literal>, <literal>@EJB</literal>, "
+"<literal>@PersistenceContext</literal>, <literal>@PeristenceUnit</literal> "
+"and <literal>@WebServiceRef</literal>. We've already seen a couple of "
 "examples of this, though we didn't pay much attention at the time:"
 msgstr ""
-"所有基本與企業的 Web Bean 都能透過 <literal>@Resource</literal>、<literal>@EJB</literal> 以及 "
-"<literal>@PersistenceContext</literal> 來有效利用 Java 依賴注入(dependency injection)。我們早已見過了這方面的範例,不過當時我們並未詳細討論到:"
+"所有基本與企業的 Web Bean 都能透過 <literal>@Resource</literal>、"
+"<literal>@EJB</literal> 以及 <literal>@PersistenceContext</literal> 來有效利"
+"用 Java 依賴注入(dependency injection)。我們早已見過了這方面的範例,不過當"
+"時我們並未詳細討論到:"
 
 #. Tag: programlisting
-#: ee.xml:19
-#, no-c-format
+#: ee.xml:56
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
+"   @Resource UserTransaction transaction;\n"
 "\n"
-"    @Resource Transaction transaction;\n"
-"\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
-"    \n"
+"   @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Interceptor\n"
@@ -76,17 +124,14 @@
 "}]]>"
 
 #. Tag: programlisting
-#: ee.xml:21
-#, no-c-format
+#: ee.xml:58
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Login {\n"
-"\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
-"    \n"
+"public class Login implements Serializable {\n"
+"   @Inject Credentials credentials;\n"
+"   @PersistenceContext EntityManager userDatabase;\n"
 "    ...\n"
-"\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@SessionScoped\n"
@@ -100,62 +145,66 @@
 "}]]>"
 
 #. Tag: para
-#: ee.xml:23
-#, no-c-format
+#: ee.xml:60
+#, fuzzy, no-c-format
 msgid ""
 "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
-msgstr "所有基本與企業的 Web Bean 也都支援 Java EE <literal>@PostConstruct</literal> 和 <literal>@PreDestroy</literal> 的 callback。<literal>@PostConstruct</literal> 這個 method 會在<emphasis>所有</emphasis>注入被進行後才會被調用。"
+"literal> callbacks are also supported for all managed beans. The "
+"<literal>@PostConstruct</literal> method is called after <emphasis>all</"
+"emphasis> injection has been performed."
+msgstr ""
+"所有基本與企業的 Web Bean 也都支援 Java EE <literal>@PostConstruct</literal> "
+"和 <literal>@PreDestroy</literal> 的 callback。<literal>@PostConstruct</"
+"literal> 這個 method 會在<emphasis>所有</emphasis>注入被進行後才會被調用。"
 
 #. Tag: para
-#: ee.xml:28
+#: ee.xml:66
 #, no-c-format
 msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr "在此有項需要注意的限制:基本的 Web Bean 並不支援 <literal>@PersistenceContext(type=EXTENDED)</literal>。"
+"Of course, we advise that component environment injection be used to define "
+"CDI resources, and that typesafe injection be used in application code."
+msgstr ""
 
 #. Tag: title
-#: ee.xml:35
-#, no-c-format
-msgid "Calling a Web Bean from a Servlet"
+#: ee.xml:74
+#, fuzzy, no-c-format
+msgid "Calling a bean from a servlet"
 msgstr "透過一個 Servlet 來調用 Web Bean"
 
 #. Tag: para
-#: ee.xml:37
-#, no-c-format
+#: ee.xml:76
+#, fuzzy, no-c-format
 msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
-msgstr "在 Java EE 6 中透過 Servlet 來使用 Web Bean 相當地簡單。只要使用 Web Bean 欄位或是 initializer method 注入來注入 Web Bean 即可。"
+"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
+"using field or initializer method injection."
+msgstr ""
+"在 Java EE 6 中透過 Servlet 來使用 Web Bean 相當地簡單。只要使用 Web Bean 欄"
+"位或是 initializer method 注入來注入 Web Bean 即可。"
 
 #. Tag: programlisting
-#: ee.xml:40
-#, no-c-format
+#: ee.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"public class Login extends HttpServlet {\n"
+"<![CDATA[public class Login extends HttpServlet {\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject Login login;\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @Current Login login;\n"
-"\n"
-"    @Override\n"
-"    public void service(HttpServletRequest request, HttpServletResponse "
+"   @Override\n"
+"   public void service(HttpServletRequest request, HttpServletResponse "
 "response)\n"
-"        throws ServletException, IOException {\n"
-"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
-"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
-"        login.login();\n"
-"        if ( login.isLoggedIn() ) {\n"
-"            response.sendRedirect(\"/home.jsp\");\n"
-"        }\n"
-"        else {\n"
-"            response.sendRedirect(\"/loginError.jsp\");\n"
-"        }\n"
-"    }\n"
+"      throws ServletException, IOException {\n"
+"      credentials.setUsername(request.getParameter(\"username\")):\n"
+"      credentials.setPassword(request.getParameter(\"password\")):\n"
+"      login.login();\n"
+"      if ( login.isLoggedIn() ) {\n"
+"         response.sendRedirect(\"/home.jsp\");\n"
+"      }\n"
+"      else {\n"
+"         response.sendRedirect(\"/loginError.jsp\");\n"
+"      }\n"
+"   }\n"
 "            \n"
-"}"
+"}]]>"
 msgstr ""
 "public class Login extends HttpServlet {\n"
 "\n"
@@ -180,54 +229,52 @@
 "}"
 
 #. Tag: para
-#: ee.xml:42
-#, no-c-format
+#: ee.xml:83
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
+"Since instances of servlets are shared across all incoming threads, the bean "
+"client proxy takes care of routing method invocations from the servlet to "
+"the correct instances of <literal>Credentials</literal> and <literal>Login</"
+"literal> for the current request and HTTP session."
 msgstr ""
-"Web Bean 的客戶端 proxy 能為目前的請求以及 HTTP session 處理由 Servlet 至 <literal>Credentials</literal> 和 "
-"<literal>Login</literal> 的正確事例的 routing method 調用。"
+"Web Bean 的客戶端 proxy 能為目前的請求以及 HTTP session 處理由 Servlet 至 "
+"<literal>Credentials</literal> 和 <literal>Login</literal> 的正確事例的 "
+"routing method 調用。"
 
 #. Tag: title
-#: ee.xml:49
-#, no-c-format
-msgid "Calling a Web Bean from a Message-Driven Bean"
+#: ee.xml:92
+#, fuzzy, no-c-format
+msgid "Calling a bean from a message-driven bean"
 msgstr "透過訊息導向的 Bean 來調用 Web Bean"
 
 #. Tag: para
-#: ee.xml:51
+#: ee.xml:94
 #, no-c-format
 msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
-msgstr "Web Bean 注入適用於所有 EJB,儘管它們不是由 Web Bean 管理員所控制(比方說若它們是透過直接的 JNDI 搜尋或是透過使用 <literal>@EJB</literal> 來被取得的情況下)。特別是,您可在訊息導向的 Bean 中使用 Web Bean 注入,不過這些 Bean 並不被視為是 Web Bean 因為您無法注入它們。"
+"CDI injection applies to all EJBs, even when they aren't managed beans. In "
+"particular, you can use CDI injection in message-driven beans, which are by "
+"nature not contextual objects."
+msgstr ""
 
 #. Tag: para
-#: ee.xml:57
-#, no-c-format
-msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
+#: ee.xml:99
+#, fuzzy, no-c-format
+msgid "You can even use CDI interceptor bindings for message-driven Beans."
 msgstr "針對於訊息導向的 Bean,您甚至可使用 Web Bean 攔截器綁定。"
 
 #. Tag: programlisting
-#: ee.xml:59
-#, no-c-format
+#: ee.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"@Transactional @MessageDriven\n"
+"<![CDATA[@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
+"   @Inject Inventory inventory;\n"
+"   @PersistenceContext EntityManager em;\n"
 "\n"
-"    @Current Inventory inventory;\n"
-"    @PersistenceContext EntityManager em;\n"
-"\n"
-"    public void onMessage(Message message) {\n"
-"        ...\n"
-"    }\n"
-"            \n"
-"}"
+"   public void onMessage(Message message) {\n"
+"      ...\n"
+"   }\n"
+"}]]>"
 msgstr ""
 "@Transactional @MessageDriven\n"
 "public class ProcessOrder implements MessageListener {\n"
@@ -242,29 +289,33 @@
 "}"
 
 #. Tag: para
-#: ee.xml:61
-#, no-c-format
+#: ee.xml:103
+#, fuzzy, no-c-format
 msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr "因此,在 Web Bean 環境下,取得訊息是相當地簡單的。不過請注意,當訊息提交至一個訊息導向的 Bean 時,不會有可用的 session 或是對話 context。只有 <literal>@RequestScoped</literal> 和 <literal>@ApplicationScoped</literal> Web Bean 可使用。"
+"Please note that there is no session or conversation context available when "
+"a message is delivered to a message-driven bean. Only "
+"<literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> "
+"beans are available."
+msgstr ""
+"因此,在 Web Bean 環境下,取得訊息是相當地簡單的。不過請注意,當訊息提交至一"
+"個訊息導向的 Bean 時,不會有可用的 session 或是對話 context。只有 "
+"<literal>@RequestScoped</literal> 和 <literal>@ApplicationScoped</literal> "
+"Web Bean 可使用。"
 
 #. Tag: para
-#: ee.xml:66
+#: ee.xml:109
 #, no-c-format
-msgid "It's also easy to send messages using Web Beans."
-msgstr "透過使用 Web Bean 來傳送訊息也相當地簡單。"
+msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
+msgstr ""
 
 #. Tag: title
-#: ee.xml:71
+#: ee.xml:116
 #, no-c-format
 msgid "JMS endpoints"
 msgstr "JMS 端點"
 
 #. Tag: para
-#: ee.xml:73
+#: ee.xml:118
 #, no-c-format
 msgid ""
 "Sending messages using JMS can be quite complex, because of the number of "
@@ -277,81 +328,94 @@
 "literal>. Each of these objects has its own lifecycle and threading model "
 "that we need to worry about."
 msgstr ""
-"基於需要處理許多不同的物件,因此透過使用 JMS 來傳送訊息可能會相當複雜。針對於 queue,我們有 <literal>Queue</"
-"literal>、<literal>QueueConnectionFactory</literal>、<literal>QueueConnection</literal>、<literal>QueueSession</literal> 以及 <literal>QueueSender</literal>。針對於 topic 我們有 <literal>Topic</literal>、<literal>TopicConnectionFactory</literal>、<literal>TopicConnection</"
-"literal>、<literal>TopicSession</literal> 以及 <literal>TopicPublisher</literal>。針對於各個這些物件,我們都需要去顧及它們自己各別的生命週期和執行緒模型(threading model)。"
+"基於需要處理許多不同的物件,因此透過使用 JMS 來傳送訊息可能會相當複雜。針對"
+"於 queue,我們有 <literal>Queue</literal>、<literal>QueueConnectionFactory</"
+"literal>、<literal>QueueConnection</literal>、<literal>QueueSession</"
+"literal> 以及 <literal>QueueSender</literal>。針對於 topic 我們有 "
+"<literal>Topic</literal>、<literal>TopicConnectionFactory</literal>、"
+"<literal>TopicConnection</literal>、<literal>TopicSession</literal> 以及 "
+"<literal>TopicPublisher</literal>。針對於各個這些物件,我們都需要去顧及它們自"
+"己各別的生命週期和執行緒模型(threading model)。"
 
 #. Tag: para
-#: ee.xml:82
+#: ee.xml:127
 #, no-c-format
 msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
-msgstr "Web Bean 會全部為我們處理。我們只需要在 <literal>web-beans.xml</literal> 中宣告 queue 或是 topic,指定關聯的綁定類型和連接因數(connection factory)。"
-
-#. Tag: programlisting
-#: ee.xml:86
-#, no-c-format
-msgid ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
 msgstr ""
-"<![CDATA[<Queue>\n"
-"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
-"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:OrderProcessor/>    \n"
-"</Queue>]]>"
 
 #. Tag: programlisting
-#: ee.xml:88
+#: ee.xml:131
 #, no-c-format
 msgid ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
+"<![CDATA[public class OrderResources {\n"
+"   @Resource(name=\"jms/ConnectionFactory\")\n"
+"   private ConnectionFactory connectionFactory;\n"
+"  \n"
+"   @Resource(name=\"jms/OrderQueue\")\n"
+"   private Queue orderQueue;\n"
+"  \n"
+"   @Produces @OrderConnection\n"
+"   public Connection createOrderConnection() throws JMSException {\n"
+"    return connectionFactory.createConnection();\n"
+"   }\n"
+"  \n"
+"   public void closeOrderConnection(@Disposes @OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      connection.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderSession\n"
+"   public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
+"         throws JMSException {\n"
+"      return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderSession(@Disposes @OrderSession Session session)\n"
+"         throws JMSException {\n"
+"      session.close();\n"
+"   }\n"
+"  \n"
+"   @Produces @OrderMessageProducer\n"
+"   public MessageProducer createOrderMessageProducer(@OrderSession Session "
+"session)\n"
+"         throws JMSException {\n"
+"      return session.createProducer(orderQueue);\n"
+"   }\n"
+"  \n"
+"   public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
+"         throws JMSException {\n"
+"      producer.close();\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[<Topic>\n"
-"    <destination>java:comp/env/jms/StockPrices</destination>\n"
-"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
-"    <myapp:StockPrices/>    \n"
-"</Topic>]]>"
 
 #. Tag: para
-#: ee.xml:90
+#: ee.xml:133
 #, no-c-format
 msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
+"In this example, we can just inject the prepared <literal>MessageProducer</"
+"literal>, <literal>Connection</literal> or <literal>QueueSession</literal>:"
 msgstr ""
-"現在我們只要為 queue 注入 <literal>Queue</literal>、<literal>QueueConnection</literal>、<literal>QueueSession</literal> 或 "
-"<literal>QueueSender</literal>,或是為 topic 注入 <literal>Topic</literal>、<literal>TopicConnection</literal>、<literal>TopicSession</literal> 或是 "
-"<literal>TopicPublisher</literal> 即可。"
 
 #. Tag: programlisting
-#: ee.xml:96
-#, no-c-format
+#: ee.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"@OrderProcessor QueueSender orderSender;\n"
-"@OrderProcessor QueueSession orderSession;\n"
+"<![CDATA[@Inject Order order;\n"
+"@Inject @OrderMessageProducer MessageProducer producer;\n"
+"@Inject @OrderSession QueueSession orderSession;\n"
 "\n"
 "public void sendMessage() {\n"
-"    MapMessage msg = orderSession.createMapMessage();\n"
-"    ...\n"
-"    orderSender.send(msg);\n"
-"}"
+"   MapMessage msg = orderSession.createMapMessage();\n"
+"   msg.setLong(\"orderId\", order.getId());\n"
+"   ...\n"
+"   producer.send(msg);\n"
+"}]]>"
 msgstr ""
 "@OrderProcessor QueueSender orderSender;\n"
 "@OrderProcessor QueueSession orderSession;\n"
@@ -362,57 +426,138 @@
 "    orderSender.send(msg);\n"
 "}"
 
-#. Tag: programlisting
-#: ee.xml:98
-#, no-c-format
-msgid ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-msgstr ""
-"@StockPrices TopicPublisher pricePublisher;\n"
-"@StockPrices TopicSession priceSession;\n"
-"\n"
-"public void sendMessage(String price) {\n"
-"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
-"}"
-
 #. Tag: para
-#: ee.xml:100
-#, no-c-format
+#: ee.xml:144
+#, fuzzy, no-c-format
 msgid ""
 "The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
+"container."
 msgstr "被注入的 JMS 物件的生命週期完全由 Web Bean 管理員所控制。"
 
 #. Tag: title
-#: ee.xml:106
+#: ee.xml:151
 #, no-c-format
 msgid "Packaging and deployment"
 msgstr "封裝和建置"
 
 #. Tag: para
-#: ee.xml:108
-#, no-c-format
+#: ee.xml:153
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs &#151; any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
-msgstr "Web Bean 不會定義任何特殊的建置 archive。您可將 Web Bean 封裝在 JARs、EJB-JARs 或是 WARs &#151;  中,應用程式 classpath 中的任何建置位置上。不過,各個包含著 Web Bean 的 archive 在 <literal>META-INF</literal> 或是 <literal>WEB-INF</literal> 目錄中都必須包含著一個稱為 <literal>web-beans.xml</literal> 的檔案。該檔案能是空的。建置於一個沒有 <literal>web-beans.xml</literal> 檔案的 archive 中的 Web Bean 將無法使用於應用程式中。"
+"CDI doesn't define any special deployment archive. You can package beans in "
+"JARs, EJB-JARs or WARs&#8212;any deployment location in the application "
+"classpath. However, the archive must be a \"bean archive\". That means each "
+"archive that contains beans <emphasis>must</emphasis> include a file named "
+"<literal>beans.xml</literal> in the <literal>META-INF</literal> directory of "
+"the classpath or <literal>WEB-INF</literal> directory of the web root (for "
+"WAR archives). The file may be empty. Beans deployed in archives that do not "
+"have a <literal>beans.xml</literal> file will not be available for use in "
+"the application."
+msgstr ""
+"Web Bean 不會定義任何特殊的建置 archive。您可將 Web Bean 封裝在 JARs、EJB-"
+"JARs 或是 WARs &#151;  中,應用程式 classpath 中的任何建置位置上。不過,各個"
+"包含著 Web Bean 的 archive 在 <literal>META-INF</literal> 或是 <literal>WEB-"
+"INF</literal> 目錄中都必須包含著一個稱為 <literal>web-beans.xml</literal> 的"
+"檔案。該檔案能是空的。建置於一個沒有 <literal>web-beans.xml</literal> 檔案的 "
+"archive 中的 Web Bean 將無法使用於應用程式中。"
 
 #. Tag: para
-#: ee.xml:116
-#, no-c-format
+#: ee.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr "對於 Java SE 的執行來說,Web Bean 可被建置於任何位置上,同時 EJB 亦可被建置來讓可崁入的 EJB Lite container 執行。再次強調,各個位置都必須包含著一個 <literal>web-beans.xml</literal> 檔案。"
+"In an embeddable EJB container, beans may be deployed in any location in "
+"which EJBs may be deployed. Again, each location must contain a "
+"<literal>beans.xml</literal> file."
+msgstr ""
+"對於 Java SE 的執行來說,Web Bean 可被建置於任何位置上,同時 EJB 亦可被建置來"
+"讓可崁入的 EJB Lite container 執行。再次強調,各個位置都必須包含著一個 "
+"<literal>web-beans.xml</literal> 檔案。"
 
+#~ msgid ""
+#~ "There is one restriction to be aware of here: <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal> is not supported for simple Web Beans."
+#~ msgstr ""
+#~ "在此有項需要注意的限制:基本的 Web Bean 並不支援 "
+#~ "<literal>@PersistenceContext(type=EXTENDED)</literal>。"
+
+#~ msgid ""
+#~ "Web Beans injection applies to all EJBs, even when they aren't under the "
+#~ "control of the Web Bean manager (if they were obtained by direct JNDI "
+#~ "lookup, or injection using <literal>@EJB</literal>, for example. In "
+#~ "particular, you can use Web Beans injection in Message-Driven Beans, "
+#~ "which are not considered Web Beans because you can't inject them."
+#~ msgstr ""
+#~ "Web Bean 注入適用於所有 EJB,儘管它們不是由 Web Bean 管理員所控制(比方說"
+#~ "若它們是透過直接的 JNDI 搜尋或是透過使用 <literal>@EJB</literal> 來被取得"
+#~ "的情況下)。特別是,您可在訊息導向的 Bean 中使用 Web Bean 注入,不過這些 "
+#~ "Bean 並不被視為是 Web Bean 因為您無法注入它們。"
+
+#~ msgid "It's also easy to send messages using Web Beans."
+#~ msgstr "透過使用 Web Bean 來傳送訊息也相當地簡單。"
+
+#~ msgid ""
+#~ "Web Beans takes care of all this for us. All we need to do is declare the "
+#~ "queue or topic in <literal>web-beans.xml</literal>, specifying an "
+#~ "associated binding type and connection factory."
+#~ msgstr ""
+#~ "Web Bean 會全部為我們處理。我們只需要在 <literal>web-beans.xml</literal> "
+#~ "中宣告 queue 或是 topic,指定關聯的綁定類型和連接因數(connection "
+#~ "factory)。"
+
+#~ msgid ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Queue>\n"
+#~ "    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:OrderProcessor/>    \n"
+#~ "</Queue>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Topic>\n"
+#~ "    <destination>java:comp/env/jms/StockPrices</destination>\n"
+#~ "    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+#~ "connectionFactory>\n"
+#~ "    <myapp:StockPrices/>    \n"
+#~ "</Topic>]]>"
+
+#~ msgid ""
+#~ "Now we can just inject the <literal>Queue</literal>, "
+#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
+#~ "<literal>QueueSender</literal> for a queue, or the <literal>Topic</"
+#~ "literal>, <literal>TopicConnection</literal>, <literal>TopicSession</"
+#~ "literal> or <literal>TopicPublisher</literal> for a topic."
+#~ msgstr ""
+#~ "現在我們只要為 queue 注入 <literal>Queue</literal>、"
+#~ "<literal>QueueConnection</literal>、<literal>QueueSession</literal> 或 "
+#~ "<literal>QueueSender</literal>,或是為 topic 注入 <literal>Topic</"
+#~ "literal>、<literal>TopicConnection</literal>、<literal>TopicSession</"
+#~ "literal> 或是 <literal>TopicPublisher</literal> 即可。"
+
+#~ msgid ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"
+#~ msgstr ""
+#~ "@StockPrices TopicPublisher pricePublisher;\n"
+#~ "@StockPrices TopicSession priceSession;\n"
+#~ "\n"
+#~ "public void sendMessage(String price) {\n"
+#~ "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+#~ "}"

Modified: doc/trunk/reference/zh-TW/environments.po
===================================================================
--- doc/trunk/reference/zh-TW/environments.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/environments.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-05 20:42+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,212 +17,237 @@
 #. Tag: title
 #: environments.xml:4
 #, no-c-format
-msgid "Application Servers and environments supported by Web Beans"
+msgid "Application servers and environments supported by Weld"
 msgstr ""
 
 #. Tag: title
 #: environments.xml:7
 #, no-c-format
-msgid "Using Web Beans with JBoss AS"
+msgid "Using Weld with JBoss AS"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:9
 #, no-c-format
 msgid ""
-"No special configuration of your application, beyond adding either "
-"<literal>META-INF/beans.xml</literal> or <literal>WEB-INF/beans.xml</"
-"literal> is needed."
+"If you are using JBoss AS 5.2, no additional configuration is required to "
+"use Weld (or CDI for that matter). All you need to do is make your "
+"application a bean bean archive by adding <literal>META-INF/beans.xml</"
+"literal> to the classpath or <literal>WEB-INF/beans.xml</literal> to the web "
+"root!"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:15
 #, no-c-format
 msgid ""
-"If you are using JBoss AS 5.0.1.GA then you'll need to install Web Beans as "
-"an extra. First we need to tell Web Beans where JBoss is located. Edit "
-"<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
-"home</literal> property. For example:"
+"Unfortunately, you can't use Weld with earlier versions of JBoss AS since "
+"they are missing key libraries. If you want to learn how to upgrade the "
+"built-in support on JBoss AS 5.2, then read on."
 msgstr ""
 
+#. Tag: para
+#: environments.xml:20
+#, no-c-format
+msgid ""
+"Upgrading the Weld add-on is easy. The Weld distribution has a build that "
+"can take care of this task for you in a single command. First, we need to "
+"tell Weld where JBoss AS is located. Create a new file named <literal>local."
+"build.properties</literal> in the examples directory of the Weld "
+"distribution and assign the path of your JBoss AS installation to the "
+"property key <literal>jboss.home</literal>, as follows:"
+msgstr ""
+
 #. Tag: programlisting
-#: environments.xml:22
+#: environments.xml:27
 #, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.x]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:24
+#: environments.xml:29
 #, no-c-format
-msgid "Now we can install Web Beans:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:28
+#: environments.xml:33
 #, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"$> cd jboss-as\n"
+"$> ant update"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:31
+#: environments.xml:36
 #, no-c-format
 msgid ""
-"A new deployer, <literal>webbeans.deployer</literal> is added to JBoss AS. "
-"This adds supports for JSR-299 deployments to JBoss AS, and allows Web Beans "
-"to query the EJB3 container and discover which EJBs are installed in your "
-"application."
+"A new deployer, <literal>weld.deployer</literal> is added to JBoss AS. This "
+"adds supports for JSR-299 deployments to JBoss AS, and allows Weld to query "
+"the EJB 3 container and discover which EJBs are installed in your "
+"application. It also performs an upgrade of the Javassist library, if "
+"necessary."
 msgstr ""
 
-#. Tag: para
-#: environments.xml:40
-#, no-c-format
-msgid "Web Beans is built into all releases of JBoss AS from 5.1 onwards."
-msgstr ""
-
 #. Tag: title
-#: environments.xml:47
+#: environments.xml:46
 #, no-c-format
 msgid "GlassFish"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:49
+#: environments.xml:48
 #, no-c-format
-msgid "TODO"
+msgid ""
+"Weld is also built into GlassFish from V3 onwards. Since GlassFish V3 is the "
+"Java EE 6 reference implementation, it must support all features of CDI. "
+"What better way for GlassFish to support these features than to use Weld, "
+"the JSR-299 reference implementation? Just package up your CDI application "
+"and deploy."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:53
+#: environments.xml:56
 #, no-c-format
-msgid "Servlet Containers (such as Tomcat or Jetty)"
+msgid "Servlet containers (such as Tomcat or Jetty)"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:55
+#: environments.xml:58
 #, no-c-format
 msgid ""
-"Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty "
-"6.1."
+"While JSR-299 does not require support for servlet environments, Weld can be "
+"used in any servlet container, such as Tomcat 6.0 or Jetty 6.1."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:58
+#: environments.xml:64
 #, no-c-format
 msgid ""
-"Web Beans doesn't support deploying session beans, injection using "
-"<literal>@EJB</literal>, or <literal>@PersistenceContext</literal> or using "
-"transactional events in Servlet containers."
+"There is a major limitation to using a servlet container. Weld doesn't "
+"support deploying session beans, injection using <literal>@EJB</literal> or "
+"<literal>@PersistenceContext</literal>, or using transactional events in "
+"servlet containers. For enterprise features such as these, you should really "
+"be looking at a Java EE application server."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:66
+#: environments.xml:72
 #, no-c-format
 msgid ""
-"Web Beans should be used as a web application library in a servlet "
-"container. You should place <literal>webbeans-servlet.jar</literal> in "
-"<literal>WEB-INF/lib</literal>. <literal>webbeans-servlet.jar</literal> is "
-"an \"uber-jar\" provided for your convenience. Alternatively, you could use "
-"its component jars:"
+"Weld should be used as a web application library in a servlet container. You "
+"should place <literal>weld-servlet.jar</literal> in <literal>WEB-INF/lib</"
+"literal> in the web root. <literal>weld-servlet.jar</literal> is an \"uber-"
+"jar\", meaning it bundles all the bits of Weld and CDI required for running "
+"in a servlet container, provided for your convenience. Alternatively, you "
+"could use its component jars:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:77
+#: environments.xml:84
 #, no-c-format
 msgid "jsr299-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:82
+#: environments.xml:89
 #, no-c-format
-msgid "webbeans-api.jar"
+msgid "weld-api.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:87
+#: environments.xml:94
 #, no-c-format
-msgid "webbeans-spi.jar"
+msgid "weld-spi.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:92
+#: environments.xml:99
 #, no-c-format
-msgid "webbeans-core.jar"
+msgid "weld-core.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:97
+#: environments.xml:104
 #, no-c-format
-msgid "webbeans-logging.jar"
+msgid "weld-logging.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:102
+#: environments.xml:109
 #, no-c-format
-msgid "webbeans-servlet-int.jar"
+msgid "weld-servlet-int.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:107
+#: environments.xml:114
 #, no-c-format
 msgid "javassist.jar"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:112
+#: environments.xml:119
 #, no-c-format
 msgid "dom4j.jar"
 msgstr ""
 
+#. Tag: literal
+#: environments.xml:124
+#, no-c-format
+msgid "google-collections.jar"
+msgstr ""
+
 #. Tag: para
-#: environments.xml:117
+#: environments.xml:129
 #, no-c-format
 msgid ""
-"You also need to explicitly specify the servlet listener (used to boot Web "
-"Beans, and control its interaction with requests) in <literal>web.xml</"
-"literal>:"
+"You also need to explicitly specify the servlet listener (used to boot Weld, "
+"and control its interaction with requests) in <literal>WEB-INF/web.xml</"
+"literal> in the web root:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:123
+#: environments.xml:134
 #, no-c-format
 msgid ""
 "<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
 "class>\n"
 "</listener>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:126
+#: environments.xml:137
 #, no-c-format
 msgid "Tomcat"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:128
+#: environments.xml:139
 #, no-c-format
 msgid ""
-"Tomcat has a read-only JNDI, so Web Beans can't automatically bind the "
-"Manager. To bind the Manager into JNDI, you should populate <literal>META-"
-"INF/context.xml</literal> with the following contents:"
+"Tomcat has a read-only JNDI, so Weld can't automatically bind the "
+"BeanManager extension SPI. To bind the BeanManager into JNDI, you should "
+"populate <literal>META-INF/context.xml</literal> in the web root with the "
+"following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:135
+#: environments.xml:145
 #, no-c-format
 msgid ""
 "<![CDATA[<Context>\n"
-"   <Resource name=\"app/Manager\" \n"
+"   <Resource name=\"BeanManager\" \n"
 "      auth=\"Container\"\n"
-"      type=\"javax.inject.manager.Manager\"\n"
-"      factory=\"org.jboss.webbeans.resources.ManagerObjectFactory\"/>\n"
+"      type=\"javax.enterprise.inject.spi.BeanManager\"\n"
+"      factory=\"org.jboss.weld.resources.ManagerObjectFactory\"/>\n"
 "</Context>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:137
+#: environments.xml:147
 #, no-c-format
 msgid ""
 "and make it available to your deployment by adding this to the bottom of "
@@ -230,63 +255,60 @@
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:142
+#: environments.xml:151
 #, no-c-format
 msgid ""
 "<![CDATA[<resource-env-ref>\n"
-"   <resource-env-ref-name>\n"
-"      app/Manager\n"
-"   </resource-env-ref-name>\n"
+"   <resource-env-ref-name>BeanManager</resource-env-ref-name>\n"
 "   <resource-env-ref-type>\n"
-"      javax.inject.manager.Manager\n"
+"      javax.enterprise.inject.spi.BeanManager\n"
 "   </resource-env-ref-type>\n"
 "</resource-env-ref>]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:144
+#: environments.xml:153
 #, no-c-format
 msgid ""
 "Tomcat only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:150
+#: environments.xml:158
 #, no-c-format
 msgid ""
-"Web Beans also supports Servlet injection in Tomcat. To enable this, place "
-"the <literal>webbeans-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/"
-"lib</literal>, and add the following to your <literal>META-INF/context.xml</"
-"literal>:"
+"Weld also supports Servlet injection in Tomcat. To enable this, place the "
+"<literal>weld-tomcat-support.jar</literal> in <literal>$TOMCAT_HOME/lib</"
+"literal>, and add the following to <literal>META-INF/context.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:157
+#: environments.xml:164
 #, no-c-format
 msgid ""
-"<![CDATA[<Listener className=\"org.jboss.webbeans.environment.tomcat."
-"WebBeansLifecycleListener\"/>]]>"
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:162
+#: environments.xml:169
 #, no-c-format
 msgid "Jetty"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:164
+#: environments.xml:171
 #, no-c-format
 msgid ""
-"Like Tomcat, Jetty has a read-only JNDI, so Web Beans can't automatically "
-"bind the Manager. To bind the Manager to JNDI, you should populate "
-"<literal>WEB-INF/jetty-env.xml</literal> with the following contents:"
+"Like Tomcat, Jetty has a read-only JNDI, so Weld can't automatically bind "
+"the Manager. To bind the Manager to JNDI, you should populate <literal>WEB-"
+"INF/jetty-env.xml</literal> with the following contents:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:171
+#: environments.xml:176
 #, no-c-format
 msgid ""
 "<![CDATA[<!DOCTYPE Configure PUBLIC \"-//Mort Bay Consulting//DTD Configure//"
@@ -294,13 +316,14 @@
 "   \"http://jetty.mortbay.org/configure.dtd\">\n"
 "<Configure id=\"webAppCtx\" class=\"org.mortbay.jetty.webapp.WebAppContext"
 "\">\n"
-"   <New id=\"appManager\" class=\"org.mortbay.jetty.plus.naming.Resource\">\n"
+"   <New id=\"BeanManager\" class=\"org.mortbay.jetty.plus.naming.Resource"
+"\">\n"
 "      <Arg><Ref id=\"webAppCtx\"/></Arg> \n"
-"      <Arg>app/Manager</Arg>\n"
+"      <Arg>BeanManager</Arg>\n"
 "      <Arg>\n"
 "         <New class=\"javax.naming.Reference\">\n"
-"            <Arg>javax.inject.manager.Manager</Arg> \n"
-"            <Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>\n"
+"            <Arg>javax.enterprise.inject.spi.BeanManager</Arg> \n"
+"            <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>\n"
 "            <Arg/>\n"
 "         </New>\n"
 "      </Arg>\n"
@@ -309,7 +332,7 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:173
+#: environments.xml:178
 #, no-c-format
 msgid ""
 "Notice that Jetty doesn't not have built-in support for an <literal>javax."
@@ -319,182 +342,174 @@
 msgstr ""
 
 #. Tag: para
-#: environments.xml:180
+#: environments.xml:184
 #, no-c-format
 msgid ""
 "Jetty only allows you to bind entries to <literal>java:comp/env</literal>, "
-"so the Manager will be available at <literal>java:comp/env/app/Manager</"
+"so the BeanManager will be available at <literal>java:comp/env/BeanManager</"
 "literal>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:186
+#: environments.xml:189
 #, no-c-format
-msgid "Web Beans does not currently support Servlet injection in Jetty."
+msgid "Weld does not currently support Servlet injection in Jetty."
 msgstr ""
 
 #. Tag: title
-#: environments.xml:195
+#: environments.xml:198
 #, no-c-format
 msgid "Java SE"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:197
+#: environments.xml:200
 #, no-c-format
 msgid ""
-"Apart from improved integration of the Enterprise Java stack, Web Beans also "
-"provides a state of the art typesafe, stateful dependency injection "
-"framework. This is useful in a wide range of application types, enterprise "
-"or otherwise. To facilitate this, Web Beans provides a simple means for "
-"executing in the Java Standard Edition environment independently of any "
-"Enterprise Edition features."
+"In addition to improved integration of the Enterprise Java stack, the "
+"\"Contexts and Dependency Injection for the Java EE platform\" specification "
+"also defines a state of the art typesafe, stateful dependency injection "
+"framework, which can prove useful in a wide range of application types. To "
+"help developers take advantage of this, Weld provides a simple means for "
+"being executed in the Java Standard Edition (SE) environment independently "
+"of any Java EE APIs."
 msgstr ""
 
 #. Tag: para
-#: environments.xml:205
+#: environments.xml:208
 #, no-c-format
 msgid ""
-"When executing in the SE environment the following features of Web Beans are "
+"When executing in the SE environment the following features of Weld are "
 "available:"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:211
+#: environments.xml:215
 #, no-c-format
-msgid "Simple Web Beans (POJOs)"
+msgid "POJOs (no EJBs)"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:216
+#: environments.xml:220
 #, no-c-format
 msgid "Typesafe Dependency Injection"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:221
+#: environments.xml:225
 #, no-c-format
 msgid "Application and Dependent Contexts"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:226
+#: environments.xml:230
 #, no-c-format
-msgid "Binding Types"
+msgid "Qualifiers"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:231
+#: environments.xml:235
 #, no-c-format
-msgid "Deployment Types"
-msgstr ""
-
-#. Tag: literal
-#: environments.xml:236
-#, no-c-format
 msgid "Stereotypes"
 msgstr ""
 
 #. Tag: literal
-#: environments.xml:241
+#: environments.xml:240
 #, no-c-format
 msgid "Typesafe Event Model"
 msgstr ""
 
 #. Tag: title
-#: environments.xml:247
+#: environments.xml:246
 #, no-c-format
-msgid "Web Beans SE Module"
+msgid "CDI SE Module"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:249
+#: environments.xml:248
 #, no-c-format
 msgid ""
-"To make life easy for developers Web Beans provides a special module with a "
-"main method which will boot the Web Beans manager, automatically registering "
-"all simple Web Beans found on the classpath. This eliminates the need for "
-"application developers to write any bootstrapping code. The entry point for "
-"a Web Beans SE applications is a simple Web Bean which observes the standard "
-"<literal>@Deployed Manager</literal> event. The command line paramters can "
-"be injected using either of the following:"
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. "
+"Application developers need not write any bootstrapping code. The entry "
+"point for application code is a simple bean which observes the special "
+"<literal>ContainerInitialized</literal> event provided by this extension. "
+"The command line parameters can be injected using either of the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:258
+#: environments.xml:255
 #, no-c-format
 msgid ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"<![CDATA[@Inject @Parameters List<String> params;\n"
+"@Inject @Parameters String[] paramsArray; // useful for compatability with "
+"existing classes]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:259
+#: environments.xml:257
 #, no-c-format
-msgid "Here's an example of a simple Web Beans SE application:"
+msgid "Here's an example of a simple CDI SE application:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:263
+#: environments.xml:261
 #, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped\n"
 "public class HelloWorld\n"
 "{\n"
-"    @Parameters List<String> parameters;\n"
+"   @Inject @Parameters List<String> parameters;\n"
 "\n"
-"    public void printHello( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        System.out.println( \"Hello \" + parameters.get(0) );\n"
-"    }\n"
+"   public void printHello(@Observes ContainerInitialized event) {\n"
+"       System.out.println(\"Hello \" + parameters.get(0));\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:265
+#: environments.xml:263
 #, no-c-format
 msgid ""
-"Web Beans SE applications are started by running the following main method."
+"CDI SE applications can be bootstrapped by running the StartMain class like "
+"so:"
 msgstr ""
 
 #. Tag: programlisting
 #: environments.xml:267
 #, no-c-format
-msgid "<![CDATA[java org.jboss.webbeans.environments.se.StartMain <args>]]>"
+msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
 msgstr ""
 
 #. Tag: para
 #: environments.xml:269
 #, no-c-format
 msgid ""
-"If you need to do any custom initialization of the Web Beans manager, for "
+"If you need to do any custom initialization of the CDI bean manager, for "
 "example registering custom contexts or initializing resources for your beans "
-"you can do so in response to the <literal>@Initialized Manager</literal> "
-"event. The following example registers a custom context:"
+"you can do so in response to the <literal>AfterBeanDiscovery</literal> or "
+"<literal>AfterDeploymentValidation</literal> events. The following example "
+"registers a custom context:"
 msgstr ""
 
 #. Tag: programlisting
-#: environments.xml:274
+#: environments.xml:276
 #, no-c-format
 msgid ""
-"<![CDATA[public class PerformSetup\n"
-"{\n"
-"\n"
-"    public void setup( @Observes @Initialized Manager manager )\n"
-"    {\n"
-"        manager.addContext( ThreadContext.INSTANCE );\n"
-"    }\n"
+"<![CDATA[public class PerformSetup {\n"
+"   public void setup(@Observes AfterBeanDiscovery event) {\n"
+"      event.addContext( ThreadContext.INSTANCE );\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: environments.xml:277
+#: environments.xml:279
 #, no-c-format
 msgid ""
 "The command line parameters do not become available for injection until the "
-"<literal>@Deployed Manager</literal> event is fired. If you need access to "
-"the parameters during initialization you can do so via the <literal>public "
-"static String getParameters()</literal> method in <literal>StartMain</"
-"literal>."
+"<literal>ContainerInitialized</literal> event is fired. If you need access "
+"to the parameters during initialization you can do so via the "
+"<literal>public static String[] getParameters()</literal> method in "
+"<literal>StartMain</literal>."
 msgstr ""

Modified: doc/trunk/reference/zh-TW/events.po
===================================================================
--- doc/trunk/reference/zh-TW/events.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/events.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 12:08+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -26,96 +26,141 @@
 #: events.xml:6
 #, no-c-format
 msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
-msgstr "Web Bean 事件通知功能能讓 Web Bean 以一個完全 decouple 的方式來進行互動。事件<emphasis>產生器(producers)</emphasis>會產生事件並且之後會被透過 Web Bean 管理員來傳送給事件<emphasis>觀察器(observers)</emphasis>。這個基本的 schema 可能看起來和熟悉的觀察器/可觀察的格式類似,不過卻有幾點不大相同:"
+"Dependency injection enables loose-coupling by allowing the implementation "
+"of the injected bean type to vary, either a deployment time or runtime. "
+"Events go one step further, allowing beans to interact with no compile time "
+"dependency at all. Event <emphasis>producers</emphasis> raise events that "
+"are delivered to event <emphasis>observers</emphasis> by the container."
+msgstr ""
 
 #. Tag: para
-#: events.xml:14
+#: events.xml:13
 #, no-c-format
 msgid ""
+"This basic schema might sound like the familiar observer/observable pattern, "
+"but there are a couple of twists:"
+msgstr ""
+
+#. Tag: para
+#: events.xml:18
+#, no-c-format
+msgid ""
 "not only are event producers decoupled from observers; observers are "
 "completely decoupled from producers,"
-msgstr "不只是事件產生器由觀察器被 decouple;觀察器也完全地由產生器被 decouple 了,"
+msgstr ""
+"不只是事件產生器由觀察器被 decouple;觀察器也完全地由產生器被 decouple 了,"
 
 #. Tag: para
-#: events.xml:18
+#: events.xml:22
 #, no-c-format
 msgid ""
 "observers can specify a combination of \"selectors\" to narrow the set of "
 "event notifications they will receive, and"
-msgstr "觀察器可指定一組「選擇器(selectors)」的組合來過濾並減少它們所將會收到的事件通知數量,並且"
+msgstr ""
+"觀察器可指定一組「選擇器(selectors)」的組合來過濾並減少它們所將會收到的事件"
+"通知數量,並且"
 
 #. Tag: para
-#: events.xml:22
-#, no-c-format
+#: events.xml:28
+#, fuzzy, no-c-format
 msgid ""
 "observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
-msgstr "觀察器可即刻地被通知,或是您亦可指定將事件的傳送延遲到目前交易動作(又稱為工作邏輯單元)結束之後"
+"event should be delayed until the end of the current transaction."
+msgstr ""
+"觀察器可即刻地被通知,或是您亦可指定將事件的傳送延遲到目前交易動作(又稱為工"
+"作邏輯單元)結束之後"
 
-#. Tag: title
-#: events.xml:28
-#, no-c-format
-msgid "Event observers"
-msgstr "事件觀察器(Event observers)"
-
 #. Tag: para
-#: events.xml:30
+#: events.xml:35
 #, no-c-format
 msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
-msgstr "<emphasis>observer method</emphasis> 是個 Web Bean 的 method 並有個標記為 <literal>@Observes</literal> 的參數。"
+"The CDI event notification facility uses more or less the same typesafe "
+"approach that we've already seen with the dependency injection service."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:33
+#. Tag: title
+#: events.xml:39
+#, fuzzy, no-c-format
+msgid "Event payload"
+msgstr "事件產生器(Event producers)"
+
+#. Tag: para
+#: events.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
+"The event object carries state from producer to consumer. The event object "
+"is nothing more than an instance of a concrete Java class. (The only "
+"restriction is that an event type may not contain type variables). An event "
+"may be assigned qualifiers, which allows observers to distinguish it from "
+"other events of the same type. The qualifiers function like topic selectors, "
+"allowing an observer to narrow the set of events it observes."
 msgstr ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
 
 #. Tag: para
-#: events.xml:35
+#: events.xml:48
 #, no-c-format
 msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr "這個被標記的參數稱為<emphasis>事件參數(event parameter)</emphasis>。這個事件參數的 type 相當於被觀察到的<emphasis>事件類型(event type)</emphasis>。Observer method 也能指定「selector」,它們只不過是 Web Bean 綁定類型(binding types)的 instance。當有個綁定類型被用來作為一個事件選擇器時,它就會被稱為是一個<emphasis>事件綁定類型(event binding type)</emphasis>。"
+"An event qualifier is just a normal qualifier, defined using "
+"<literal>@Qualifier</literal>. Here's an example:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:41
-#, no-c-format
+#: events.xml:52
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
-"@Target({PARAMETER, FIELD})\n"
+"<![CDATA[@Qualifier\n"
+"@Target({FIELD, PARAMETER})\n"
 "@Retention(RUNTIME)\n"
-"public @interface Updated { ... }]]>"
+"public @interface Updated {}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 
+#. Tag: title
+#: events.xml:57
+#, no-c-format
+msgid "Event observers"
+msgstr "事件觀察器(Event observers)"
+
 #. Tag: para
-#: events.xml:43
+#: events.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>observer method</emphasis> is a method of a bean with a "
+"parameter annotated <literal>@Observes</literal>."
+msgstr ""
+"<emphasis>observer method</emphasis> 是個 Web Bean 的 method 並有個標記為 "
+"<literal>@Observes</literal> 的參數。"
+
+#. Tag: programlisting
+#: events.xml:64
 #, no-c-format
 msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
-msgstr "我們可藉由標記事件參數來指定 observer method 的事件綁定:"
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
+msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
+#. Tag: para
+#: events.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
+"The type of the event parameter is the observed <emphasis>event type</"
+"emphasis>, in this case <literal>Document</literal>. The event parameter may "
+"also specify qualifiers."
+msgstr ""
+"這個被標記的參數稱為<emphasis>事件參數(event parameter)</emphasis>。這個事"
+"件參數的 type 相當於被觀察到的<emphasis>事件類型(event type)</emphasis>。"
+"Observer method 也能指定「selector」,它們只不過是 Web Bean 綁定類型"
+"(binding types)的 instance。當有個綁定類型被用來作為一個事件選擇器時,它就"
+"會被稱為是一個<emphasis>事件綁定類型(event binding type)</emphasis>。"
+
 #. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:72 events.xml:240
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -125,25 +170,30 @@
 "document) { ... }]]>"
 
 #. Tag: para
-#: events.xml:48
-#, no-c-format
+#: events.xml:74
+#, fuzzy, no-c-format
 msgid ""
-"An observer method need not specify any event bindings &#151; in this case it "
-"is interested in <emphasis>all</emphasis> events of a particular type. If it "
-"does specify event bindings, it is only interested in events which also have "
-"those event bindings."
-msgstr "一個 observer method 不需要指定任何的事件綁定 &#151; 在此情況下它會專注於特定 type 的<emphasis>所有</emphasis>事件。若它指定了事件綁定的話,它就只會專注於也具有這些事件綁定的事件。"
+"An observer method need not specify any event qualifiers&#8212;in this case "
+"it is interested in <emphasis>all</emphasis> events of a particular type. If "
+"it does specify qualifiers, it's only interested in events which have those "
+"qualifiers."
+msgstr ""
+"一個 observer method 不需要指定任何的事件綁定 &#151; 在此情況下它會專注於特"
+"定 type 的<emphasis>所有</emphasis>事件。若它指定了事件綁定的話,它就只會專注"
+"於也具有這些事件綁定的事件。"
 
 #. Tag: para
-#: events.xml:53
-#, no-c-format
+#: events.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
-msgstr "Observer method 能夠含有額外的參數,這些參數會被根據一般的 Web Bean method 參數注入語意(parameter injection semantic)來注入:"
+"The observer method may have additional parameters, which are injection "
+"points:"
+msgstr ""
+"Observer method 能夠含有額外的參數,這些參數會被根據一般的 Web Bean method 參"
+"數注入語意(parameter injection semantic)來注入:"
 
 #. Tag: programlisting
-#: events.xml:56
+#: events.xml:84
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
@@ -153,226 +203,229 @@
 "document, User user) { ... }]]>"
 
 #. Tag: title
-#: events.xml:61
+#: events.xml:89
 #, no-c-format
 msgid "Event producers"
 msgstr "事件產生器(Event producers)"
 
 #. Tag: para
-#: events.xml:63
+#: events.xml:91
 #, no-c-format
 msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
-msgstr "事件產生器可透過注入來取得一個<emphasis>事件通知器(event notifier)</emphasis> 物件:"
+"Event producers fire events using an instance of the parameterized "
+"<literal>Event</literal> interface. An instance of this interface is "
+"obtained by injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: events.xml:66
-#, no-c-format
-msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
+#: events.xml:96
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Any Event<Document> documentEvent;]]>"
 msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
-#: events.xml:68
-#, no-c-format
+#: events.xml:98
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
-msgstr "<literal>@Observable</literal> 這個標記暗示性地以 <literal>@Dependent</literal> 這個 scope 和 <literal>@Standard</literal> 這個建置類型,以及 Web Bean 管理員所提供的實做來定義了一個 Web Bean。"
-
-#. Tag: para
-#: events.xml:72
-#, no-c-format
-msgid ""
 "A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
-msgstr "產生器可藉由調用 <literal>Event</literal> 介面的 <literal>fire()</literal> method,並傳送一個 <emphasis>event object</emphasis> 來產生事件:"
+"the <literal>Event</literal> interface, passing the event object:"
+msgstr ""
+"產生器可藉由調用 <literal>Event</literal> 介面的 <literal>fire()</literal> "
+"method,並傳送一個 <emphasis>event object</emphasis> 來產生事件:"
 
 #. Tag: programlisting
-#: events.xml:75
+#: events.xml:103
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
 msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
-#: events.xml:77
-#, no-c-format
-msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
-msgstr "Event object 可能會是個沒有 type variable 或是 wildcard type 參數的任何 Java class 的 instance。該事件會被傳送給符合下列條件的每個 observer method:"
+#: events.xml:105
+#, fuzzy, no-c-format
+msgid "This particular event will be delivered to every observer method that:"
+msgstr "事件會被傳送給符合下列條件的每個觀察器 method:"
 
 #. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
-#, no-c-format
-msgid "has an event parameter to which the event object is assignable, and"
+#: events.xml:111
+#, fuzzy, no-c-format
+msgid ""
+"has an event parameter to which the event object (the <literal>Document</"
+"literal>) is assignable, and"
 msgstr "含有可指派 event object 的事件參數,以及"
 
 #. Tag: para
-#: events.xml:86
-#, no-c-format
-msgid "specifies no event bindings."
+#: events.xml:115
+#, fuzzy, no-c-format
+msgid "specifies no qualifiers."
 msgstr "沒有指定事件綁定的 observer method。"
 
 #. Tag: para
-#: events.xml:90
-#, no-c-format
+#: events.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr "Web Bean 管理員會調用所有 observer method,並將 event object 作為是事件參數的值一般地來傳送。若任何 observer method 回傳了一個 exception,Web Bean 管理員便會停止調用 observer method,然後這個 exception 會被 <literal>fire()</literal> method 重新回傳。"
+"The container simply calls all the observer methods, passing the event "
+"object as the value of the event parameter. If any observer method throws an "
+"exception, the container stops calling observer methods, and the exception "
+"is rethrown by the <literal>fire()</literal> method."
+msgstr ""
+"Web Bean 管理員會調用所有 observer method,並將 event object 作為是事件參數的"
+"值一般地來傳送。若任何 observer method 回傳了一個 exception,Web Bean 管理員"
+"便會停止調用 observer method,然後這個 exception 會被 <literal>fire()</"
+"literal> method 重新回傳。"
 
 #. Tag: para
-#: events.xml:95
+#: events.xml:125
 #, no-c-format
-msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
-msgstr "若要指定一個「selector」,事件產生器可將事件綁定類型的一個 instance 傳送至 <literal>fire()</literal> 這個 method:"
+msgid "Qualifiers can be applied to an event in one of two ways:"
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:98
+#. Tag: para
+#: events.xml:131
 #, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
+msgid "by annotating the <literal>Event</literal> injection point, or"
 msgstr ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
 
 #. Tag: para
-#: events.xml:100
+#: events.xml:134
 #, no-c-format
 msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
-msgstr "<literal>AnnotationLiteral</literal> 這個 helper class 可例示內部的綁定類型,因為要在 Java 中這麼作相當的困難。"
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
 
 #. Tag: para
-#: events.xml:103
+#: events.xml:138
 #, no-c-format
-msgid "The event will be delivered to every observer method that:"
-msgstr "事件會被傳送給符合下列條件的每個觀察器 method:"
+msgid "Specifying the qualifiers at the injection point is far simpler:"
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:142
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Updated Event<Document> documentUpdatedEvent;]]>"
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
+
 #. Tag: para
-#: events.xml:110
-#, no-c-format
+#: events.xml:144
+#, fuzzy, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
-msgstr "不會指定任何的事件綁定,<emphasis>除了</emphasis>傳送給 <literal>fire()</literal> 的事件綁定。"
+"Then, every event fired via this instance of <literal>Event</literal> has "
+"the event qualifier <literal>@Updated</literal>. The event is delivered to "
+"every observer method that:"
+msgstr ""
+"若是如此,所有透過 <literal>Event</literal> 的 instance 來產生的事件都會含有"
+"被標記的事件綁定。事件會被傳送給符合下列條件的每個觀察器 method:"
 
 #. Tag: para
-#: events.xml:115
+#: events.xml:151
 #, no-c-format
+msgid "has an event parameter to which the event object is assignable, and"
+msgstr "含有可指派 event object 的事件參數,以及"
+
+#. Tag: para
+#: events.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
-msgstr "另外,事件綁定亦可透過標記事件通知器注入點來指定:"
+"does not have any event qualifier <emphasis>except</emphasis> for the event "
+"qualifiers that match those specified at the <literal>Event</literal> "
+"injection point."
+msgstr ""
+"不會指定任何的事件綁定,<emphasis>除了</emphasis>傳送給 <literal>fire()</"
+"literal> 的事件綁定。"
 
-#. Tag: programlisting
-#: events.xml:118
-#, no-c-format
-msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-
 #. Tag: para
-#: events.xml:120
+#: events.xml:161
 #, no-c-format
 msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
-msgstr "若是如此,所有透過 <literal>Event</literal> 的 instance 來產生的事件都會含有被標記的事件綁定。事件會被傳送給符合下列條件的每個觀察器 method:"
+"The downside of annotating the injection point is that we can't specify the "
+"qualifier dynamically. CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>. That way, "
+"we can pass the qualifier to the <literal>select()</literal> method of "
+"<literal>Event</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: events.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[documentEvent.select(new AnnotationLiteral<Updated>(){}).fire"
+"(document);]]>"
+msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
+
 #. Tag: para
-#: events.xml:129
+#: events.xml:169
 #, no-c-format
 msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
-msgstr "不會指定任何的事件綁定,<emphasis>除了</emphasis>傳送給 <literal>fire()</literal> 的事件綁定或是被標記的事件通知器注入點的事件綁定。"
+"Events can have multiple event qualifiers, assembled using any combination "
+"of annotations at the <literal>Event</literal> injection point and qualifier "
+"instances passed to the <literal>select()</literal> method."
+msgstr ""
 
 #. Tag: title
-#: events.xml:138
-#, no-c-format
-msgid "Registering observers dynamically"
-msgstr "動態式地註冊觀察器"
+#: events.xml:178
+#, fuzzy, no-c-format
+msgid "Conditional observer methods"
+msgstr "交易觀察器(Transactional observers)"
 
 #. Tag: para
-#: events.xml:140
+#: events.xml:180
 #, no-c-format
 msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
-msgstr "通常以動態式的方式來註冊事件觀察器相當地有幫助。應用程式可實做 <literal>Observer</literal> 介面然後藉由調用 <literal>observe()</literal> method 來以一個事件通知器去註冊某個 instance。"
+"By default, if there is no instance of an observer in the current context, "
+"the container will instantiate the observer in order to deliver an event to "
+"it. This behavior isn't always desirable. We may want to deliver events only "
+"to instances of the observer that already exist in the current contexts."
+msgstr ""
 
-#. Tag: programlisting
-#: events.xml:144
+#. Tag: para
+#: events.xml:186
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
+"A conditional observer is specified by adding <literal>receive = IF_EXISTS</"
+"literal> to the <literal>@Observes</literal> annotation."
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
 
-#. Tag: para
-#: events.xml:146
-#, no-c-format
+#. Tag: programlisting
+#: events.xml:191
+#, fuzzy, no-c-format
 msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void refreshOnDocumentUpdate(@Observes(receive = IF_EXISTS) "
+"@Updated Document d) { ... }]]>"
 msgstr ""
-"事件綁定類型能由事件通知器注入點來指定,或是透過將事件綁定類型的 instance 傳送至 <literal>observe()</"
-"literal> method:"
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
-#. Tag: programlisting
-#: events.xml:149
+#. Tag: para
+#: events.xml:193
 #, no-c-format
 msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"A bean with scope <literal>@Dependent</literal> cannot be a conditional "
+"observer, since it would never be called!"
 msgstr ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-"                                                new "
-"AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
-#: events.xml:154
-#, no-c-format
-msgid "Event bindings with members"
+#: events.xml:200
+#, fuzzy, no-c-format
+msgid "Event qualifiers with members"
 msgstr "member 的事件綁定"
 
 #. Tag: para
-#: events.xml:156
-#, no-c-format
-msgid "An event binding type may have annotation members:"
+#: events.xml:202
+#, fuzzy, no-c-format
+msgid "An event qualifier type may have annotation members:"
 msgstr "事件綁定類型能夠有下列標記成員:"
 
 #. Tag: programlisting
-#: events.xml:158
-#, no-c-format
+#: events.xml:204
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@BindingType\n"
+"<![CDATA[@Qualifier\n"
 "@Target({PARAMETER, FIELD})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Role {\n"
-"    RoleType value();\n"
+"   RoleType value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@BindingType\n"
@@ -383,13 +436,15 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:160
+#: events.xml:206
 #, no-c-format
-msgid "The member value is used to narrow the messages delivered to the observer:"
-msgstr "member value(這是個編譯期常數)會被使用來過濾並減少傳送至觀察器的訊息數量:"
+msgid ""
+"The member value is used to narrow the messages delivered to the observer:"
+msgstr ""
+"member value(這是個編譯期常數)會被使用來過濾並減少傳送至觀察器的訊息數量:"
 
 #. Tag: programlisting
-#: events.xml:162
+#: events.xml:208
 #, no-c-format
 msgid ""
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
@@ -399,78 +454,83 @@
 "{ ... }]]>"
 
 #. Tag: para
-#: events.xml:164
-#, no-c-format
+#: events.xml:210
+#, fuzzy, no-c-format
 msgid ""
-"Event binding type members may be specified statically by the event "
+"Event qualifier type members may be specified statically by the event "
 "producer, via annotations at the event notifier injection point:"
-msgstr "事件綁定類型的成員可由事件產生器在事件通知器的注入點透過標記來靜態地指定:"
+msgstr ""
+"事件綁定類型的成員可由事件產生器在事件通知器的注入點透過標記來靜態地指定:"
 
 #. Tag: programlisting
-#: events.xml:167
-#, no-c-format
-msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
+#: events.xml:215
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @Role(ADMIN) Event<LoggedIn> loggedInEvent;]]>"
 msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
-#: events.xml:169
-#, no-c-format
+#: events.xml:217
+#, fuzzy, no-c-format
 msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
-msgstr "另外,事件綁定類型成員的值亦可藉由事件產生器來動態式地判斷出。我們首先先從編寫一個 <literal>AnnotationLiteral</literal> 的 abstract subclass 開始:"
+"Alternatively, the value of the event qualifier type member may be "
+"determined dynamically by the event producer. We start by writing an "
+"abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr ""
+"另外,事件綁定類型成員的值亦可藉由事件產生器來動態式地判斷出。我們首先先從編"
+"寫一個 <literal>AnnotationLiteral</literal> 的 abstract subclass 開始:"
 
 #. Tag: programlisting
-#: events.xml:172
-#, no-c-format
+#: events.xml:222
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[abstract class RoleBinding \n"
-"    extends AnnotationLiteral<Role> \n"
-"    implements Role {}]]>"
+"   extends AnnotationLiteral<Role> \n"
+"   implements Role {}]]>"
 msgstr ""
 "<![CDATA[abstract class RoleBinding \n"
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 
 #. Tag: para
-#: events.xml:174
-#, no-c-format
+#: events.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
+"The event producer passes an instance of this class to <literal>select()</"
 "literal>:"
-msgstr "事件產生器會將這個 class 的一個 instance 傳送至 <literal>fire()</literal>:"
+msgstr ""
+"事件產生器會將這個 class 的一個 instance 傳送至 <literal>fire()</literal>:"
 
 #. Tag: programlisting
-#: events.xml:176
-#, no-c-format
+#: events.xml:226
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
+"<![CDATA[documentEvent.select(new RoleBinding() {\n"
+"   public void value() { return user.getRole(); }\n"
+"}).fire(document);]]>"
 msgstr ""
 "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
 "() { return user.getRole(); } } );]]>"
 
 #. Tag: title
-#: events.xml:181
-#, no-c-format
-msgid "Multiple event bindings"
+#: events.xml:231
+#, fuzzy, no-c-format
+msgid "Multiple event qualifiers"
 msgstr "多重事件綁定(Multiple event binding)"
 
 #. Tag: para
-#: events.xml:183
-#, no-c-format
-msgid "Event binding types may be combined, for example:"
+#: events.xml:233
+#, fuzzy, no-c-format
+msgid "Event qualifier types may be combined, for example:"
 msgstr "事件綁定類型可被合併,例如:"
 
 #. Tag: programlisting
-#: events.xml:185
-#, no-c-format
+#: events.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"<![CDATA[@Inject @Blog Event<Document> blogEvent;\n"
 "...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.select(new AnnotationLiteral<Updated>(){})."
+"fire(document);]]>"
 msgstr ""
 "<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
 "...\n"
@@ -478,7 +538,7 @@
 "AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
-#: events.xml:187
+#: events.xml:237
 #, no-c-format
 msgid ""
 "When this event occurs, all of the following observer methods will be "
@@ -486,7 +546,7 @@
 msgstr "當這個事件發生時,下列所有 observer method 都會被通知:"
 
 #. Tag: programlisting
-#: events.xml:189
+#: events.xml:239
 #, no-c-format
 msgid ""
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
@@ -496,7 +556,7 @@
 "document) { ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:191
+#: events.xml:241
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
@@ -506,7 +566,7 @@
 "{ ... }]]>"
 
 #. Tag: programlisting
-#: events.xml:192
+#: events.xml:242
 #, no-c-format
 msgid ""
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
@@ -516,13 +576,13 @@
 "{ ... }}}]]>"
 
 #. Tag: title
-#: events.xml:197
+#: events.xml:247
 #, no-c-format
 msgid "Transactional observers"
 msgstr "交易觀察器(Transactional observers)"
 
 #. Tag: para
-#: events.xml:199
+#: events.xml:249
 #, no-c-format
 msgid ""
 "Transactional observers receive their event notifications during the before "
@@ -530,93 +590,113 @@
 "For example, the following observer method needs to refresh a query result "
 "set that is cached in the application context, but only when transactions "
 "that update the <literal>Category</literal> tree succeed:"
-msgstr "交易觀察器會在事件被產生後,於交易完成之前或之後收到它們的事件通知。比方說,下列 observer method 需要更新一組快取儲存於應用程式 context 中的查詢結果,不過只有更新了 <literal>Category</literal> tree 的交易會成功:"
+msgstr ""
+"交易觀察器會在事件被產生後,於交易完成之前或之後收到它們的事件通知。比方說,"
+"下列 observer method 需要更新一組快取儲存於應用程式 context 中的查詢結果,不"
+"過只有更新了 <literal>Category</literal> tree 的交易會成功:"
 
 #. Tag: programlisting
-#: events.xml:205
-#, no-c-format
+#: events.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"<![CDATA[public void refreshCategoryTree(@Observes(during = AFTER_SUCCESS) "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
 "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
 "CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
-#: events.xml:207
-#, no-c-format
-msgid "There are three kinds of transactional observers:"
+#: events.xml:258
+#, fuzzy, no-c-format
+msgid "There are five kinds of transactional observers:"
 msgstr "交易觀察器分為三種類型:"
 
 #. Tag: para
-#: events.xml:211
+#: events.xml:262
 #, no-c-format
 msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
-msgstr "<literal>@AfterTransactionSuccess</literal> 觀察器會在交易完成之後的階段才會被調用,不過僅限於交易成功完成的情況下"
+"<literal>IN_PROGESS</literal> observers are called immediately (default)"
+msgstr ""
 
 #. Tag: para
-#: events.xml:216
-#, no-c-format
+#: events.xml:265
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
-msgstr "<literal>@AfterTransactionFailure</literal> 觀察器會在交易完成之後的階段才會被調用,不過僅限於交易無法成功完成的情況下"
+"<literal>AFTER_SUCCESS</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction completes "
+"successfully"
+msgstr ""
+"<literal>@AfterTransactionSuccess</literal> 觀察器會在交易完成之後的階段才會"
+"被調用,不過僅限於交易成功完成的情況下"
 
 #. Tag: para
-#: events.xml:221
-#, no-c-format
+#: events.xml:271
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
-msgstr "<literal>@AfterTransactionCompletion</literal> 觀察器會在交易完成之後的階段才會被調用"
+"<literal>AFTER_FAILURE</literal> observers are called during the after "
+"completion phase of the transaction, but only if the transaction fails to "
+"complete successfully"
+msgstr ""
+"<literal>@AfterTransactionFailure</literal> 觀察器會在交易完成之後的階段才會"
+"被調用,不過僅限於交易無法成功完成的情況下"
 
 #. Tag: para
-#: events.xml:225
-#, no-c-format
+#: events.xml:277
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
-msgstr "<literal>@BeforeTransactionCompletion</literal> 觀察器會在交易完成之前的階段被調用"
+"<literal>AFTER_COMPLETION</literal> observers are called during the after "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@AfterTransactionCompletion</literal> 觀察器會在交易完成之後的階段才"
+"會被調用"
 
 #. Tag: para
-#: events.xml:230
-#, no-c-format
+#: events.xml:283
+#, fuzzy, no-c-format
 msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
-msgstr "交易觀察器在一個像是 Web Bean 的 stateful 物件模型中相當地重要,因為 state 一般被保持的時間比單一 atomic transaction(不可分割的交易)還要長。"
+"<literal>BEFORE_COMPLETION</literal> observers are called during the before "
+"completion phase of the transaction"
+msgstr ""
+"<literal>@BeforeTransactionCompletion</literal> 觀察器會在交易完成之前的階段"
+"被調用"
 
 #. Tag: para
-#: events.xml:233
+#: events.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"Transactional observers are very important in a stateful object model "
+"because state is often held for longer than a single atomic transaction."
+msgstr ""
+"交易觀察器在一個像是 Web Bean 的 stateful 物件模型中相當地重要,因為 state 一"
+"般被保持的時間比單一 atomic transaction(不可分割的交易)還要長。"
+
+#. Tag: para
+#: events.xml:295
 #, no-c-format
-msgid "Imagine that we have cached a JPA query result set in the application scope:"
+msgid ""
+"Imagine that we have cached a JPA query result set in the application scope:"
 msgstr "想像我們已快取了一個設置於應用程式 scope 中的 JPA 查詢結果:"
 
 #. Tag: programlisting
-#: events.xml:235
-#, no-c-format
+#: events.xml:297
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
+"   @PersistenceContext EntityManager em;\n"
 "    \n"
-"    List<Product> products;\n"
+"   List<Product> products;\n"
 "\n"
-"    @Produces @Catalog \n"
-"    List<Product> getCatalog() {\n"
-"        if (products==null) {\n"
-"            products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
-"                .getResultList();\n"
-"        }\n"
-"        return products;\n"
-"    }\n"
+"   @Produces @Catalog \n"
+"   List<Product> getCatalog() {\n"
+"      if (products==null) {\n"
+"         products = em.createQuery(\"select p from Product p where p.deleted "
+"= false\")\n"
+"            .getResultList();\n"
+"      }\n"
+"      return products;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -640,45 +720,47 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:237
+#: events.xml:299
 #, no-c-format
 msgid ""
 "From time to time, a <literal>Product</literal> is created or deleted. When "
 "this occurs, we need to refresh the <literal>Product</literal> catalog. But "
 "we should wait until <emphasis>after</emphasis> the transaction completes "
 "successfully before performing this refresh!"
-msgstr "<literal>Product</literal> 經常會被建立或刪除。當這情況發生時,我們便需要更新 <literal>Product</literal> 的 catalog。不過我們還是應該等到交易成功完成<emphasis>之後</emphasis>才去進行這項更新!"
+msgstr ""
+"<literal>Product</literal> 經常會被建立或刪除。當這情況發生時,我們便需要更"
+"新 <literal>Product</literal> 的 catalog。不過我們還是應該等到交易成功完成"
+"<emphasis>之後</emphasis>才去進行這項更新!"
 
 #. Tag: para
-#: events.xml:242
-#, no-c-format
+#: events.xml:305
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
+"The bean that creates and deletes <literal>Product</literal>s could raise "
+"events, for example:"
 msgstr "建立和刪除 <literal>Product</literal> 的 Web Bean 可產生事件,例如:"
 
 #. Tag: programlisting
-#: events.xml:245
-#, no-c-format
+#: events.xml:309
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class ProductManager {\n"
+"   @PersistenceContext EntityManager em;\n"
+"   @Inject @Any Event<Product> productEvent;\n"
 "\n"
-"    @PersistenceContext EntityManager em;\n"
-"    @Observable Event<Product> productEvent;\n"
-"\n"
-"    public void delete(Product product) {\n"
-"        em.delete(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
-"    }\n"
+"   public void delete(Product product) {\n"
+"      em.delete(product);\n"
+"      productEvent.select(new AnnotationLiteral<Deleted>(){}).fire"
+"(product);\n"
+"   }\n"
 "    \n"
-"    public void persist(Product product) {\n"
-"        em.persist(product);\n"
-"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
-"    }\n"
-"    \n"
-"    ...\n"
-"    \n"
+"   public void persist(Product product) {\n"
+"      em.persist(product);\n"
+"      productEvent.select(new AnnotationLiteral<Created>(){}).fire"
+"(product);\n"
+"   }\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -702,7 +784,7 @@
 "}]]>"
 
 #. Tag: para
-#: events.xml:247
+#: events.xml:311
 #, no-c-format
 msgid ""
 "And now <literal>Catalog</literal> can observe the events after successful "
@@ -710,24 +792,21 @@
 msgstr "而現在,<literal>Catalog</literal> 可在交易成功完成之後觀察事件:"
 
 #. Tag: programlisting
-#: events.xml:250
-#, no-c-format
+#: events.xml:315
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
 "public class Catalog {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"   ...\n"
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Created Product "
 "product) {\n"
-"        products.add(product);\n"
-"    }\n"
+"      products.add(product);\n"
+"   }\n"
 "    \n"
-"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"   void addProduct(@Observes(during = AFTER_SUCCESS) @Deleted Product "
 "product) {\n"
-"        products.remove(product);\n"
-"    }\n"
-"    \n"
+"      products.remove(product);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@ApplicationScoped @Singleton\n"
@@ -747,3 +826,113 @@
 "    \n"
 "}]]>"
 
+#~ msgid ""
+#~ "The Web Beans event notification facility allows Web Beans to interact in "
+#~ "a totally decoupled manner. Event <emphasis>producers</emphasis> raise "
+#~ "events that are then delivered to event <emphasis>observers</emphasis> by "
+#~ "the Web Bean manager. This basic schema might sound like the familiar "
+#~ "observer/observable pattern, but there are a couple of twists:"
+#~ msgstr ""
+#~ "Web Bean 事件通知功能能讓 Web Bean 以一個完全 decouple 的方式來進行互動。"
+#~ "事件<emphasis>產生器(producers)</emphasis>會產生事件並且之後會被透過 "
+#~ "Web Bean 管理員來傳送給事件<emphasis>觀察器(observers)</emphasis>。這個"
+#~ "基本的 schema 可能看起來和熟悉的觀察器/可觀察的格式類似,不過卻有幾點不大"
+#~ "相同:"
+
+#~ msgid ""
+#~ "We specify the event bindings of the observer method by annotating the "
+#~ "event parameter:"
+#~ msgstr "我們可藉由標記事件參數來指定 observer method 的事件綁定:"
+
+#~ msgid ""
+#~ "The event producer may obtain an <emphasis>event notifier</emphasis> "
+#~ "object by injection:"
+#~ msgstr ""
+#~ "事件產生器可透過注入來取得一個<emphasis>事件通知器(event notifier)</"
+#~ "emphasis> 物件:"
+
+#~ msgid ""
+#~ "The <literal>@Observable</literal> annotation implicitly defines a Web "
+#~ "Bean with scope <literal>@Dependent</literal> and deployment type "
+#~ "<literal>@Standard</literal>, with an implementation provided by the Web "
+#~ "Bean manager."
+#~ msgstr ""
+#~ "<literal>@Observable</literal> 這個標記暗示性地以 <literal>@Dependent</"
+#~ "literal> 這個 scope 和 <literal>@Standard</literal> 這個建置類型,以及 "
+#~ "Web Bean 管理員所提供的實做來定義了一個 Web Bean。"
+
+#~ msgid ""
+#~ "An event object may be an instance of any Java class that has no type "
+#~ "variables or wildcard type parameters. The event will be delivered to "
+#~ "every observer method that:"
+#~ msgstr ""
+#~ "Event object 可能會是個沒有 type variable 或是 wildcard type 參數的任何 "
+#~ "Java class 的 instance。該事件會被傳送給符合下列條件的每個 observer "
+#~ "method:"
+
+#~ msgid ""
+#~ "To specify a \"selector\", the event producer may pass an instance of the "
+#~ "event binding type to the <literal>fire()</literal> method:"
+#~ msgstr ""
+#~ "若要指定一個「selector」,事件產生器可將事件綁定類型的一個 instance 傳送"
+#~ "至 <literal>fire()</literal> 這個 method:"
+
+#~ msgid ""
+#~ "The helper class <literal>AnnotationLiteral</literal> makes it possible "
+#~ "to instantiate binding types inline, since this is otherwise difficult to "
+#~ "do in Java."
+#~ msgstr ""
+#~ "<literal>AnnotationLiteral</literal> 這個 helper class 可例示內部的綁定類"
+#~ "型,因為要在 Java 中這麼作相當的困難。"
+
+#~ msgid ""
+#~ "Alternatively, event bindings may be specified by annotating the event "
+#~ "notifier injection point:"
+#~ msgstr "另外,事件綁定亦可透過標記事件通知器注入點來指定:"
+
+#~ msgid ""
+#~ "does not specify any event binding <emphasis>except</emphasis> for the "
+#~ "event bindings passed to <literal>fire()</literal> or the annotated event "
+#~ "bindings of the event notifier injection point."
+#~ msgstr ""
+#~ "不會指定任何的事件綁定,<emphasis>除了</emphasis>傳送給 <literal>fire()</"
+#~ "literal> 的事件綁定或是被標記的事件通知器注入點的事件綁定。"
+
+#~ msgid "Registering observers dynamically"
+#~ msgstr "動態式地註冊觀察器"
+
+#~ msgid ""
+#~ "It's often useful to register an event observer dynamically. The "
+#~ "application may implement the <literal>Observer</literal> interface and "
+#~ "register an instance with an event notifier by calling the "
+#~ "<literal>observe()</literal> method."
+#~ msgstr ""
+#~ "通常以動態式的方式來註冊事件觀察器相當地有幫助。應用程式可實做 "
+#~ "<literal>Observer</literal> 介面然後藉由調用 <literal>observe()</literal> "
+#~ "method 來以一個事件通知器去註冊某個 instance。"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } } );]]>"
+
+#~ msgid ""
+#~ "Event binding types may be specified by the event notifier injection "
+#~ "point or by passing event binding type instances to the <literal>observe()"
+#~ "</literal> method:"
+#~ msgstr ""
+#~ "事件綁定類型能由事件通知器注入點來指定,或是透過將事件綁定類型的 instance "
+#~ "傳送至 <literal>observe()</literal> method:"
+
+#~ msgid ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"
+#~ msgstr ""
+#~ "<![CDATA[documentEvent.observe( new Observer<Document>() { public void "
+#~ "notify(Document doc) { ... } }, \n"
+#~ "                                                new "
+#~ "AnnotationLiteral<Updated>(){} );]]>"

Modified: doc/trunk/reference/zh-TW/example.po
===================================================================
--- doc/trunk/reference/zh-TW/example.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/example.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 12:13+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -24,20 +24,22 @@
 
 #. Tag: para
 #: example.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Let's illustrate these ideas with a full example. We're going to implement "
 "user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
-msgstr "現在我們將採用一個完整的範例來描述這些概念。我們將要為一個使用 JSF 的應用程式實做用戶的登錄/登出。首先,我們將要定義一個 Web Bean 來在登錄時保持已輸入的用戶名稱與密碼:"
+"request-scoped bean to hold the username and password entered during login:"
+msgstr ""
+"現在我們將採用一個完整的範例來描述這些概念。我們將要為一個使用 JSF 的應用程式"
+"實做用戶的登錄/登出。首先,我們將要定義一個 Web Bean 來在登錄時保持已輸入的用"
+"戶名稱與密碼:"
 
 #. Tag: programlisting
 #: example.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named @RequestScoped\n"
 "public class Credentials {\n"
-"        \n"
 "    private String username;\n"
 "    private String password;\n"
 "    \n"
@@ -46,7 +48,6 @@
 "    \n"
 "    public String getPassword() { return password; }\n"
 "    public void setPassword(String password) { this.password = password; }\n"
-"    \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Named @RequestScoped\n"
@@ -65,24 +66,24 @@
 
 #. Tag: para
 #: example.xml:13
-#, no-c-format
-msgid "This Web Bean is bound to the login prompt in the following JSF form:"
+#, fuzzy, no-c-format
+msgid "This bean is bound to the login prompt in the following JSF form:"
 msgstr "這個 Web Bean 已透過下列 JSF 格式綁定至登錄提示:"
 
 #. Tag: programlisting
 #: example.xml:15
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<h:form>\n"
-"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
-"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
-"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
-"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
-"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
-"    </h:panelGrid>\n"
-"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"   <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"      <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"      <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"      <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"      <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"   </h:panelGrid>\n"
+"   <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
 "login.loggedIn}\"/>\n"
-"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"   <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
@@ -101,51 +102,55 @@
 
 #. Tag: para
 #: example.xml:17
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
-msgstr "實際的工作是由 session 導向的 Web Bean 所完成的,這個 Web Bean 保留了有關於目前已登入用戶的相關資料並將 <literal>User</literal> 這個 entity 提供給其它 Web Bean:"
+"The actual work is done by a session-scoped bean that maintains information "
+"about the currently logged-in user and exposes the <literal>User</literal> "
+"entity to other beans:"
+msgstr ""
+"實際的工作是由 session 導向的 Web Bean 所完成的,這個 Web Bean 保留了有關於目"
+"前已登入用戶的相關資料並將 <literal>User</literal> 這個 entity 提供給其它 "
+"Web Bean:"
 
 #. Tag: programlisting
-#: example.xml:21
-#, no-c-format
+#: example.xml:22
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped @Named\n"
-"public class Login {\n"
+"public class Login implements Serializable {\n"
 "\n"
-"    @Current Credentials credentials;\n"
-"    @PersistenceContext EntityManager userDatabase;\n"
+"   @Inject Credentials credentials;\n"
+"   @Inject @UserDatabase EntityManager userDatabase;\n"
 "\n"
-"    private User user;\n"
+"   private User user;\n"
 "    \n"
-"    public void login() {\n"
-"            \n"
-"        List<User> results = userDatabase.createQuery(\n"
-"           \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
-"           .setParameter(\"username\", credentials.getUsername())\n"
-"           .setParameter(\"password\", credentials.getPassword())\n"
-"           .getResultList();\n"
+"   public void login() {\n"
+"      List<User> results = userDatabase.createQuery(\n"
+"         \"select u from User u where u.username = :username and u.password "
+"= :password\")\n"
+"         .setParameter(\"username\", credentials.getUsername())\n"
+"         .setParameter(\"password\", credentials.getPassword())\n"
+"         .getResultList();\n"
 "        \n"
-"        if ( !results.isEmpty() ) {\n"
-"           user = results.get(0);\n"
-"        }\n"
-"        \n"
-"    }\n"
+"      if (!results.isEmpty()) {\n"
+"         user = results.get(0);\n"
+"      }\n"
+"      else {\n"
+"         // perhaps add code here to report a failed login\n"
+"      }\n"
+"   }\n"
 "    \n"
-"    public void logout() {\n"
-"        user = null;\n"
-"    }\n"
+"   public void logout() {\n"
+"      user = null;\n"
+"   }\n"
 "    \n"
-"    public boolean isLoggedIn() {\n"
-"       return user!=null;\n"
-"    }\n"
+"   public boolean isLoggedIn() {\n"
+"      return user != null;\n"
+"   }\n"
 "    \n"
-"    @Produces @LoggedIn User getCurrentUser() {\n"
-"        return user;\n"
-"    }\n"
+"   @Produces @LoggedIn User getCurrentUser() {\n"
+"      return user;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -187,19 +192,35 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:23
+#: example.xml:24
 #, no-c-format
-msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr "當然,<literal>@LoggedIn</literal> 是個綁定標記:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:25
-#, no-c-format
+#: example.xml:26
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, PARAMETER, FIELD})\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
+
+#. Tag: programlisting
+#: example.xml:28
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, PARAMETER, FIELD})\n"
+"public @interface UserDatabase {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD})\n"
@@ -207,26 +228,43 @@
 "public @interface LoggedIn {}]]>"
 
 #. Tag: para
-#: example.xml:27
+#: example.xml:30
 #, no-c-format
-msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr "現在,任何其它 Web Bean 都可輕易地注入目前的用戶:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
+msgstr ""
 
 #. Tag: programlisting
-#: example.xml:29
+#: example.xml:34
 #, no-c-format
 msgid ""
+"<![CDATA[public class UserDatabaseProducer {\n"
+"   @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:36
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
+"the current user:"
+msgstr "現在,任何其它 Web Bean 都可輕易地注入目前的用戶:"
+
+#. Tag: programlisting
+#: example.xml:38
+#, fuzzy, no-c-format
+msgid ""
 "<![CDATA[public class DocumentEditor {\n"
-"\n"
-"    @Current Document document;\n"
-"    @LoggedIn User currentUser;\n"
-"    @PersistenceContext EntityManager docDatabase;\n"
+"   @Inject Document document;\n"
+"   @Inject @LoggedIn User currentUser;\n"
+"   @Inject @DocumentDatabase EntityManager docDatabase;\n"
 "    \n"
-"    public void save() {\n"
-"        document.setCreatedBy(currentUser);\n"
-"        docDatabase.persist(document);\n"
-"    }\n"
-"    \n"
+"   public void save() {\n"
+"      document.setCreatedBy(currentUser);\n"
+"      docDatabase.persist(document);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DocumentEditor {\n"
@@ -243,11 +281,30 @@
 "}]]>"
 
 #. Tag: para
-#: example.xml:31
+#: example.xml:40
 #, no-c-format
+msgid "Or we can reference the current user in a JSF view:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:42
+#, no-c-format
 msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
-msgstr "但願此範例能針對於 Web Bean 程式撰寫模型(Programming Model)提供相關益處。在下個章節當中,我們將會更深入地探討 Web Bean 依賴注入(Web Beans dependency injection)。"
+"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
+"   signed in as #{currentUser.username}\n"
+"</h:panelGroup>]]>"
+msgstr ""
 
+#. Tag: para
+#: example.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"Hopefully, this example gave you a taste of the CDI programming model. In "
+"the next chapter, we'll explore dependency injection in greater depth."
+msgstr ""
+"但願此範例能針對於 Web Bean 程式撰寫模型(Programming Model)提供相關益處。在"
+"下個章節當中,我們將會更深入地探討 Web Bean 依賴注入(Web Beans dependency "
+"injection)。"
+
+#~ msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
+#~ msgstr "當然,<literal>@LoggedIn</literal> 是個綁定標記:"

Modified: doc/trunk/reference/zh-TW/extend.po
===================================================================
--- doc/trunk/reference/zh-TW/extend.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/extend.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: extend\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-13 11:07+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,30 +17,32 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: extend.xml:4
+#: extend.xml:5
 #, no-c-format
-msgid "Extending Web Beans"
-msgstr "延伸 Web Bean"
+msgid "Portable extensions"
+msgstr ""
 
 #. Tag: para
-#: extend.xml:6
-#, no-c-format
+#: extend.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
-msgstr "Web Bean 為架構的平台,它可用來進行其它技術的延伸與整合。因此,Web Bean 提供了一組讓 Web Bean 的 portable extension 開發人員可使用的 SPI。比方說,下列類型的延伸為 Web Bean 設計人員所設想的:"
+"CDI is intended to be a foundation for frameworks, extensions and "
+"integration with other technologies. Therefore, CDI exposes a set of SPIs "
+"for the use of developers of portable extensions to CDI. For example, the "
+"following kinds of extensions were envisaged by the designers of CDI:"
+msgstr ""
+"Web Bean 為架構的平台,它可用來進行其它技術的延伸與整合。因此,Web Bean 提供"
+"了一組讓 Web Bean 的 portable extension 開發人員可使用的 SPI。比方說,下列類"
+"型的延伸為 Web Bean 設計人員所設想的:"
 
 #. Tag: para
-#: extend.xml:14
+#: extend.xml:15
 #, no-c-format
 msgid "integration with Business Process Management engines,"
 msgstr "和商業流程管理上的整合、"
 
 #. Tag: para
-#: extend.xml:17
+#: extend.xml:18
 #, no-c-format
 msgid ""
 "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
@@ -48,282 +50,244 @@
 msgstr "和第三方架構(例如 Spring、Seam、GWT 或 Wicket)上的整合,以及"
 
 #. Tag: para
-#: extend.xml:21
-#, no-c-format
-msgid "new technology based upon the Web Beans programming model."
+#: extend.xml:23
+#, fuzzy, no-c-format
+msgid "new technology based upon the CDI programming model."
 msgstr "基於 Web Bean 程式撰寫模型(Programming Model)的新技術。"
 
 #. Tag: para
-#: extend.xml:25
+#: extend.xml:27
 #, no-c-format
+msgid "More formally, according to the spec:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:32
+#, no-c-format
+msgid "A portable extension may integrate with the container by:"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:35
+#, no-c-format
+msgid "Providing its own beans, interceptors and decorators to the container"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:40
+#, no-c-format
 msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:45
+#, no-c-format
+msgid "Providing a context implementation for a custom scope"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:50
+#, no-c-format
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
 "object."
 msgstr "延伸 Web Bean 的神經中樞為 <literal>Manager</literal> 這個物件。"
 
 #. Tag: title
-#: extend.xml:29
-#, no-c-format
-msgid "The <literal>Manager</literal> object"
+#: extend.xml:62
+#, fuzzy, no-c-format
+msgid "The <literal>BeanManager</literal> object"
 msgstr "<literal>Manager</literal> 物件"
 
 #. Tag: para
-#: extend.xml:31
-#, no-c-format
+#: extend.xml:64
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
-msgstr "<literal>Manager</literal> 介面能讓我們程式性地註冊並取得 Web Bean、攔截器(interceptor)、裝飾器(decorator)、觀察器(observer),以及 context。"
+"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"interceptors, decorators, observers and contexts programmatically."
+msgstr ""
+"<literal>Manager</literal> 介面能讓我們程式性地註冊並取得 Web Bean、攔截器"
+"(interceptor)、裝飾器(decorator)、觀察器(observer),以及 context。"
 
 #. Tag: programlisting
-#: extend.xml:34
+#: extend.xml:69
 #, no-c-format
 msgid ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
+"<![CDATA[public interface Manager {\n"
+"   public Object getReference(Bean<?> bean, Type beanType, "
+"CreationalContext<?> ctx);\n"
+"   public Object getInjectableReference(InjectionPoint ij, "
+"CreationalContext<?> ctx);\n"
+"   public <T> CreationalContext<T> createCreationalContext(Contextual<T> "
+"contextual);\n"
+"   public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings);\n"
+"   public Set<Bean<?>> getBeans(String name);\n"
+"   public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean);\n"
+"   public Bean<?> getPassivationCapableBean(String id);\n"
+"   public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans);\n"
+"   public void validate(InjectionPoint injectionPoint);\n"
 "   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
+"   public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
+"Annotation... bindings);\n"
+"   public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... bindings);\n"
+"   public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
+"Annotation... interceptorBindings);\n"
+"   public boolean isScope(Class<? extends Annotation> annotationType);\n"
+"   public boolean isNormalScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isPassivatingScope(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
+"   public boolean isInterceptorBindingType(Class<? extends Annotation> "
+"annotationType);\n"
+"   public boolean isStereotype(Class<? extends Annotation> annotationType);\n"
+"   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? "
+"extends Annotation> bindingType);\n"
+"   public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
 "   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
+"   public ELResolver getELResolver();\n"
+"   public ExpressionFactory wrapExpressionFactory(ExpressionFactory "
+"expressionFactory);\n"
+"   public <T> AnnotatedType<T> createAnnotatedType(Class<T> type);\n"
+"   public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
 "}]]>"
 msgstr ""
-"<![CDATA[public interface Manager\n"
-"{\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
-"\n"
-"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
-"\n"
-"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public Set<Bean<?>> resolveByName(String name);\n"
-"\n"
-"   public Object getInstanceByName(String name);\n"
-"\n"
-"   public <T> T getInstance(Bean<T> bean);\n"
-"\n"
-"   public void fireEvent(Object event, Annotation... bindings);\n"
-"\n"
-"   public Context getContext(Class<? extends Annotation> scopeType);\n"
-"\n"
-"   public Manager addContext(Context context);\n"
-"\n"
-"   public Manager addBean(Bean<?> bean);\n"
-"\n"
-"   public Manager addInterceptor(Interceptor interceptor);\n"
-"\n"
-"   public Manager addDecorator(Decorator decorator);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
-"         Annotation... bindings);\n"
-"\n"
-"   public <T> Manager removeObserver(Observer<T> observer,\n"
-"         TypeLiteral<T> eventType, Annotation... bindings);\n"
-"\n"
-"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
-"\n"
-"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
-"         Annotation... interceptorBindings);\n"
-"\n"
-"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
-"         Annotation... bindings);\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: extend.xml:36
-#, no-c-format
-msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
+#: extend.xml:71
+#, fuzzy, no-c-format
+msgid ""
+"We can obtain an instance of <literal>BeanManager</literal> via injection:"
 msgstr "我們可透過注入來取得 <literal>Manager</literal> 的一個 instance:"
 
 #. Tag: programlisting
-#: extend.xml:38
-#, no-c-format
-msgid "@Current Manager manager"
+#: extend.xml:73
+#, fuzzy, no-c-format
+msgid "@Inject BeanManager beanManager"
 msgstr "@Current Manager 管理員"
 
-#. Tag: title
-#: extend.xml:43
+#. Tag: para
+#: extend.xml:75
 #, no-c-format
-msgid "The <literal>Bean</literal> class"
-msgstr "<literal>Bean</literal> class"
+msgid ""
+"Java EE components may obtain an instance of <literal>BeanManager</literal> "
+"from JNDI by looking up the name <literal>java:comp/BeanManager</literal>. "
+"Any operation of <literal>BeanManager</literal> may be called at any time "
+"during the execution of the application."
+msgstr ""
 
 #. Tag: para
-#: extend.xml:45
-#, no-c-format
+#: extend.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
-msgstr "<literal>Bean</literal> 這個 abstract class 的 instance 代表 Web Bean。應用程式中的每個 Web Bean 都會有個與 <literal>Manager</literal> 物件註冊的 <literal>Bean</literal> instance。"
+"Let's study some of the interfaces exposed by the <literal>BeanManager</"
+"literal>."
+msgstr "延伸 Web Bean 的神經中樞為 <literal>Manager</literal> 這個物件。"
 
+#. Tag: title
+#: extend.xml:86
+#, fuzzy, no-c-format
+msgid "The <literal>Bean</literal> interface"
+msgstr "<literal>Context</literal> 介面"
+
+#. Tag: para
+#: extend.xml:88
+#, fuzzy, no-c-format
+msgid ""
+"Instances of the interface <literal>Bean</literal> represent beans. There is "
+"an instance of <literal>Bean</literal> registered with the "
+"<literal>BeanManager</literal> object for every bean in the application."
+msgstr ""
+"<literal>Bean</literal> 這個 abstract class 的 instance 代表 Web Bean。應用程"
+"式中的每個 Web Bean 都會有個與 <literal>Manager</literal> 物件註冊的 "
+"<literal>Bean</literal> instance。"
+
 #. Tag: programlisting
-#: extend.xml:50
+#: extend.xml:94
 #, no-c-format
 msgid ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
+"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
+"   public Set<Type> getTypes();\n"
+"   public Set<Annotation> getQualifiers();\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public String getName();\n"
+"   public Set<Class<? extends Annotation>> getStereotypes();\n"
+"   public Class<?> getBeanClass();\n"
+"   public boolean isAlternative();\n"
+"   public boolean isNullable();\n"
+"   public Set<InjectionPoint> getInjectionPoints();\n"
+"}]]>"
 msgstr ""
-"public abstract class Bean&lt;T&gt; {\n"
-"    \n"
-"    private final Manager manager;\n"
-"    \n"
-"    protected Bean(Manager manager) {\n"
-"        this.manager=manager;\n"
-"    }\n"
-"    \n"
-"    protected Manager getManager() {\n"
-"        return manager;\n"
-"    }\n"
-"    \n"
-"    public abstract Set&lt;Class&gt; getTypes();\n"
-"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
-"    public abstract String getName();\n"
-"    \n"
-"    public abstract boolean isSerializable();\n"
-"    public abstract boolean isNullable();\n"
-"\n"
-"    public abstract T create();\n"
-"    public abstract void destroy(T instance);\n"
-"    \n"
-"}"
 
 #. Tag: para
-#: extend.xml:52
-#, no-c-format
+#: extend.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
-msgstr "您可藉由調用 <literal>Manager.addBean()</literal> 來延伸 <literal>Bean</literal> class 並註冊 instance 以便提供較新、未經 Web Bean 規格定義(基本與企業級 Web Bean、producer method 以及 JMS 端點)的 Web Bean 上的支援。比方說,我們可使用 <literal>Bean</literal> class 來允許另一個架構所管理的物件被注入 Web Bean 之中。"
+"It's possible to implement the <literal>Bean</literal> interface and "
+"register instances by calling <literal>AfterBeanDiscovery.addBean()</"
+"literal> (<literal>AfterBeanDiscovery</literal> is a built-in event type "
+"that an extension can observe) to provide support for new kinds of beans, "
+"beyond those defined by the CDI specification. For example, we could use the "
+"<literal>Bean</literal> interface to allow objects managed by another "
+"framework to be injected into beans."
+msgstr ""
+"您可藉由調用 <literal>Manager.addBean()</literal> 來延伸 <literal>Bean</"
+"literal> class 並註冊 instance 以便提供較新、未經 Web Bean 規格定義(基本與企"
+"業級 Web Bean、producer method 以及 JMS 端點)的 Web Bean 上的支援。比方說,"
+"我們可使用 <literal>Bean</literal> class 來允許另一個架構所管理的物件被注入 "
+"Web Bean 之中。"
 
 #. Tag: para
-#: extend.xml:60
-#, no-c-format
+#: extend.xml:104
+#, fuzzy, no-c-format
 msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
+"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
 "specification: <literal>Interceptor</literal> and <literal>Decorator</"
 "literal>."
-msgstr "Web Bean 規格定義了 <literal>Bean</literal> 的兩個 subclass:<literal>Interceptor</literal> 和 <literal>Decorator</literal>。"
+msgstr ""
+"Web Bean 規格定義了 <literal>Bean</literal> 的兩個 subclass:"
+"<literal>Interceptor</literal> 和 <literal>Decorator</literal>。"
 
 #. Tag: title
-#: extend.xml:67
+#: extend.xml:112
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
 msgstr "<literal>Context</literal> 介面"
 
 #. Tag: para
-#: extend.xml:69
-#, no-c-format
+#: extend.xml:114
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
-msgstr "<literal>Context</literal> 介面支援新增額外的 Web Bean 功能,或針對新環境為內建功能進行延伸。"
+"CDI, or extension of the built-in scopes to new environments."
+msgstr ""
+"<literal>Context</literal> 介面支援新增額外的 Web Bean 功能,或針對新環境為內"
+"建功能進行延伸。"
 
 #. Tag: programlisting
-#: extend.xml:72
-#, no-c-format
+#: extend.xml:119
+#, fuzzy, no-c-format
 msgid ""
-"public interface Context {\n"
-"    \n"
-"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
-"    \n"
-"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
-"    \n"
-"    boolean isActive();\n"
-"    \n"
-"}"
+"<![CDATA[public interface Context {\n"
+"   public Class<? extends Annotation> getScope();\n"
+"   public <T> T get(Contextual<T> contextual, CreationalContext<T> "
+"creationalContext);\n"
+"   public <T> T get(Contextual<T> contextual);\n"
+"   boolean isActive();\n"
+"}]]>"
 msgstr ""
 "public interface Context {\n"
 "    \n"
@@ -336,11 +300,192 @@
 "}"
 
 #. Tag: para
-#: extend.xml:74
-#, no-c-format
+#: extend.xml:121
+#, fuzzy, no-c-format
 msgid ""
 "For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
-msgstr "比方說,我們可能會實做 <literal>Context</literal> 來新增一個商業流程功能至 Web Bean,或是為一個使用 Wicket 的應用程式新增對話功能上的支援。"
+"process scope to CDI, or to add support for the conversation scope to an "
+"application that uses Wicket."
+msgstr ""
+"比方說,我們可能會實做 <literal>Context</literal> 來新增一個商業流程功能至 "
+"Web Bean,或是為一個使用 Wicket 的應用程式新增對話功能上的支援。"
 
+#~ msgid "Extending Web Beans"
+#~ msgstr "延伸 Web Bean"
+
+#~ msgid ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface Manager\n"
+#~ "{\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(Class<T> type, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Set<Bean<?>> resolveByName(String name);\n"
+#~ "\n"
+#~ "   public Object getInstanceByName(String name);\n"
+#~ "\n"
+#~ "   public <T> T getInstance(Bean<T> bean);\n"
+#~ "\n"
+#~ "   public void fireEvent(Object event, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public Context getContext(Class<? extends Annotation> scopeType);\n"
+#~ "\n"
+#~ "   public Manager addContext(Context context);\n"
+#~ "\n"
+#~ "   public Manager addBean(Bean<?> bean);\n"
+#~ "\n"
+#~ "   public Manager addInterceptor(Interceptor interceptor);\n"
+#~ "\n"
+#~ "   public Manager addDecorator(Decorator decorator);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+#~ "eventType,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Manager removeObserver(Observer<T> observer,\n"
+#~ "         TypeLiteral<T> eventType, Annotation... bindings);\n"
+#~ "\n"
+#~ "   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+#~ "bindings);\n"
+#~ "\n"
+#~ "   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+#~ "         Annotation... interceptorBindings);\n"
+#~ "\n"
+#~ "   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+#~ "         Annotation... bindings);\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid "The <literal>Bean</literal> class"
+#~ msgstr "<literal>Bean</literal> class"
+
+#~ msgid ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"
+#~ msgstr ""
+#~ "public abstract class Bean&lt;T&gt; {\n"
+#~ "    \n"
+#~ "    private final Manager manager;\n"
+#~ "    \n"
+#~ "    protected Bean(Manager manager) {\n"
+#~ "        this.manager=manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    protected Manager getManager() {\n"
+#~ "        return manager;\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "    public abstract Set&lt;Class&gt; getTypes();\n"
+#~ "    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+#~ "    public abstract Class&lt;? extends Annotation&gt; getDeploymentType"
+#~ "(); \n"
+#~ "    public abstract String getName();\n"
+#~ "    \n"
+#~ "    public abstract boolean isSerializable();\n"
+#~ "    public abstract boolean isNullable();\n"
+#~ "\n"
+#~ "    public abstract T create();\n"
+#~ "    public abstract void destroy(T instance);\n"
+#~ "    \n"
+#~ "}"

Modified: doc/trunk/reference/zh-TW/extensions.po
===================================================================
--- doc/trunk/reference/zh-TW/extensions.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/extensions.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
 "VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -15,87 +15,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: extensions.xml:4
+#: extensions.xml:8
 #, no-c-format
-msgid "JSR-299 extensions available as part of Web Beans"
+msgid "CDI extensions available as part of Weld"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:7
+#: extensions.xml:11
 #, no-c-format
-msgid ""
-"These modules are usable on any JSR-299 implementation, not just Web Beans!"
+msgid "These modules are usable on any JSR-299 implementation, not just Weld!"
 msgstr ""
 
 #. Tag: title
-#: extensions.xml:15
+#: extensions.xml:17
 #, no-c-format
-msgid "Web Beans Logger"
+msgid "Weld Logger"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:17
+#: extensions.xml:19
 #, no-c-format
 msgid ""
 "Adding logging to your application is now even easier with simple injection "
-"of a logger object into any JSR-299 bean. Simply annotate a org.jboss."
-"webbeans.log.Log type member with <emphasis>@Logger</emphasis> and an "
-"appropriate logger object will be injected into any instance of the bean."
+"of a logger object into any CDI bean. Simply annotate a <literal>org.jboss."
+"weld.log.Log</literal> type member with the <emphasis>@Logger</emphasis> "
+"qualifier annotation and an appropriate logger object will be injected into "
+"any instance of the bean."
 msgstr ""
 
 #. Tag: programlisting
-#: extensions.xml:25
+#: extensions.xml:26
 #, no-c-format
 msgid ""
-"<![CDATA[public class Checkout {\n"
-"    import org.jboss.webbeans.annotation.Logger;\n"
-"    import org.jboss.webbeans.log.Log;\n"
-"    \n"
-"    @Logger\n"
-"    private Log log;\n"
+"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
+"import org.jboss.weld.log.Log;\n"
 "\n"
-"    void invoiceItems() {\n"
-"        ShoppingCart cart;\n"
-"        . . .\n"
-"        log.debug(\"Items invoiced for {0}\", cart);\n"
-"    }\n"
-"    \n"
+"public class Checkout {\n"
+"   private @Inject @Logger Log log;\n"
+"\n"
+"   public void invoiceItems() {\n"
+"      ShoppingCart cart;\n"
+"      ...\n"
+"      log.debug(\"Items invoiced for {0}\", cart);\n"
+"   }\n"
 "}]]>"
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:27
+#: extensions.xml:28
 #, no-c-format
 msgid ""
 "The example shows how objects can be interpolated into a message. This "
 "interpolation is done using <emphasis>java.text.MessageFormat</emphasis>, so "
 "see the JavaDoc for that class for more details. In this case, the "
-"ShoppingCart should have implemented the <emphasis>toString()</emphasis> "
-"method to produce a human readable value that is meaningful in messages. "
-"Normally, this call would have involved evaluating cart.toString() with "
-"String concatenation to produce a single String argument. Thus it was "
-"necessary to surround the call with an if-statement using the condition "
-"<emphasis>log.isDebugEnabled()</emphasis> to avoid the expensive String "
-"concatenation if the message was not actually going to be used. However, "
-"when using @Logger injected logging, the conditional test can be left out "
-"since the object arguments are not evaluated unless the message is going to "
-"be logged."
+"<literal>ShoppingCart</literal> should have implemented the "
+"<emphasis>toString()</emphasis> method to produce a human readable value "
+"that is meaningful in messages. Normally, this call would have involved "
+"evaluating cart.toString() with String concatenation to produce a single "
+"String argument. Thus it was necessary to surround the call with an if-"
+"statement using the condition <emphasis>log.isDebugEnabled()</emphasis> to "
+"avoid the expensive String concatenation if the message was not actually "
+"going to be used. However, when using <literal>@Logger</literal>-injected "
+"logging, the conditional test can be left out since the object arguments are "
+"not evaluated unless the message is going to be logged."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:44
+#: extensions.xml:41
 #, no-c-format
 msgid ""
-"You can add the Web Beans Logger to your project by including webbeans-"
-"logger.jar and webbeans-logging.jar to your project. Alternatively, express "
-"a dependency on the <literal>org.jboss.webbeans:webbeans-logger</literal> "
-"Maven artifact."
+"You can add the Weld Logger to your project by including weld-logger.jar, "
+"sl4j-api.jar and sl4j-jdk14.jar to your project. Alternatively, express a "
+"dependency on the <literal>org.jboss.weld:weld-logger</literal> Maven "
+"artifact."
 msgstr ""
 
 #. Tag: para
-#: extensions.xml:51
+#: extensions.xml:46
 #, no-c-format
 msgid ""
-"If you are using Web Beans as your JSR-299 implementation, there is no need "
-"to include <literal>webbeans-logging.jar</literal> as it's already included."
+"If you are using Weld as your JSR-299 implementation, there's no need to "
+"include sl4j as it's already included (and used internally)."
 msgstr ""

Modified: doc/trunk/reference/zh-TW/gettingstarted.po
===================================================================
--- doc/trunk/reference/zh-TW/gettingstarted.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/gettingstarted.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-08 19:37+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 18:21+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,2200 +17,2119 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: gettingstarted.xml:4
-#, fuzzy, no-c-format
-msgid "Getting started with Web Beans, the Reference Implementation of JSR-299"
-msgstr "Web Bean 參照實做"
-
-#. Tag: para
-#: gettingstarted.xml:6
-#, fuzzy, no-c-format
-msgid ""
-"The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
-"WebBeans\">the Seam project</ulink>. You can download the latest developer "
-"release of Web Beans from the <ulink url=\"http://seamframework.org/Download"
-"\">the downloads page</ulink>."
+#: gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Weld"
 msgstr ""
-"Web Bean 參照實作(Web Beans Reference Implementation)開發於 <ulink url="
-"\"http://seamframework.org/WebBeans\">the Seam project</ulink>。您可藉由 "
-"<ulink url=\"http://seamframework.org/Download\">the downloads page</ulink> "
-"來下載最新開發人員版本的 Web Bean。"
 
 #. Tag: para
-#: gettingstarted.xml:13
-#, fuzzy, no-c-format
+#: gettingstarted.xml:7
+#, no-c-format
 msgid ""
-"Web Beans comes with a two deployable example applications: "
-"<literal>webbeans-numberguess</literal>, a war example, containing only "
-"simple beans, and <literal>webbeans-translator</literal> an ear example, "
-"containing enterprise beans. There are also two variations on the "
-"numberguess example, the tomcat example (suitable for deployment to Tomcat) "
-"and the jsf2 example, which you can use if you are running JSF2. To run the "
-"examples you'll need the following:"
+"Weld comes with two starter example applications, in addition to more "
+"specialized examples. The first, <literal>weld-numberguess</literal>, is a "
+"web (WAR) example containing only non-transactional managed beans. This "
+"example can be run on a wide range of servers, including JBoss AS, "
+"GlassFish, Apache Tomcat, Jetty, Google App Engine, and any compliant Java "
+"EE 6 container. The second example, <literal>weld-translator</literal>, is "
+"an enterprise (EAR) example that contains session beans. This example must "
+"be run on JBoss AS 5.2, Glassfish 3.0 or any compliant Java EE 6 container."
 msgstr ""
-"Web Bean RI 包含了兩個可建置的範例應用程式:<literal>webbeans-numberguess</"
-"literal>,這是個 war 範例,並且只包含著基本的 bean,以及 <literal>webbeans-"
-"translator</literal>,這是個 ear 範例,並包含著企業級的 bean。若要執行這些範"
-"例,您將需要滿足下列需求:"
 
 #. Tag: para
-#: gettingstarted.xml:25
-#, fuzzy, no-c-format
-msgid "the latest release of Web Beans,"
-msgstr "最新版本的 Web Beans RI、"
-
-#. Tag: para
-#: gettingstarted.xml:28
-#, fuzzy, no-c-format
-msgid "JBoss AS 5.0.1.GA, or"
-msgstr "JBoss AS 5.0.0.GA,以及"
-
-#. Tag: para
-#: gettingstarted.xml:31
+#: gettingstarted.xml:16
 #, no-c-format
-msgid "Apache Tomcat 6.0.x, and"
+msgid ""
+"Both examples use JSF 2.0 as the web framework and, as such, can be found in "
+"the <literal>examples/jsf</literal> directory of the Weld distribution."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:34
-#, no-c-format
-msgid "Ant 1.7.0."
-msgstr "Ant 1.7.0。"
-
 #. Tag: title
-#: gettingstarted.xml:39
+#: gettingstarted.xml:22
 #, no-c-format
-msgid "Using JBoss AS 5"
+msgid "Prerequisites"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:41
-#, fuzzy, no-c-format
+#: gettingstarted.xml:24
+#, no-c-format
 msgid ""
-"You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www.jboss."
-"org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
 msgstr ""
-"目前,Web Beans RI 只能在 JBoss Application Server 5 上執行。您將需要由 "
-"<ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink> 來下"
-"載 JBoss AS 5.0.0.GA,然後再將它解壓縮。例如:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:47
+#. Tag: para
+#: gettingstarted.xml:30
 #, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.1.GA.zip]]>"
-msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
+msgid "the latest release of Weld, which contains the examples"
+msgstr "最新版本的 Web Beans RI、"
 
 #. Tag: para
-#: gettingstarted.xml:49 gettingstarted.xml:177
-#, fuzzy, no-c-format
-msgid ""
-"Next, download Web Beans from <ulink url=\"http://seamframework.org/Download"
-"\">seamframework.org</ulink>, and unzip it. For example"
+#: gettingstarted.xml:33
+#, no-c-format
+msgid "Ant 1.7.0, to build and deploy the examples"
 msgstr ""
-"接下來,請由 <ulink url=\"http://seamframework.org/Download\">seamframework."
-"org</ulink> 下載 Web Beans RI 並將它解壓縮。例如"
 
-#. Tag: programlisting
-#: gettingstarted.xml:55 gettingstarted.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-$VERSION.zip]]>"
+#. Tag: para
+#: gettingstarted.xml:36
+#, no-c-format
+msgid "a supported runtime environment (minimum versions shown)"
 msgstr ""
-"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:58
+#: gettingstarted.xml:39
 #, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>jboss.home</literal> "
-"property. For example:"
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
 msgstr ""
-"接下來,我們需要讓 Web Bean 知道 JBoss 的位置在哪裡。請編輯 <literal>jboss-"
-"as/build.properties</literal> 然後設置 <literal>jboss.home</literal> 內容。例"
-"如:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:64
-#, fuzzy, no-c-format
-msgid "jboss.home=/Applications/jboss-5.0.1.GA"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:66
-#, fuzzy, no-c-format
-msgid ""
-"To install Web Beans, you'll need Ant 1.7.0 installed, and the "
-"<literal>ANT_HOME</literal> environment variable set. For example:"
+#: gettingstarted.xml:42
+#, no-c-format
+msgid "GlassFish 3.0,"
 msgstr ""
-"若要安裝更新,您將需要先安裝 Ant 1.7.0,並設置 <literal>ANT_HOME</literal> 環"
-"境變數。例如:"
 
 #. Tag: para
-#: gettingstarted.xml:72
+#: gettingstarted.xml:45
 #, no-c-format
-msgid ""
-"JBoss 5.1.0 comes with Web Beans built in, so there is no need to update the "
-"server."
+msgid "Apache Tomcat 6.0.x (WAR example only), or"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:78
+#. Tag: para
+#: gettingstarted.xml:48
 #, no-c-format
-msgid ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
+msgid "Jetty 6.1.x (WAR example only)"
 msgstr ""
-"$ unzip apache-ant-1.7.0.zip\n"
-"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
-#: gettingstarted.xml:80
-#, fuzzy, no-c-format
+#: gettingstarted.xml:53
+#, no-c-format
 msgid ""
-"Then, you can install the update. The update script will use Maven to "
-"download Web Beans automatically."
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
 msgstr ""
-"接下來,您便可安裝更新。更新 script 將會使用 Maven 來自動地下載 Web Bean 以"
-"及 EJB3。"
 
-#. Tag: programlisting
-#: gettingstarted.xml:85
-#, fuzzy, no-c-format
+#. Tag: para
+#: gettingstarted.xml:58
+#, no-c-format
 msgid ""
-"$ cd webbeans-$VERSION/jboss-as\n"
-"$ ant update"
+"You'll need a full install of Ant 1.7.0. Some linux distributions only "
+"supply a partial installation of Ant which cause the build to fail. If you "
+"encounter problems, verify that ant-nodeps.jar is on the classpath."
 msgstr ""
-"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
-"$ ant update"
 
 #. Tag: para
-#: gettingstarted.xml:87
+#: gettingstarted.xml:64
 #, no-c-format
-msgid "Now, you're ready to deploy your first example!"
-msgstr "現在,您已準備好建置您的第一個範例!"
-
-#. Tag: para
-#: gettingstarted.xml:92
-#, fuzzy, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for JBoss AS, "
-"these are:"
-msgstr "這些範例的建置 script 提供了一些目標,它們包含了:"
+"In the next few sections, you'll be using the Ant command (<literal>ant</"
+"literal>) to invoke the Ant build script in each example to compile, "
+"assemble and deploy the example to JBoss AS and, for the WAR example, Apache "
+"Tomcat. You can also deploy the generated artifact (WAR or EAR) to any other "
+"container that supports Java EE 6, such as GlassFish 3."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:98
+#: gettingstarted.xml:71
 #, no-c-format
-msgid "<literal>ant restart</literal> - deploy the example in exploded format"
-msgstr "<literal>ant restart</literal> - 以分解的格式來建置範例"
-
-#. Tag: para
-#: gettingstarted.xml:104
-#, no-c-format
 msgid ""
-"<literal>ant explode</literal> - update an exploded example, without "
-"restarting the deployment"
+"If you have Maven installed, you can use the Maven command (<literal>mvn</"
+"literal>) to compile and assemble the standalone artifact (WAR or EAR) and, "
+"for the WAR example, run it in an embedded container."
 msgstr ""
-"<literal>ant explode</literal> - 在不重新建置的情況下更新一個已分解的範例"
 
 #. Tag: para
-#: gettingstarted.xml:110
+#: gettingstarted.xml:76
 #, no-c-format
 msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
-msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
+msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:115
+#. Tag: title
+#: gettingstarted.xml:81
 #, no-c-format
-msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr "<literal>ant undeploy</literal> - 將範例由伺服器中移除"
+msgid "Deploying to JBoss AS"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:120
+#: gettingstarted.xml:83
 #, no-c-format
-msgid "<literal>ant clean</literal> - clean the example"
-msgstr "<literal>ant clean</literal> - 清除範例"
+msgid ""
+"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"org/jbossas/\">JBoss AS 5.2.0.Beta1</ulink> or above. If a release of the "
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink src="
+"\"http://hudson.jboss.org/hudson/view/JBoss%20AS/job/JBoss-AS-5.x-sun16/"
+"\">nightly snapshot</ulink>. The reason JBoss AS 5.2.0.Beta1 or above is "
+"required is because it's the first release that has both CDI and Bean "
+"Validation support built-in, making it close enough to Java EE 6 to run the "
+"examples. The good news is that there are no additional modifications you "
+"have to make to the server. It's ready to go!"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:127
+#: gettingstarted.xml:92
 #, no-c-format
-msgid "To deploy the numberguess example:"
-msgstr "若要建置 numberguess 範例:"
+msgid ""
+"After you have downloaded JBoss AS, extract it. (We recommended renaming the "
+"folder to include the <literal>as</literal> qualifier so it's clear that "
+"it's the application server). You can move the extracted folder anywhere you "
+"like. Wherever it lays to rest, that's what we'll call the JBoss AS "
+"installation directory, or <literal>JBOSS_HOME</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:131
+#: gettingstarted.xml:99
 #, no-c-format
 msgid ""
-"$ cd examples/numberguess\n"
-"ant deploy"
+"<![CDATA[$> unzip jboss-5.2.*.zip\n"
+"$> mv jboss-5.2.*/ jboss-as-5.2]]>"
 msgstr ""
-"$ cd examples/numberguess\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:133
+#: gettingstarted.xml:101
 #, no-c-format
-msgid "Start JBoss AS:"
+msgid ""
+"In order for the build scripts to know where to deploy the example, you have "
+"to tell them where to find your JBoss AS installation (i.e., "
+"<literal>JBOSS_HOME</literal>). Create a new file named<literal>local.build."
+"properties</literal> in the examples directory of the Weld distribution and "
+"assign the path of your JBoss AS installation to the property key "
+"<literal>jboss.home</literal>, as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:137
+#: gettingstarted.xml:108
 #, fuzzy, no-c-format
-msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgid "<![CDATA[jboss.home=/path/to/jboss-as-5.2]]>"
 msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
-#: gettingstarted.xml:140
-#, no-c-format
-msgid "If you use Windows, use the <literal>run.bat</literal>script."
-msgstr ""
+#: gettingstarted.xml:110
+#, fuzzy, no-c-format
+msgid "You're now ready to deploy your first example!"
+msgstr "現在,您已準備好建置您的第一個範例!"
 
 #. Tag: para
-#: gettingstarted.xml:145 gettingstarted.xml:252
+#: gettingstarted.xml:114
 #, no-c-format
 msgid ""
-"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
-"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
 msgstr ""
-"請等待應用程式的建置,然後在 <ulink url=\"http://localhost:8080/webbeans-"
-"numberguess\"></ulink> 花上幾個小時!"
 
-#. Tag: para
-#: gettingstarted.xml:150
+#. Tag: programlisting
+#: gettingstarted.xml:119
 #, fuzzy, no-c-format
 msgid ""
-"Web Beans includes a second simple example that will translate your text "
-"into Latin. The numberguess example is a war example, and uses only simple "
-"beans; the translator example is an ear example, and includes enterprise "
-"beans, packaged in an EJB module. To try it out:"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant deploy]]>"
 msgstr ""
-"Web Bean RI 包含了第二個基本範例,它可將您的文字轉譯為拉丁文。numberguess 範"
-"例為一個 war 範例,並且只使用基本的 bean;轉譯器範例則為 ear 範例,並且包含著"
-"企業級的 bean,封裝於一個 EJB 模組中。若要嘗試:"
+"$ cd examples/numberguess\n"
+"ant deploy"
 
+#. Tag: para
+#: gettingstarted.xml:121
+#, no-c-format
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
+msgstr ""
+
 #. Tag: programlisting
-#: gettingstarted.xml:157
+#: gettingstarted.xml:125
 #, no-c-format
 msgid ""
-"$ cd examples/translator\n"
-"ant deploy"
+"<![CDATA[$> cd /path/to/jboss-as-5.2\n"
+"$> ./bin/run.sh]]>"
 msgstr ""
-"$ cd examples/translator\n"
-"ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:159
+#: gettingstarted.xml:127 gettingstarted.xml:369
 #, no-c-format
-msgid ""
-"Wait for the application to deploy, and visit <ulink url=\"http://"
-"localhost:8080/webbeans-translator\"></ulink>!"
+msgid "a Windows command window:"
 msgstr ""
-"請等待應用程式的建置並進入 <ulink url=\"http://localhost:8080/webbeans-"
-"translator\"></ulink>!"
 
-#. Tag: title
-#: gettingstarted.xml:167
+#. Tag: programlisting
+#: gettingstarted.xml:131
 #, no-c-format
-msgid "Using Apache Tomcat 6.0"
+msgid ""
+"<![CDATA[$> cd c:\\path\\to\\jboss-as-5.2\\bin\n"
+"$> run]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:169
-#, fuzzy, no-c-format
-msgid ""
-"You'll need to download Tomcat 6.0.18 or later from <ulink url=\"http://"
-"tomcat.apache.org/download-60.cgi\">tomcat.apache.org</ulink>, and unzip it. "
-"For example:"
+#: gettingstarted.xml:133 gettingstarted.xml:375
+#, no-c-format
+msgid "or you can start the server using an IDE, like Eclipse."
 msgstr ""
-"接下來,請由 <ulink url=\"http://seamframework.org/Download\">seamframework."
-"org</ulink> 下載 Web Beans RI 並將它解壓縮。例如"
 
-#. Tag: programlisting
-#: gettingstarted.xml:175
-#, fuzzy, no-c-format
+#. Tag: para
+#: gettingstarted.xml:138
+#, no-c-format
 msgid ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/apache-tomcat-6.0.18.zip]]>"
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink src=\"http://www.jboss.org/tools\">JBoss Tools</ulink> add-ons, which "
+"include a wide variety of tooling for JSR-299 and Java EE development, as "
+"well as an enhanced JBoss AS server view."
 msgstr ""
-"<![CDATA[$ cd /Applications\n"
-"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:185
-#, fuzzy, no-c-format
+#: gettingstarted.xml:145
+#, no-c-format
 msgid ""
-"Next, we need to tell Web Beans where Tomcat is located. Edit <literal>jboss-"
-"as/build.properties</literal> and set the <literal>tomcat.home</literal> "
-"property. For example:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can determine the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>."
 msgstr ""
-"接下來,我們需要讓 Web Bean 知道 JBoss 的位置在哪裡。請編輯 <literal>jboss-"
-"as/build.properties</literal> 然後設置 <literal>jboss.home</literal> 內容。例"
-"如:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:191
-#, fuzzy, no-c-format
-msgid "tomcat.home=/Applications/apache-tomcat-6.0.18"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:194
-#, fuzzy, no-c-format
+#: gettingstarted.xml:152
+#, no-c-format
 msgid ""
-"The build scripts for the examples offer a number of targets for Tomcat, "
-"these are:"
-msgstr "這些範例的建置 script 提供了一些目標,它們包含了:"
+"The Ant build script includes additional targets for JBoss AS to deploy and "
+"undeploy the archive in either exploded or packaged format and to tidy "
+"things up."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:200
+#: gettingstarted.xml:158
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.restart</literal> - deploy the example in exploded format"
+"<literal>ant restart</literal> - deploy the example in exploded format to "
+"JBoss AS"
 msgstr "<literal>ant restart</literal> - 以分解的格式來建置範例"
 
 #. Tag: para
-#: gettingstarted.xml:206
-#, fuzzy, no-c-format
+#: gettingstarted.xml:163
+#, no-c-format
 msgid ""
-"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"<literal>ant explode</literal> - update an exploded example, without "
 "restarting the deployment"
 msgstr ""
 "<literal>ant explode</literal> - 在不重新建置的情況下更新一個已分解的範例"
 
 #. Tag: para
-#: gettingstarted.xml:212
+#: gettingstarted.xml:168
 #, fuzzy, no-c-format
 msgid ""
-"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
-"format"
+"<literal>ant deploy</literal> - deploy the example in compressed jar format "
+"to JBoss AS"
 msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
 
 #. Tag: para
-#: gettingstarted.xml:217
+#: gettingstarted.xml:173
 #, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.undeploy</literal> - remove the example (in compressed "
-"jar format) from the server"
-msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
-
-#. Tag: para
-#: gettingstarted.xml:222
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
-"format) from the server"
+msgid "<literal>ant undeploy</literal> - remove the example from JBoss AS"
 msgstr "<literal>ant undeploy</literal> - 將範例由伺服器中移除"
 
 #. Tag: para
-#: gettingstarted.xml:227
-#, fuzzy, no-c-format
-msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#: gettingstarted.xml:178
+#, no-c-format
+msgid "<literal>ant clean</literal> - clean the example"
 msgstr "<literal>ant clean</literal> - 清除範例"
 
 #. Tag: para
-#: gettingstarted.xml:234
-#, fuzzy, no-c-format
-msgid "To deploy the numberguess example for tomcat:"
-msgstr "若要建置 numberguess 範例:"
+#: gettingstarted.xml:185
+#, no-c-format
+msgid ""
+"The second starter example, <literal>weld-translator</literal>, will "
+"translate your text into Latin. (Well, not really, but the stub is there for "
+"you to implement, at least. Good luck!) To try it out, switch to the "
+"translator example directory and execute the deploy target:"
+msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:238
+#: gettingstarted.xml:191
 #, fuzzy, no-c-format
 msgid ""
-"$ cd examples/tomcat\n"
-"ant tomcat.deploy"
+"<![CDATA[$> cd examples/jsf/translator\n"
+"$> ant deploy]]>"
 msgstr ""
 "$ cd examples/translator\n"
 "ant deploy"
 
 #. Tag: para
-#: gettingstarted.xml:240
+#: gettingstarted.xml:194
 #, no-c-format
-msgid "Start Tomcat:"
+msgid ""
+"The translator uses session beans, which are packaged in an EJB module "
+"within an EAR. Java EE 6 will allow session beans to be deployed in WAR "
+"modules, but that's a topic for a later chapter."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:244
-#, fuzzy, no-c-format
-msgid "$ /Applications/apache-tomcat-6.0.18/bin/startup.sh"
-msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
-
 #. Tag: para
-#: gettingstarted.xml:247
-#, no-c-format
-msgid "If you use Windows, use the <literal>startup.bat</literal>script."
+#: gettingstarted.xml:200
+#, fuzzy, no-c-format
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink src=\"http://localhost:8080/"
+"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
+"pseudo-translating."
 msgstr ""
+"在此我們將設置 context 路徑,它能提供給我們一個網址(<ulink url=\"http://"
+"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>)。"
 
-#. Tag: title
-#: gettingstarted.xml:260
-#, no-c-format
-msgid "Using GlassFish"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:262
+#: gettingstarted.xml:206
 #, no-c-format
-msgid "TODO"
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
 msgstr ""
 
 #. Tag: title
-#: gettingstarted.xml:266
+#: gettingstarted.xml:213
 #, no-c-format
-msgid "The numberguess example"
-msgstr "numberguess 範例"
-
-#. Tag: para
-#: gettingstarted.xml:268
-#, no-c-format
-msgid ""
-"In the numberguess application you get given 10 attempts to guess a number "
-"between 1 and 100. After each attempt, you will be told whether you are too "
-"high, or too low."
+msgid "Deploying to GlassFish"
 msgstr ""
-"在 numberguess 應用程式中,您將會有 10 次機會來猜一個介於 1 至 100 之間的號"
-"碼。每當猜過一遍,系統便會告知您您所輸入的數字是否太大或太小。"
 
 #. Tag: para
-#: gettingstarted.xml:274
+#: gettingstarted.xml:215
 #, no-c-format
 msgid ""
-"The numberguess example is comprised of a number of Web Beans, configuration "
-"files, and Facelet JSF pages, packaged as a war. Let's start with the "
-"configuration files."
+"Deploying to GlassFish should be easy, right? After all, it's the Java EE 6 "
+"reference implementation. Since it's the Java EE 6 reference implementation, "
+"that means it also bundles the JSR-299 reference implementation, Weld! So "
+"yes, it's very easy."
 msgstr ""
-"numberguess 範例包含了 Web Bean 的一個數字、配置檔案,以及 Facelet JSF 頁面,"
-"並且封裝為 war。讓我們先從配置檔案開始。"
 
 #. Tag: para
-#: gettingstarted.xml:280
+#: gettingstarted.xml:221
 #, no-c-format
 msgid ""
-"All the configuration files for this example are located in <literal>WEB-INF/"
-"</literal>, which is stored in <literal>WebContent</literal> in the source "
-"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
-"JSF to use Facelets:"
+"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"\"https://glassfish.dev.java.net/\">GlassFish V3</ulink> release (the "
+"preview release won't do). If the final release isn't yet available, you can "
+"download a <ulink src=\"http://download.java.net/glassfish/v3/promoted/"
+"\">promoted build</ulink> in the meantime. Select the b69 preview release or "
+"above that ends in either <literal>-unix.sh</literal> or <literal>-windows."
+"exe</literal> depending on your platform. After the download is complete, "
+"execute the installer. On Linux/Unix, you'll need to first make the script "
+"executable."
 msgstr ""
-"此範例的所有配置檔案都位於 <literal>WEB-INF/</literal> 中,並且它又儲存在來源"
-"樹中的 <literal>WebContent</literal> 裡。首先,我們有個可使用來指定 JSF 來使"
-"用 Facelet 的 <literal>faces-config.xml</literal>:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:288
+#: gettingstarted.xml:231
 #, 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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
+"<![CDATA[$> chmod 755 glassfish-v3-b69-unix.sh\n"
+"$> ./glassfish-v3-b69-unix.sh]]>"
 msgstr ""
-"<![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"
-"    <application>\n"
-"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
-"    </application>\n"
-"\n"
-"</faces-config>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:290
+#: gettingstarted.xml:233
 #, no-c-format
 msgid ""
-"There is an empty <literal>web-beans.xml</literal> file, which marks this "
-"application as a Web Beans application."
+"On Windows you can just click on the executable. Follow the instructions in "
+"the installer. It will create a single domain named <literal>domain1</"
+"literal>. You'll use that domain to deploy the example. We recommend that "
+"you choose <literal>7070</literal> as the main HTTP port to avoid conflicts "
+"with a running instance of JBoss AS (or Apache Tomcat)."
 msgstr ""
-"有個空的 <literal>web-beans.xml</literal> 檔案,它會將此應用程式標記為一個 "
-"Web Bean 應用程式。"
 
 #. Tag: para
-#: gettingstarted.xml:295
+#: gettingstarted.xml:240
 #, no-c-format
-msgid "Finally there is <literal>web.xml</literal>:"
-msgstr "最後為 <literal>web.xml</literal>:"
-
-#. Tag: section
-#: gettingstarted.xml:297
-#, fuzzy, no-c-format
 msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.xhtml</literal> "
-"</para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"Web Beans with any Servlet based web framework. </para> </note> <para> Let's "
-"take a look at the Facelet view: </para> <programlistingco> <areaspec> <area "
-"id=\"template\" coords=\"8\"/> <area id=\"messages2\" coords=\"12\"/> <area "
-"id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area "
-"id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords=\"33\"/> </"
-"areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML "
-"1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
-"dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages2\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
+"If you've deployed either of the starter examples, <literal>weld-"
+"numberguess</literal> or <literal>weld-translator</literal>, to JBoss AS, "
+"then you already have the deployable artifact you need. If not, switch to "
+"either of the two directories and build it."
 msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
-"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
-"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
-"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
-"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"\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 http://java.sun."
-"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
-"   \n"
-"   <display-name>Web Beans Numbergues example</display-name>\n"
-"\n"
-"   <!-- JSF -->\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>*.jsf</url-pattern>\n"
-"   </servlet-mapping>\n"
-"   \n"
-"   <context-param>\n"
-"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
-"      <param-value>.xhtml</param-value>\n"
-"   </context-param>\n"
-"\n"
-"   <session-config>\n"
-"      <session-timeout>10</session-timeout>\n"
-"   </session-config>\n"
-"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
-"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
-"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
-"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
-"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
-"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
-"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> </calloutlist> </"
-"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
-"the Web Beans RI with any Servlet based web framework. </para> </note> "
-"<para> Let's take a look at the Facelet view: </para> <programlistingco> "
-"<areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords="
-"\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords="
-"\"25\"/> <area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords="
-"\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//"
-"W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/"
-"xhtml1-transitional.dtd\">\n"
-"<html 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"
-"  <ui:composition template=\"template.xhtml\">\n"
-"    <ui:define name=\"content\">\n"
-"       <h1>Guess a number...</h1>\n"
-"       <h:form id=\"NumberGuessMain\">\n"
-"          <div style=\"color: red\">\n"
-"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
-"number gt game.guess and game.guess ne 0}\"/>\n"
-"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
-"number lt game.guess and game.guess ne 0}\"/>\n"
-"          </div>\n"
-"   \n"
-"          <div>\n"
-"             I'm thinking of a number between #{game.smallest} and #{game."
-"biggest}.\n"
-"             You have #{game.remainingGuesses} guesses.\n"
-"          </div>\n"
-"     \n"
-"          <div>\n"
-"             Your guess: \n"
-"             <h:inputText id=\"inputGuess\" \n"
-"                          value=\"#{game.guess}\" \n"
-"                          required=\"true\" \n"
-"                          size=\"3\" \n"
-"                          disabled=\"#{game.number eq game.guess}\">\n"
-"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
-"                                     minimum=\"#{game.smallest}\"/>\n"
-"             </h:inputText>\n"
-"            <h:commandButton id=\"GuessButton\"  \n"
-"                             value=\"Guess\" \n"
-"                             action=\"#{game.check}\" \n"
-"                             disabled=\"#{game.number eq game.guess}\"/>\n"
-"          </div>\n"
-"          <div>\n"
-"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
-"{game.reset}\" immediate=\"true\" />\n"
-"          </div>\n"
-"       </h:form>\n"
-"    </ui:define>\n"
-"  </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
-"<para> Facelets is a templating language for JSF, here we are wrapping our "
-"page in a template which defines the header. </para> </callout> <callout "
-"arearefs=\"messages\"> <para> There are a number of messages which can be "
-"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
-"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
-"range of numbers they can guess gets smaller - this sentance changes to make "
-"sure they know what range to guess in. </para> </callout> <callout arearefs="
-"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
-"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
-"range validator is used to make sure the user doesn't accidentally input a "
-"number outside of the range in which they can guess - if the validator "
-"wasn't here, the user might use up a guess on an out of range number. </"
-"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
-"must be a way for the user to send their guess to the server. Here we bind "
-"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
-"programlistingco>"
 
-#. Tag: para
-#: gettingstarted.xml:399
-#, no-c-format
-msgid ""
-"The example exists of 4 classes, the first two of which are binding types. "
-"First, there is the <literal>@Random</literal> binding type, used for "
-"injecting a random number:"
-msgstr ""
-"範例存有 4 個類別,前兩個為綁定類型。首先,有個使用來注入亂數號碼的 "
-"<literal>@Random</literal> 綁定類型:"
-
 #. Tag: programlisting
-#: gettingstarted.xml:405
+#: gettingstarted.xml:246
 #, no-c-format
 msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
+"<![CDATA[$> cd examples/jsf/numberguess (or examples/jsf/translator)\n"
+"$> ant package]]>"
 msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface Random {}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:407
+#: gettingstarted.xml:248
 #, no-c-format
 msgid ""
-"There is also the <literal>@MaxNumber</literal> binding type, used for "
-"injecting the maximum number that can be injected:"
+"The deployable archive for the <literal>weld-numberguess</literal>, named "
+"<literal>weld-numberguess.war</literal>, ends up in the example's "
+"<literal>target</literal> directory. The archive for the <literal>weld-"
+"translator</literal> example, named <literal>weld-translator.ear</literal>, "
+"ends up in the example's <literal>ear/target</literal> directory. All you "
+"need to do now is deploy them to GlassFish."
 msgstr ""
-"還有個用來注入可注入之最大號碼的 <literal>@MaxNumber</literal> 綁定類型:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:412
-#, no-c-format
-msgid ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-msgstr ""
-"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
-"@Retention(RUNTIME)\n"
-"@Documented\n"
-"@BindingType\n"
-"public @interface MaxNumber {}\n"
-"]]>"
-
 #. Tag: para
-#: gettingstarted.xml:414
+#: gettingstarted.xml:255
 #, no-c-format
 msgid ""
-"The <literal>Generator</literal> class is responsible for creating the "
-"random number, via a producer method. It also exposes the maximum possible "
-"number via a producer method:"
+"You deploy applications to GlassFish using the <ulink src=\"http://"
+"localhost:4848\">GlassFish Admin Console</ulink>. To get the Admin Console "
+"running, you need to start a GlassFish domain, in our case <literal>domain1</"
+"literal>. Switch to the <literal>bin</literal> folder in the directory where "
+"you installed GlassFish and execute the following command:"
 msgstr ""
-"<literal>Generator</literal> 類別負責透過產生器的方式來建立亂數號碼。它也會透"
-"過一個產生器的方式來顯示最大的可能號碼:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:420
+#: gettingstarted.xml:262
 #, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
+msgid "<![CDATA[$> asadmin start-domain domain1]]>"
 msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"   \n"
-"   private java.util.Random random = new java.util.Random( System."
-"currentTimeMillis() );\n"
-"   \n"
-"   private int maxNumber = 100;\n"
-"   \n"
-"   java.util.Random getRandom()\n"
-"   {\n"
-"      return random;\n"
-"   }\n"
-"   \n"
-"   @Produces @Random int next() { \n"
-"      return getRandom().nextInt(maxNumber); \n"
-"   }\n"
-"   \n"
-"   @Produces @MaxNumber int getMaxNumber()\n"
-"   {\n"
-"      return maxNumber;\n"
-"   }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: gettingstarted.xml:422
+#: gettingstarted.xml:264
 #, no-c-format
 msgid ""
-"You'll notice that the <literal>Generator</literal> is application scoped; "
-"therefore we don't get a different random each time."
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink src=\"http://localhost:4848\">http://localhost:4848</ulink>. In "
+"the tree on the left-hand side of the page, click on \"Applications\", then "
+"click on the \"Deploy...\" button under the heading \"Applications\" and "
+"select the deployable artifact for either of the two examples. The deployer "
+"should recognize that you have selected a Java EE artifact and allow you to "
+"start it. You can see the examples running at either <ulink src=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
 msgstr ""
-"您將會注意到 <literal>Generator</literal> 是屬於應用程式導向的;因此,我們不"
-"會每次都一定能得到不同的亂數號碼。"
 
 #. Tag: para
-#: gettingstarted.xml:427
+#: gettingstarted.xml:276
 #, no-c-format
 msgid ""
-"The final Web Bean in the application is the session scoped <literal>Game</"
-"literal>."
-msgstr "應用程式中最後的 Web Bean 為 session 導向的 <literal>Game</literal>。"
-
-#. Tag: para
-#: gettingstarted.xml:432
-#, no-c-format
-msgid ""
-"You'll note that we've used the <literal>@Named</literal> annotation, so "
-"that we can use the bean through EL in the JSF page. Finally, we've used "
-"constructor injection to initialize the game with a random number. And of "
-"course, we need to tell the player when they've won, so we give feedback "
-"with a <literal>FacesMessage</literal>."
+"The reason the same artifact can be deployed to both JBoss AS and GlassFish, "
+"without any modifications, is because all of the features being used are "
+"part of the standard platform. And what a capable platform it has become!"
 msgstr ""
-"您將會注意到我們使用了 <literal>@Named</literal> 標記,如此一來我們便可在 "
-"JSF 頁面中的 EL 上使用這個 bean。最後,我們使用了 constructor injection 來利"
-"用亂數號碼來初始化了這個遊戲。當然,當玩家贏時我們將需要告知玩家,並藉由一個 "
-"<literal>FacesMessage</literal> 來給予回應。"
 
-#. Tag: programlisting
-#: gettingstarted.xml:440
+#. Tag: title
+#: gettingstarted.xml:285
 #, no-c-format
-msgid ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
+msgid "Deploying to Apache Tomcat"
 msgstr ""
-"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
-"\n"
-"\n"
-"import javax.annotation.PostConstruct;\n"
-"import javax.faces.application.FacesMessage;\n"
-"import javax.faces.context.FacesContext;\n"
-"import javax.webbeans.AnnotationLiteral;\n"
-"import javax.webbeans.Current;\n"
-"import javax.webbeans.Initializer;\n"
-"import javax.webbeans.Named;\n"
-"import javax.webbeans.SessionScoped;\n"
-"import javax.webbeans.manager.Manager;\n"
-"\n"
-"@Named\n"
-"@SessionScoped\n"
-"public class Game\n"
-"{\n"
-"   private int number;\n"
-"   \n"
-"   private int guess;\n"
-"   private int smallest;\n"
-"   private int biggest;\n"
-"   private int remainingGuesses;\n"
-"   \n"
-"   @Current Manager manager;\n"
-"   \n"
-"   public Game()\n"
-"   {\n"
-"   }\n"
-"   \n"
-"   @Initializer\n"
-"   Game(@MaxNumber int maxNumber)\n"
-"   {      \n"
-"      this.biggest = maxNumber;\n"
-"   }\n"
-"\n"
-"   public int getNumber()\n"
-"   {\n"
-"      return number;\n"
-"   }\n"
-"   \n"
-"   public int getGuess()\n"
-"   {\n"
-"      return guess;\n"
-"   }\n"
-"   \n"
-"   public void setGuess(int guess)\n"
-"   {\n"
-"      this.guess = guess;\n"
-"   }\n"
-"   \n"
-"   public int getSmallest()\n"
-"   {\n"
-"      return smallest;\n"
-"   }\n"
-"   \n"
-"   public int getBiggest()\n"
-"   {\n"
-"      return biggest;\n"
-"   }\n"
-"   \n"
-"   public int getRemainingGuesses()\n"
-"   {\n"
-"      return remainingGuesses;\n"
-"   }\n"
-"   \n"
-"   public String check()\n"
-"   {\n"
-"      if (guess>number)\n"
-"      {\n"
-"         biggest = guess - 1;\n"
-"      }\n"
-"      if (guess<number)\n"
-"      {\n"
-"         smallest = guess + 1;\n"
-"      }\n"
-"      if (guess == number)\n"
-"      {\n"
-"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
-"(\"Correct!\"));\n"
-"      }\n"
-"      remainingGuesses--;\n"
-"      return null;\n"
-"   }\n"
-"   \n"
-"   @PostConstruct\n"
-"   public void reset()\n"
-"   {\n"
-"      this.smallest = 0;\n"
-"      this.guess = 0;\n"
-"      this.remainingGuesses = 10;\n"
-"      this.number = manager.getInstanceByType(Integer.class, new "
-"AnnotationLiteral<Random>(){});\n"
-"   }\n"
-"   \n"
-"}]]>"
 
-#. Tag: title
-#: gettingstarted.xml:443
-#, fuzzy, no-c-format
-msgid "The numberguess example in Tomcat"
-msgstr "numberguess 範例"
-
 #. Tag: para
-#: gettingstarted.xml:445
+#: gettingstarted.xml:287
 #, no-c-format
 msgid ""
-"The numberguess for Tomcat differs in a couple of ways. Firstly, Web Beans "
-"should be deployed as a Web Application library in <literal>WEB-INF/lib</"
-"literal>. For your convenience we provide a single jar suitable for running "
-"Web Beans in any servlet container <literal>webbeans-servlet.jar</literal>."
+"Servlet containers are not required to support Java EE services like CDI. "
+"However, you can use CDI in a servlet container like Tomcat by embedding a "
+"standalone CDI implementation such as Weld."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:454
+#: gettingstarted.xml:291
 #, no-c-format
 msgid ""
-"Of course, you must also include JSF and EL, as well common annotations "
-"(<literal>jsr250-api.jar</literal>) which a JEE server includes by default."
+"Weld comes with a servlet listener which bootstraps the CDI environment, "
+"registers the <literal>BeanManager</literal> in JNDI and provides injection "
+"into servlets. Basically, it emulates some of the work done by the Java EE "
+"container. (But you don't get enterprise features such as session beans and "
+"container-managed transactions.)"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:461
-#, no-c-format
+#: gettingstarted.xml:297
+#, fuzzy, no-c-format
 msgid ""
-"Secondly, we need to explicitly specify the servlet listener (used to boot "
-"Web Beans, and control it's interaction with requests) in <literal>web.xml</"
-"literal>:"
+"Let's give the Weld servlet extension a spin on Apache Tomcat. First, you'll "
+"need to download Tomcat 6.0.18 or later from <ulink src=\"http://tomcat."
+"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
 msgstr ""
+"接下來,請由 <ulink url=\"http://seamframework.org/Download\">seamframework."
+"org</ulink> 下載 Web Beans RI 並將它解壓縮。例如"
 
 #. Tag: programlisting
-#: gettingstarted.xml:467
-#, no-c-format
-msgid ""
-"<![CDATA[<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
-msgstr ""
-
-#. Tag: title
-#: gettingstarted.xml:472
+#: gettingstarted.xml:302
 #, fuzzy, no-c-format
-msgid "The numberguess example for Apache Wicket"
-msgstr "numberguess 範例"
-
-#. Tag: para
-#: gettingstarted.xml:473
-#, no-c-format
-msgid ""
-"Whilst JSR-299 specifies integration with Java ServerFaces, Web Beans allows "
-"you to inject into Wicket components, and also allows you to use a "
-"conversation context with Wicket. In this section, we'll walk you through "
-"the Wicket version of the numberguess example."
+msgid "<![CDATA[$> unzip apache-tomcat-6.0.18.zip]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:482
+#: gettingstarted.xml:304
 #, no-c-format
 msgid ""
-"You may want to review the Wicket documentation at <ulink url=\"http://"
-"wicket.apache.org/\">http://wicket.apache.org/</ulink>."
+"You have two choices for how you can deploy the application to Tomcat. You "
+"can deploy it by pushing the artifact to the hot deploy directory using Ant "
+"or you can deploy to the server across HTTP using a Maven plugin. The Ant "
+"approach doesn't require that you have Maven installed, so we'll start "
+"there. If you want to use Maven, you can just skip ahead."
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:488
+#. Tag: title
+#: gettingstarted.xml:312
 #, no-c-format
-msgid ""
-"Like the previous example, the Wicket WebBeans examples make use of the "
-"<literal>webbeans-servlet</literal> module. The use of the <ulink url="
-"\"http://jetty.mortbay.org/\">Jetty servlet container</ulink> is common in "
-"the Wicket community, and is chosen here as the runtime container in order "
-"to facilitate comparison between the standard Wicket examples and these "
-"examples, and also to show how the webbeans-servlet integration is not "
-"dependent upon Tomcat as the servlet container."
+msgid "Deploying with Ant"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:499
+#: gettingstarted.xml:314
 #, no-c-format
 msgid ""
-"These examples make use of the Eclipse IDE; instructions are also given to "
-"deploy the application from the command line."
+"In order for Ant to push the artifact to the Tomcat hot deploy directory, it "
+"needs to know where the Tomcat installation is located. Again, we need to "
+"set a property in the <literal>local.build.properties</literal> file in the "
+"examples directory of the Weld distribution. If you haven't yet created this "
+"file, do so now. Then assign the path of your Tomcat installation to the "
+"property key <literal>tomcat.home</literal>."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:505
-#, no-c-format
-msgid "Creating the Eclipse project"
-msgstr ""
+#. Tag: programlisting
+#: gettingstarted.xml:321
+#, fuzzy, no-c-format
+msgid "<![CDATA[tomcat.home=/path/to/apache-tomcat-6]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
-#: gettingstarted.xml:507
-#, no-c-format
-msgid "To generate an Eclipse project from the example:"
-msgstr ""
+#: gettingstarted.xml:323
+#, fuzzy, no-c-format
+msgid "Now you're ready to deploy the numberguess example to Tomcat!"
+msgstr "若要建置 numberguess 範例:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:511
+#. Tag: para
+#: gettingstarted.xml:327
 #, no-c-format
 msgid ""
-"<![CDATA[cd examples/wicket/numberguess\n"
-"mvn -Pjetty eclipse:eclipse]]>"
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:513
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:332
+#, fuzzy, no-c-format
 msgid ""
-"Then, from eclipse, choose <emphasis>File -> Import -> General -> Existing "
-"Projects into Workspace</emphasis>, select the root directory of the "
-"numberguess example, and click finish. Note that if you do not intend to run "
-"the example with jetty from within eclipse, omit the \"-Pjetty.\" This will "
-"create a project in your workspace called <literal>webbeans-wicket-"
-"numberguess</literal>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> ant tomcat.deploy]]>"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
-#. Tag: title
-#: gettingstarted.xml:529
-#, no-c-format
-msgid "Running the example from Eclipse"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:531
+#: gettingstarted.xml:335
 #, no-c-format
 msgid ""
-"This project follows the <literal>wicket-quickstart</literal> approach of "
-"creating an instance of Jetty in the <literal>Start</literal> class. So "
-"running the example is as simple as right-clicking on that Start class in "
-"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
-"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
-"should see console output related to Jetty starting up; then visit able "
-"<literal>http://localhost:8080</literal> to view the app. To debug choose "
-"<emphasis>Debug as Java Application</emphasis>."
+"The Ant build script includes additional targets for Tomcat to deploy and "
+"undeploy the archive in either exploded or packaged format. They are the "
+"same target names used for JBoss AS, prefixed with \"tomcat.\"."
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:546
-#, no-c-format
-msgid "Running the example from the command line in JBoss AS or Tomcat"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:548
-#, no-c-format
+#: gettingstarted.xml:341
+#, fuzzy, no-c-format
 msgid ""
-"This example can also be deployed from the command line in a (similar to the "
-"other examples). Assuming you have set up the <literal>build.properties</"
-"literal> file in the <literal>examples</literal> directory to specify the "
-"location of JBoss AS or Tomcat, as previously described, you can run "
-"<literal>ant deploy</literal> from the <literal>examples/wicket/numberguess</"
-"literal> directory, and access the application at <literal>http://"
-"localhost:8080/webbeans-numberguess-wicket</literal>."
-msgstr ""
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
+msgstr "<literal>ant restart</literal> - 以分解的格式來建置範例"
 
-#. Tag: title
-#: gettingstarted.xml:562
-#, no-c-format
-msgid "Understanding the code"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:564
-#, no-c-format
+#: gettingstarted.xml:346
+#, fuzzy, no-c-format
 msgid ""
-"JSF uses Unified EL expressions to bind view layer components in JSP or "
-"Facelet views to beans, Wicket defines it's components in Java. The markup "
-"is plain html with a one-to-one mapping between html elements and the view "
-"components. All view logic, including binding of components to models and "
-"controlling the response of view actions, is handled in Java. The "
-"integration of Web Beans with Wicket takes advantage of the same binding "
-"annotations used in your business layer to provide injection into your "
-"WebPage subclass (or into other custom wicket component subclasses)."
+"<literal>ant tomcat.explode</literal> - update an exploded example, without "
+"restarting the deployment"
 msgstr ""
+"<literal>ant explode</literal> - 在不重新建置的情況下更新一個已分解的範例"
 
 #. Tag: para
-#: gettingstarted.xml:576
-#, no-c-format
+#: gettingstarted.xml:351
+#, fuzzy, no-c-format
 msgid ""
-"The code in the wicket numberguess example is very similar to the JSF-based "
-"numberguess example. The business layer is identical!"
-msgstr ""
+"<literal>ant tomcat.deploy</literal> - deploy the example in compressed jar "
+"format to Tomcat"
+msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
 
 #. Tag: para
-#: gettingstarted.xml:581
-#, no-c-format
-msgid "Differences are:"
-msgstr ""
+#: gettingstarted.xml:356
+#, fuzzy, no-c-format
+msgid "<literal>ant tomcat.undeploy</literal> - remove the example from Tomcat"
+msgstr "<literal>ant undeploy</literal> - 將範例由伺服器中移除"
 
 #. Tag: para
-#: gettingstarted.xml:586
+#: gettingstarted.xml:363
 #, no-c-format
 msgid ""
-"Each wicket application must have a <literal>WebApplication</literal> "
-"subclass, In our case, our application class is <literal>SampleApplication</"
-"literal>:"
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:592
-#, no-c-format
+#: gettingstarted.xml:367
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
-"   @Override\n"
-"   public Class getHomePage() {\n"
-"      return HomePage.class;\n"
-"   }\n"
-"}]]>"
-msgstr ""
+"<![CDATA[$> cd /path/to/apache-tomcat-6\n"
+"$> ./bin/start.sh]]>"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
-#. Tag: para
-#: gettingstarted.xml:593
-#, no-c-format
+#. Tag: programlisting
+#: gettingstarted.xml:373
+#, fuzzy, no-c-format
 msgid ""
-"This class specifies which page wicket should treat as our home page, in our "
-"case, <literal>HomePage.class</literal>"
+"<![CDATA[$> cd c:\\path\\to\\apache-tomcat-6\\bin\n"
+"$> start]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
-#: gettingstarted.xml:599
+#: gettingstarted.xml:379
 #, no-c-format
 msgid ""
-"In <literal>HomePage</literal> we see typical wicket code to set up page "
-"elements. The bit that is interesting is the injection of the <literal>Game</"
-"literal> bean:"
+"Wait a few seconds for the application to deploy (or the application server "
+"to start) and see if you can figure out the most efficient approach to "
+"pinpoint the random number at the local URL <ulink src=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:605
+#. Tag: title
+#: gettingstarted.xml:388
 #, no-c-format
-msgid "<![CDATA[ @Current Game game;]]>"
+msgid "Deploying with Maven"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:607
+#: gettingstarted.xml:390
 #, no-c-format
 msgid ""
-"The <literal>Game</literal> bean is can then be used, for example, by the "
-"code for submitting a guess:"
+"You can also deploy the application to Tomcat using Maven. This section is a "
+"bit more advanced, so skip it unless you're itching to use Maven natively. "
+"Of course, you'll first need to make sure that you have Maven installed on "
+"your path, similar to how you setup Ant."
 msgstr ""
 
-#. Tag: programlisting
-#: gettingstarted.xml:612
-#, no-c-format
-msgid ""
-"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") { \n"
-"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
-"      if (game.check()) {]]>"
-msgstr ""
-
 #. Tag: para
-#: gettingstarted.xml:615
+#: gettingstarted.xml:396
 #, no-c-format
 msgid ""
-"All injections may be serialized; actual storage of the bean is managed by "
-"JSR-299. Note that Wicket components, like the HomePage and it "
-"subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+"The Maven plugin communicates with Tomcat over HTTP, so it doesn't care "
+"where you have installed Tomcat. However, the plugin configuration assumes "
+"you are running Tomcat in its default configuration, with a hostname of "
+"localhost and port <literal>8080</literal>. The <literal>readme.txt</"
+"literal> file in the example directory has information about how to modify "
+"the Maven settings to accommodate a different setup."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:621
+#: gettingstarted.xml:403
 #, no-c-format
 msgid ""
-"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
-"interceptors, decorators and lifecycle callbacks such as "
-"<literal>@PostConstruct</literal> or <literal>@Initializer</literal> methods."
+"To allow Maven to communicate with Tomcat over HTTP, edit the <literal>conf/"
+"tomcat-users.xml</literal> file in your Tomcat installation and add the "
+"following line:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:631
+#. Tag: programlisting
+#: gettingstarted.xml:408
 #, no-c-format
-msgid ""
-"The example uses AJAX for processing of button events, and dynamically hides "
-"buttons that are no longer relevant, for example when the user has won the "
-"game."
+msgid "<![CDATA[<user username=\"admin\" password=\"\" roles=\"manager\"/>]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:639
+#: gettingstarted.xml:410
 #, no-c-format
 msgid ""
-"In order to activate wicket for this webapp, the Wicket filter is added to "
-"web.xml, and our application class is specified:"
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
 msgstr ""
 
 #. Tag: programlisting
-#: gettingstarted.xml:644
+#: gettingstarted.xml:414
 #, no-c-format
-msgid ""
-"<![CDATA[<filter>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
-"class>\n"
-"   <init-param>\n"
-"      <param-name>applicationClassName</param-name>\n"
-"      <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</"
-"param-value>\n"
-"   </init-param>\n"
-"</filter>\n"
-"\n"
-"<filter-mapping>\n"
-"   <filter-name>wicket.numberguess-example</filter-name>\n"
-"   <url-pattern>/*</url-pattern>\n"
-"</filter-mapping>\n"
-" \n"
-"<listener>\n"
-"   <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-"
-"class>\n"
-"</listener>]]>"
+msgid "<![CDATA[$> mvn compile war:exploded tomcat:exploded -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:645
+#: gettingstarted.xml:416
 #, no-c-format
 msgid ""
-"Note that the servlet listener is also added, as in the Tomcat example, in "
-"order to boostrap Web Beans when Jetty starts, and to hook Web Beans into "
-"the Jetty servlet request and session lifecycles."
+"Once the application is deployed, you can redeploy it using this command:"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:658
-#, fuzzy, no-c-format
-msgid "The numberguess example for Java SE with Swing"
-msgstr "numberguess 範例"
+#. Tag: programlisting
+#: gettingstarted.xml:420
+#, no-c-format
+msgid "<![CDATA[$> mvn tomcat:redeploy -Ptomcat]]>"
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:660
+#: gettingstarted.xml:422
 #, no-c-format
 msgid ""
-"This example can be found in the <literal>examples/se/numberguess</literal> "
-"folder of the Web Beans distribution."
+"The <literal>-Ptomcat</literal> argument activates the <literal>tomcat</"
+"literal> profile defined in the Maven POM (<literal>pom.xml</literal>). "
+"Among other things, this profile activates the Tomcat plugin."
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:667
-#, fuzzy, no-c-format
-msgid "To run this example:"
-msgstr "轉譯器範例"
-
-#. Tag: para
-#: gettingstarted.xml:673
+#: gettingstarted.xml:427
 #, no-c-format
 msgid ""
-"Open a command line/terminal window in the <literal>examples/se/numberguess</"
-"literal> directory"
+"Rather than shipping the container off to a standalone Tomcat installation, "
+"you can also execute the application in an embedded Tomcat 6 container:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:679
+#. Tag: programlisting
+#: gettingstarted.xml:432
 #, no-c-format
-msgid "Ensure that Maven 2 is installed and in your PATH"
+msgid "<![CDATA[$> mvn war:inplace tomcat:run -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:684
+#: gettingstarted.xml:434
 #, no-c-format
 msgid ""
-"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
-"pointing to your JDK installation"
+"The advantage of using the embedded server is that changes to assets in "
+"<literal>src/main/webapp</literal> take effect immediately. If a change to a "
+"webapp configuration file is made, the application may automatically "
+"redeploy (depending on the plugin configuration). If you make a change to a "
+"classpath resource, you need to execute a build:"
 msgstr ""
 
-#. Tag: para
-#: gettingstarted.xml:690
-#, no-c-format
-msgid "execute the following command"
-msgstr ""
-
 #. Tag: programlisting
-#: gettingstarted.xml:693
+#: gettingstarted.xml:441
 #, no-c-format
-msgid "mvn -Drun"
+msgid "<![CDATA[$> mvn compile war:inplace -Ptomcat]]>"
 msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:699
-#, fuzzy, no-c-format
-msgid ""
-"There is an empty <literal>beans.xml</literal> file in the root package "
-"(<literal>src/main/resources/beans.xml</literal>), which marks this "
-"application as a Web Beans application."
-msgstr ""
-"有個空的 <literal>web-beans.xml</literal> 檔案,它會將此應用程式標記為一個 "
-"Web Bean 應用程式。"
-
-#. Tag: para
-#: gettingstarted.xml:705
+#: gettingstarted.xml:443
 #, no-c-format
 msgid ""
-"The game's main logic is located in <literal>Game.java</literal>. Here is "
-"the code for that class, highlighting the changes made from the web "
-"application version:"
+"There are several other Maven goals that you can use if you are hacking on "
+"the example, which are documented in the example's <literal>readme.txt</"
+"literal> file."
 msgstr ""
 
-#. Tag: section
-#: gettingstarted.xml:709
+#. Tag: title
+#: gettingstarted.xml:453
 #, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
-"\"name\" coords=\"1\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
-"\"validation\" coords=\"39\"/> <area id=\"reset\" coords=\"68\"/> </"
-"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
-"public class Game implements Serializable\n"
-"{\n"
-"\n"
-"    private int number;\n"
-"    private int guess;\n"
-"    private int smallest;\n"
-"\n"
-"    @MaxNumber\n"
-"    private int maxNumber;\n"
-"\n"
-"    private int biggest;\n"
-"    private int remainingGuesses;\n"
-"    private boolean validNumberRange = true;\n"
-"\n"
-"    @Current Generator rndGenerator;\n"
-"\n"
-"    ...\n"
-"\n"
-"    public boolean isValidNumberRange()\n"
-"    {\n"
-"        return validNumberRange;\n"
-"    }\n"
-"\n"
-"    public boolean isGameWon()\n"
-"    {\n"
-"        return guess == number;\n"
-"    }\n"
-"\n"
-"    public boolean isGameLost()\n"
-"    {\n"
-"        return guess != number && remainingGuesses <= 0;\n"
-"    }\n"
-"\n"
-"    public boolean check()\n"
-"    {\n"
-"        boolean result = false;\n"
-"\n"
-"        if ( checkNewNumberRangeIsValid() )\n"
-"        {\n"
-"            if ( guess > number )\n"
-"            {\n"
-"                biggest = guess - 1;\n"
-"            }\n"
-"\n"
-"            if ( guess < number )\n"
-"            {\n"
-"                smallest = guess + 1;\n"
-"            }\n"
-"\n"
-"            if ( guess == number )\n"
-"            {\n"
-"                result = true;\n"
-"            }\n"
-"\n"
-"            remainingGuesses--;\n"
-"        }\n"
-"\n"
-"        return result;\n"
-"    }\n"
-"\n"
-"    private boolean checkNewNumberRangeIsValid()\n"
-"    {\n"
-"        return validNumberRange = ( ( guess >= smallest ) && ( guess <= "
-"biggest ) );\n"
-"    }\n"
-"\n"
-"    @PostConstruct\n"
-"    public void reset()\n"
-"    {\n"
-"        this.smallest = 0;\n"
-"        ...\n"
-"        this.number = rndGenerator.next();\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
-"bean is application scoped instead of session scoped, since an instance of "
-"the application represents a single 'session'. </para> </callout> <callout "
-"arearefs=\"name\"> <para> The bean is not named, since it doesn't need to be "
-"accessed via EL </para> </callout> <callout arearefs=\"messages1\"> <para> "
-"There is no JSF <literal>FacesContext</literal> to add messages to. Instead "
-"the <literal>Game</literal> class provides additional information about the "
-"state of the current game including: </para> <itemizedlist> <listitem> "
-"<para> If the game has been won or lost </para> </listitem> <listitem> "
-"<para> If the most recent guess was invalid </para> </listitem> </"
-"itemizedlist> <para> This allows the Swing UI to query the state of the "
-"game, which it does indirectly via a class called <literal>MessageGenerator,"
-"</literal> in order to determine the appropriate messages to display to the "
-"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
-"<para> Validation of user input is performed during the <literal>check()</"
-"literal> method, since there is no dedicated validation phase </para> </"
-"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
-"method makes a call to the injected <literal>rndGenerator</literal> in order "
-"to get the random number at the start of each game. It cannot use "
-"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
-"Random&gt;(){})</literal> as the JSF example does because there will not be "
-"any active contexts like there is during a JSF request. </para> </callout> </"
-"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
-"literal> class depends on the current instance of <literal>Game</literal>, "
-"and queries its state in order to determine the appropriate messages to "
-"provide as the prompt for the user's next guess and the response to the "
-"previous guess. The code for <literal>MessageGenerator</literal> is as "
-"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
-"\"/> <area id=\"challenge\" coords=\"5\"/> <area id=\"result\" coords=\"16\"/"
-"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
-"MessageGenerator\n"
-"{\n"
-"    @Current Game game;\n"
-"\n"
-"    public String getChallengeMessage()\n"
-"    {\n"
-"        StringBuilder challengeMsg = new StringBuilder( \"I'm thinking of a "
-"number between \" );\n"
-"        challengeMsg.append( game.getSmallest() );\n"
-"        challengeMsg.append( \" and \" );\n"
-"        challengeMsg.append( game.getBiggest() );\n"
-"        challengeMsg.append( \". Can you guess what it is?\" );\n"
-"\n"
-"        return challengeMsg.toString();\n"
-"    }\n"
-"\n"
-"    public String getResultMessage()\n"
-"    {\n"
-"        if ( game.isGameWon() )\n"
-"        {\n"
-"            return \"You guess it! The number was \" + game.getNumber();\n"
-"        } else if ( game.isGameLost() )\n"
-"        {\n"
-"            return \"You are fail! The number was \" + game.getNumber();\n"
-"        } else if ( ! game.isValidNumberRange() )\n"
-"        {\n"
-"            return \"Invalid number range!\";\n"
-"        } else if ( game.getRemainingGuesses() == Game.MAX_NUM_GUESSES )\n"
-"        {\n"
-"            return \"What is your first guess?\";\n"
-"        } else\n"
-"        {\n"
-"            String direction = null;\n"
-"\n"
-"            if ( game.getGuess() < game.getNumber() )\n"
-"            {\n"
-"                direction = \"Higher\";\n"
-"            } else\n"
-"            {\n"
-"                direction = \"Lower\";\n"
-"            }\n"
-"\n"
-"            return direction + \"! You have \" + game.getRemainingGuesses() "
-"+ \" guesses left.\";\n"
-"        }\n"
-"    }\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
-"instance of <literal>Game</literal> for the application is injected here. </"
-"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
-"literal>'s state is interrogated to determine the appropriate challenge "
-"message. </para> </callout> <callout arearefs=\"result\"> <para> And again "
-"to determine whether to congratulate, console or encourage the user to "
-"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
-"Finally we come to the <literal>NumberGuessFrame</literal> class which "
-"provides the Swing front end to our guessing game. </para> "
-"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
-"\"messagesIn\" coords=\"4\"/> <area id=\"start\" coords=\"6\"/> <area id="
-"\"init\" coords=\"18\"/> <area id=\"guess1\" coords=\"34\"/> <area id="
-"\"replay\" coords=\"44\"/> <area id=\"refresh\" coords=\"50\"/> </areaspec> "
-"<programlisting role=\"JAVA\"><![CDATA[public class NumberGuessFrame  "
-"extends javax.swing.JFrame\n"
-"{\n"
-"    private @Current Game game;\n"
-"    private @Current MessageGenerator msgGenerator;\n"
-"\n"
-"    public void start( @Observes @Deployed Manager manager )\n"
-"    {\n"
-"        java.awt.EventQueue.invokeLater( new Runnable()\n"
-"            {\n"
-"                public void run()\n"
-"                {\n"
-"                    initComponents();\n"
-"                    setVisible( true );\n"
-"                }\n"
-"            } );\n"
-"    }\n"
-"\n"
-"    private void initComponents() {\n"
-"\n"
-"        buttonPanel = new javax.swing.JPanel();\n"
-"        mainMsgPanel = new javax.swing.JPanel();\n"
-"        mainLabel = new javax.swing.JLabel();\n"
-"        messageLabel = new javax.swing.JLabel();\n"
-"        guessText = new javax.swing.JTextField();\n"
-"        ...\n"
-"        mainLabel.setText(msgGenerator.getChallengeMessage());\n"
-"        mainMsgPanel.add(mainLabel);\n"
-"\n"
-"        messageLabel.setText(msgGenerator.getResultMessage());\n"
-"        mainMsgPanel.add(messageLabel);\n"
-"        ...\n"
-"    }\n"
-"\n"
-"    private void guessButtonActionPerformed( java.awt.event.ActionEvent "
-"evt )\n"
-"    {\n"
-"        int guess =  Integer.parseInt(guessText.getText());\n"
-"\n"
-"        game.setGuess( guess );\n"
-"        game.check();\n"
-"        refreshUI();\n"
-"\n"
-"    }\n"
-"\n"
-"    private void replayBtnActionPerformed( java.awt.event.ActionEvent evt )\n"
-"    {\n"
-"       game.reset();\n"
-"       refreshUI();\n"
-"    }\n"
-"\n"
-"    private void refreshUI()\n"
-"    {\n"
-"        mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
-"        messageLabel.setText( msgGenerator.getResultMessage() );\n"
-"        guessText.setText( \"\" );\n"
-"        guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
-"        guessText.requestFocus();\n"
-"    }\n"
-"\n"
-"    // swing components\n"
-"    private javax.swing.JPanel borderPanel;\n"
-"    ...\n"
-"    private javax.swing.JButton replayBtn;\n"
-"\n"
-"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
-"injected instance of the game (logic and state). </para> </callout> <callout "
-"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
-"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
-"application is started in the usual Web Beans SE way, by observing the "
-"<literal>@Deployed Manager</literal> event. </para> </callout> <callout "
-"arearefs=\"init\"> <para> This method initialises all of the Swing "
-"components. Note the use of the <literal>msgGenerator</literal>. </para> </"
-"callout> <callout arearefs=\"guess1\"> <para> "
-"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
-"button is clicked, and it does the following: </para> <itemizedlist> "
-"<listitem> <para> Gets the guess entered by the user and sets it as the "
-"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
-"<para> Calls <literal>game.check()</literal> to validate and perform one "
-"'turn' of the game </para> </listitem> <listitem> <para> Calls "
-"<literal>refreshUI</literal>. If there were validation errors with the "
-"input, this will have been captured during <literal>game.check()</literal> "
-"and as such will be reflected in the messeges returned by "
-"<literal>MessageGenerator</literal> and subsequently presented to the user. "
-"If there are no validation errors then the user will be told to guess again "
-"(higher or lower) or that the game has ended either in a win (correct guess) "
-"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
-"callout> <callout arearefs=\"replay\"> <para> "
-"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
-"()</literal> to start a new game and refreshes the messages in the UI. </"
-"para> </callout> <callout arearefs=\"refresh\"> <para> <literal>refreshUI</"
-"literal> uses the <literal>MessageGenerator</literal> to update the messages "
-"to the user based on the current state of the Game. </para> </callout> </"
-"calloutlist> </programlistingco>"
+msgid "Deploying to Jetty"
 msgstr ""
 
-#. Tag: title
-#: gettingstarted.xml:917
-#, no-c-format
-msgid "The translator example"
-msgstr "轉譯器範例"
-
 #. Tag: para
-#: gettingstarted.xml:919
+#: gettingstarted.xml:457
 #, no-c-format
 msgid ""
-"The translator example will take any sentences you enter, and translate them "
-"to Latin."
-msgstr "轉譯器範例能接受您所輸入的任何句子,然後將它們翻譯成拉丁文。"
+"Support for Jetty in the examples is a more recent addition. Since Jetty is "
+"traditionally used with Maven, there are no Ant targets. You must invoke the "
+"Maven build directly to deploy the examples to Jetty out of the box. Also, "
+"only the <literal>weld-numberguess</literal> example is configured for Jetty "
+"support at the time of writing."
+msgstr ""
 
 #. Tag: para
-#: gettingstarted.xml:924
+#: gettingstarted.xml:464
 #, no-c-format
 msgid ""
-"The translator example is built as an ear, and contains EJBs. As a result, "
-"it's structure is more complex than the numberguess example."
+"If you've read through the entire Tomcat section, then you're all ready to "
+"go. The Maven build parallels the embedded Tomcat deployment. If not, don't "
+"worry. We'll still go over everything that you need to know again in this "
+"section."
 msgstr ""
-"轉換器範例被建置為一個 ear 並包含著 EJB。正因如此,它的結構比 numberguess 範"
-"例要複雜得多。"
 
 #. Tag: para
-#: gettingstarted.xml:930
+#: gettingstarted.xml:470
 #, no-c-format
 msgid ""
-"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
-"this structure much simpler!"
+"The Maven POM (<literal>pom.xml</literal>) includes a profile named "
+"<literal>jetty</literal> that activates the Maven Jetty plugin, which you "
+"can use to start Jetty in embedded mode and deploy the application in place. "
+"You don't need anything else installed except to have the Maven command "
+"(<literal>mvn</literal>) on your path. The rest will be downloaded from the "
+"internet when the build is run."
 msgstr ""
-"EJB 3.1 和 Jave EE 6 能讓您將 EJB 封裝為 war,並使得該結構變得更為簡樸!"
 
 #. Tag: para
-#: gettingstarted.xml:936
+#: gettingstarted.xml:479
 #, no-c-format
 msgid ""
-"First, let's take a look at the ear aggregator, which is located in "
-"<literal>webbeans-translator-ear</literal> module. Maven automatically "
-"generates the <literal>application.xml</literal> for us:"
+"To run the <literal>weld-numberguess</literal> example on Jetty, switch to "
+"the example directory and execute the <literal>inplace</literal> goal of the "
+"Maven WAR plugin followed by the <literal>run</literal> goal of the Maven "
+"Jetty plugin with the <literal>jetty</literal> profile enabled, as follows:"
 msgstr ""
-"首先,讓我們先來看一下 ear 聚合器,它位於 <literal>webbeans-translator-ear</"
-"literal> 模組中。Maven 會自動地為我們產生 <literal>application.xml</"
-"literal>:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:942
+#: gettingstarted.xml:485
 #, no-c-format
 msgid ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
+"<![CDATA[$> cd examples/jsf/numberguess\n"
+"$> mvn war:inplace jetty:run -Pjetty]]>"
 msgstr ""
-"<![CDATA[<plugin>\n"
-"   <groupId>org.apache.maven.plugins</groupId>\n"
-"   <artifactId>maven-ear-plugin</artifactId>\n"
-"   <configuration>\n"
-"      <modules>\n"
-"         <webModule>\n"
-"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
-"            <artifactId>webbeans-translator-war</artifactId>\n"
-"            <contextRoot>/webbeans-translator</contextRoot>\n"
-"         </webModule>\n"
-"      </modules>\n"
-"   </configuration>\n"
-"</plugin>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:944
+#: gettingstarted.xml:487
 #, no-c-format
 msgid ""
-"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)."
+"The log output of Jetty will be shown in the console. Once Jetty reports "
+"that the application has deployed, you can access it at the following local "
+"URL: <ulink src=\"http://localhost:9090/weld-numberguess\">http://"
+"localhost:9090/weld-numberguess</ulink>. The port is defined in the Maven "
+"Jetty plugin configuration within the <literal>jetty</literal> profile."
 msgstr ""
-"在此我們將設置 context 路徑,它能提供給我們一個網址(<ulink url=\"http://"
-"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
-"translator</ulink>)。"
 
 #. Tag: para
-#: gettingstarted.xml:950
+#: gettingstarted.xml:494
 #, no-c-format
 msgid ""
-"If you aren't using Maven to generate these files, you would need "
-"<literal>META-INF/application.xml</literal>:"
+"Any changes to assets in <literal>src/main/webapp</literal> take effect "
+"immediately. If a change to a webapp configuration file is made, the "
+"application may automatically redeploy. The redeploy behavior can be fined-"
+"tuned in the plugin configuration. If you make a change to a classpath "
+"resource, you need to execute a build and the <literal>inplace</literal> "
+"goal of the Maven WAR plugin, again with the <literal>jetty</literal> "
+"profile enabled."
 msgstr ""
-"若您不使用 Maven 來產生這些檔案,那麼您將需要 <literal>META-INF/application."
-"xml</literal>:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:955
+#: gettingstarted.xml:501
 #, 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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
+msgid "<![CDATA[$> mvn compile war:inplace -Pjetty]]>"
 msgstr ""
-"<![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 http://"
-"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
-"             version=\"5\">\n"
-"  <display-name>webbeans-translator-ear</display-name>\n"
-"  <description>Ear Example for the reference implementation of JSR 299: Web "
-"Beans</description>\n"
-"  \n"
-"  <module>\n"
-"    <web>\n"
-"      <web-uri>webbeans-translator.war</web-uri>\n"
-"      <context-root>/webbeans-translator</context-root>\n"
-"    </web>\n"
-"  </module>\n"
-"  <module>\n"
-"    <ejb>webbeans-translator.jar</ejb>\n"
-"  </module>\n"
-"</application>]]>"
 
 #. Tag: para
-#: gettingstarted.xml:958
-#, fuzzy, no-c-format
-msgid ""
-"Next, lets look at the war. Just as in the numberguess example, we have a "
-"<literal>faces-config.xml</literal> (to enable Facelets) and a <literal>web."
-"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr ""
-"接下來,讓我們看一下 war。就和 numberguess 範例中一樣,我們在 "
-"<literal>WebContent/WEB-INF</literal> 中有個 <literal>faces-config.xml</"
-"literal>(用來啟用 Facelets)以及一個 <literal>web.xml</literal>(用來啟用 "
-"JSF)。"
-
-#. Tag: para
-#: gettingstarted.xml:965
+#: gettingstarted.xml:503
 #, no-c-format
 msgid ""
-"More intersting is the facelet used to translate text. Just as in the "
-"numberguess example we have a template, which surrounds the form (ommitted "
-"here for brevity):"
+"The <literal>war:inplace</literal> goal copies the compiled classes and JARs "
+"inside <literal>src/main/webapp</literal>, under <literal>WEB-INF/classes</"
+"literal> and <literal>WEB-INF/lib</literal>, respectively, mixing source and "
+"compiled files. However, the build does work around these temporary files by "
+"excluding them from the packaged WAR and cleaning them during the Maven "
+"clean phase."
 msgstr ""
-"還有更有趣的就是使用來轉換文字的 facelet。就和 numberguess 範例中一樣,我們有"
-"個圍繞著 form 的頁面格式(在此將省略不提):"
 
-#. Tag: programlisting
-#: gettingstarted.xml:971
-#, no-c-format
-msgid ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
-msgstr ""
-"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
-"            \n"
-"   <table>\n"
-"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
-"         <td>\n"
-"            Your text\n"
-"         </td>\n"
-"         <td>\n"
-"            Translation\n"
-"         </td>\n"
-"      </tr>\n"
-"      <tr>\n"
-"         <td>\n"
-"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
-"required=\"true\" rows=\"5\" cols=\"80\" />\n"
-"         </td>\n"
-"         <td>\n"
-"            <h:outputText value=\"#{translator.translatedText}\" />\n"
-"         </td>\n"
-"      </tr>\n"
-"   </table>\n"
-"   <div>\n"
-"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
-"{translator.translate}\"/>\n"
-"   </div>\n"
-"   \n"
-"</h:form>]]>"
-
 #. Tag: para
-#: gettingstarted.xml:973
+#: gettingstarted.xml:510
 #, no-c-format
 msgid ""
-"The user can enter some text in the lefthand textarea, and hit the translate "
-"button to see the result to the right."
+"You have two options if you want to run the example on Jetty from the IDE. "
+"You can either install the m2eclispe[link] plugin and run the goals as "
+"described above. Your other option is to start the Jetty container from a "
+"Java application."
 msgstr ""
-"用戶可在左手邊的文字區域中輸入一些文字,然後點選轉譯按鈕並於右手邊的區域中查"
-"看結果。"
 
 #. Tag: para
-#: gettingstarted.xml:978
+#: gettingstarted.xml:516
 #, no-c-format
-msgid ""
-"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
-"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
-"empty <literal>web-beans.xml</literal>, used to mark the archive as "
-"containing Web Beans."
+msgid "First, initialize the Eclipse project:"
 msgstr ""
-"最後,讓我們來看一下 ejb 模組 <literal>webbeans-translator-ejb</literal>。在 "
-"<literal>src/main/resources/META-INF</literal> 中只有一個用來將 archive 標記"
-"為包含著 Web Bean 的空 <literal>web-beans.xml</literal>。"
 
-#. Tag: para
-#: gettingstarted.xml:986
+#. Tag: programlisting
+#: gettingstarted.xml:520
 #, no-c-format
-msgid ""
-"We've saved the most interesting bit to last, the code! The project has two "
-"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
-"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
-"literal> and <literal>SentenceTranslator</literal>. You should be getting "
-"quite familiar with what a Web Bean looks like by now, so we'll just "
-"highlight the most interesting bits here."
+msgid "<![CDATA[$> mvn clean eclipse:clean eclipse:eclipse -Pjetty-ide]]>"
 msgstr ""
-"我們將最有趣的部份保留到了最後,那就是程式碼!該專案含有兩個基本的 bean,"
-"<literal>SentenceParser</literal> 和 <literal>TextTranslator</literal>,以及"
-"兩個企業級的 bean,<literal>TranslatorControllerBean</literal> 和 "
-"<literal>SentenceTranslator</literal>。到了現在您應該已經很熟悉 Web Bean 長得"
-"如何了,因此我們在此將只著重於其它較有趣的部份。"
 
 #. Tag: para
-#: gettingstarted.xml:996
+#: gettingstarted.xml:522
 #, no-c-format
 msgid ""
-"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
-"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
-"initialization:"
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
 msgstr ""
-"<literal>SentenceParser</literal> 和 <literal>TextTranslator</literal> 兩者皆"
-"為相依性的 bean,並且 <literal>TextTranslator</literal> 使用了 constructor 初"
-"始化:"
 
 #. Tag: programlisting
-#: gettingstarted.xml:1002
+#: gettingstarted.xml:526
 #, no-c-format
-msgid ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
+msgid "<![CDATA[$> mvn war:inplace -Pjetty-ide]]>"
 msgstr ""
-"<![CDATA[public class TextTranslator { \n"
-"   private SentenceParser sentenceParser; \n"
-"   private Translator sentenceTranslator; \n"
-"   \n"
-"   @Initializer\n"
-"   TextTranslator(SentenceParser sentenceParser, Translator "
-"sentenceTranslator) \n"
-"   { \n"
-"      this.sentenceParser = sentenceParser; \n"
-"      this.sentenceTranslator = sentenceTranslator;]]>"
 
 #. Tag: para
-#: gettingstarted.xml:1004
+#: gettingstarted.xml:528
 #, no-c-format
 msgid ""
-"<literal>TextTranslator</literal> is a stateless bean (with a local business "
-"interface), where the magic happens - of course, we couldn't develop a full "
-"translator, but we gave it a good go!"
+"Now, you are ready to run the server in Eclipse. Import the project into "
+"your Eclipse workspace using \"Import Existing Project into Workspace. Then, "
+"find the start class in <literal>src/jetty/java</literal> and run its main "
+"method as a Java Application. Jetty will launch. You can view the "
+"application at the following local URL: <ulink src=\"http://localhost:8080"
+"\">http://localhost:8080</ulink>. Pay particular attention to the port in "
+"the URL and the lack of a trailing context path."
 msgstr ""
-"<literal>TextTranslator</literal> 是個無狀態的 bean(以及一個本地的商業介"
-"面)- 當然,我們無法開發一個完整的轉譯器。"
 
 #. Tag: para
-#: gettingstarted.xml:1010
+#: gettingstarted.xml:536
 #, no-c-format
 msgid ""
-"Finally, there is UI orientated controller, that collects the text from the "
-"user, and dispatches it to the translator. This is a request scoped, named, "
-"stateful session bean, which injects the translator."
+"Now that you have gotten the starter applications deployed on the server of "
+"your choice, you probably want to know a little bit about how they actually "
+"work."
 msgstr ""
-"最後,有個 UI 導向的控制器,它會藉由用戶收集文字然後將它發送給轉譯器。這是個"
-"請求導向、被命名,而有狀態的 session bean,並且會注入轉譯器。"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1016
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
-msgstr ""
-"<![CDATA[@Stateful\n"
-"@RequestScoped\n"
-"@Named(\"translator\")\n"
-"public class TranslatorControllerBean implements TranslatorController\n"
-"{\n"
-"   \n"
-"   @Current TextTranslator translator;]]>"
+#, fuzzy
+#~ msgid ""
+#~ "Getting started with Web Beans, the Reference Implementation of JSR-299"
+#~ msgstr "Web Bean 參照實做"
 
-#. Tag: para
-#: gettingstarted.xml:1018
-#, no-c-format
-msgid "The bean also has getters and setters for all the fields on the page."
-msgstr "這個 bean 針對於頁面上所有欄位都有 getter 與 setter。"
+#, fuzzy
+#~ msgid ""
+#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
+#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
+#~ "developer release of Web Beans from the <ulink url=\"http://seamframework."
+#~ "org/Download\">the downloads page</ulink>."
+#~ msgstr ""
+#~ "Web Bean 參照實作(Web Beans Reference Implementation)開發於 <ulink url="
+#~ "\"http://seamframework.org/WebBeans\">the Seam project</ulink>。您可藉由 "
+#~ "<ulink url=\"http://seamframework.org/Download\">the downloads page</"
+#~ "ulink> 來下載最新開發人員版本的 Web Bean。"
 
-#. Tag: para
-#: gettingstarted.xml:1022
-#, no-c-format
-msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr ""
-"因為這是個 stateful(有狀態)的 session bean,因此我們必須要有個 remove "
-"method:"
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans comes with a two deployable example applications: "
+#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
+#~ "simple beans, and <literal>webbeans-translator</literal> an ear example, "
+#~ "containing enterprise beans. There are also two variations on the "
+#~ "numberguess example, the tomcat example (suitable for deployment to "
+#~ "Tomcat) and the jsf2 example, which you can use if you are running JSF2. "
+#~ "To run the examples you'll need the following:"
+#~ msgstr ""
+#~ "Web Bean RI 包含了兩個可建置的範例應用程式:<literal>webbeans-"
+#~ "numberguess</literal>,這是個 war 範例,並且只包含著基本的 bean,以及 "
+#~ "<literal>webbeans-translator</literal>,這是個 ear 範例,並包含著企業級的 "
+#~ "bean。若要執行這些範例,您將需要滿足下列需求:"
 
-#. Tag: programlisting
-#: gettingstarted.xml:1026
-#, no-c-format
-msgid ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
-msgstr ""
-"<![CDATA[   @Remove\n"
-"   public void remove()\n"
-"   {\n"
-"      \n"
-"   }]]>"
+#, fuzzy
+#~ msgid "JBoss AS 5.0.1.GA, or"
+#~ msgstr "JBoss AS 5.0.0.GA,以及"
 
-#. Tag: para
-#: gettingstarted.xml:1028
-#, no-c-format
-msgid ""
-"The Web Beans manager will call the remove method for you when the bean is "
-"destroyed; in this case at the end of the request."
-msgstr ""
-"當 bean 被毀掉後,Web Bean 管理員會為您調用 remove 這個 method;在此情況下為"
-"請求結束之後。"
+#~ msgid "Ant 1.7.0."
+#~ msgstr "Ant 1.7.0。"
 
-#. Tag: para
-#: gettingstarted.xml:1034
-#, fuzzy, no-c-format
-msgid ""
-"That concludes our short tour of the Web Beans examples. For more on Web "
-"Beans , or to help out, please visit <ulink url=\"http://www.seamframework."
-"org/WebBeans/Development\">http://www.seamframework.org/WebBeans/"
-"Development</ulink>."
-msgstr ""
-"這結束了我們簡短的 Web Bean RI 範例。如欲取得更多有關於 RI 的相關資訊,或是提"
-"供相關協助,請參閱 <ulink url=\"http://www.seamframework.org/WebBeans/"
-"Development\">http://www.seamframework.org/WebBeans/Development</ulink>。"
+#, fuzzy
+#~ msgid ""
+#~ "You'll need to download JBoss AS 5.0.1.GA from <ulink url=\"http://www."
+#~ "jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For "
+#~ "example:"
+#~ msgstr ""
+#~ "目前,Web Beans RI 只能在 JBoss Application Server 5 上執行。您將需要由 "
+#~ "<ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink> "
+#~ "來下載 JBoss AS 5.0.0.GA,然後再將它解壓縮。例如:"
 
-#. Tag: para
-#: gettingstarted.xml:1040
-#, no-c-format
-msgid ""
-"We need help in all areas - bug fixing, writing new features, writing "
-"examples and translating this reference guide."
-msgstr ""
-"我們在所有層面都需要協助 - 錯誤修正、編寫新功能、編寫範例,以及翻譯此參照指"
-"南。"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd /Applications\n"
+#~ "$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #, fuzzy
 #~ msgid ""
+#~ "Next, download Web Beans from <ulink url=\"http://seamframework.org/"
+#~ "Download\">seamframework.org</ulink>, and unzip it. For example"
+#~ msgstr ""
+#~ "接下來,請由 <ulink url=\"http://seamframework.org/Download"
+#~ "\">seamframework.org</ulink> 下載 Web Beans RI 並將它解壓縮。例如"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-$VERSION.zip]]>"
+#~ msgstr ""
+#~ "<![CDATA[$ cd ~/\n"
+#~ "$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
+
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where JBoss is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>jboss."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "接下來,我們需要讓 Web Bean 知道 JBoss 的位置在哪裡。請編輯 "
+#~ "<literal>jboss-as/build.properties</literal> 然後設置 <literal>jboss."
+#~ "home</literal> 內容。例如:"
+
+#, fuzzy
+#~ msgid ""
+#~ "To install Web Beans, you'll need Ant 1.7.0 installed, and the "
+#~ "<literal>ANT_HOME</literal> environment variable set. For example:"
+#~ msgstr ""
+#~ "若要安裝更新,您將需要先安裝 Ant 1.7.0,並設置 <literal>ANT_HOME</"
+#~ "literal> 環境變數。例如:"
+
+#~ msgid ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+#~ msgstr ""
+#~ "$ unzip apache-ant-1.7.0.zip\n"
+#~ "$ export ANT_HOME=~/apache-ant-1.7.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "Then, you can install the update. The update script will use Maven to "
+#~ "download Web Beans automatically."
+#~ msgstr ""
+#~ "接下來,您便可安裝更新。更新 script 將會使用 Maven 來自動地下載 Web Bean "
+#~ "以及 EJB3。"
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd webbeans-$VERSION/jboss-as\n"
+#~ "$ ant update"
+#~ msgstr ""
+#~ "$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+#~ "$ ant update"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for JBoss "
+#~ "AS, these are:"
+#~ msgstr "這些範例的建置 script 提供了一些目標,它們包含了:"
+
+#~ msgid "To deploy the numberguess example:"
+#~ msgstr "若要建置 numberguess 範例:"
+
+#, fuzzy
+#~ msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+#~ msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+#~ "\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+#~ msgstr ""
+#~ "請等待應用程式的建置,然後在 <ulink url=\"http://localhost:8080/webbeans-"
+#~ "numberguess\"></ulink> 花上幾個小時!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans includes a second simple example that will translate your text "
+#~ "into Latin. The numberguess example is a war example, and uses only "
+#~ "simple beans; the translator example is an ear example, and includes "
+#~ "enterprise beans, packaged in an EJB module. To try it out:"
+#~ msgstr ""
+#~ "Web Bean RI 包含了第二個基本範例,它可將您的文字轉譯為拉丁文。numberguess "
+#~ "範例為一個 war 範例,並且只使用基本的 bean;轉譯器範例則為 ear 範例,並且"
+#~ "包含著企業級的 bean,封裝於一個 EJB 模組中。若要嘗試:"
+
+#~ msgid ""
+#~ "Wait for the application to deploy, and visit <ulink url=\"http://"
+#~ "localhost:8080/webbeans-translator\"></ulink>!"
+#~ msgstr ""
+#~ "請等待應用程式的建置並進入 <ulink url=\"http://localhost:8080/webbeans-"
+#~ "translator\"></ulink>!"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, we need to tell Web Beans where Tomcat is located. Edit "
+#~ "<literal>jboss-as/build.properties</literal> and set the <literal>tomcat."
+#~ "home</literal> property. For example:"
+#~ msgstr ""
+#~ "接下來,我們需要讓 Web Bean 知道 JBoss 的位置在哪裡。請編輯 "
+#~ "<literal>jboss-as/build.properties</literal> 然後設置 <literal>jboss."
+#~ "home</literal> 內容。例如:"
+
+#, fuzzy
+#~ msgid ""
+#~ "The build scripts for the examples offer a number of targets for Tomcat, "
+#~ "these are:"
+#~ msgstr "這些範例的建置 script 提供了一些目標,它們包含了:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.undeploy</literal> - remove the example (in "
+#~ "compressed jar format) from the server"
+#~ msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>ant tomcat.unexplode</literal> - remove the example (in exploded "
+#~ "format) from the server"
+#~ msgstr "<literal>ant undeploy</literal> - 將範例由伺服器中移除"
+
+#, fuzzy
+#~ msgid "<literal>ant tomcat.clean</literal> - clean the example"
+#~ msgstr "<literal>ant clean</literal> - 清除範例"
+
+#, fuzzy
+#~ msgid ""
+#~ "$ cd examples/tomcat\n"
+#~ "ant tomcat.deploy"
+#~ msgstr ""
+#~ "$ cd examples/translator\n"
+#~ "ant deploy"
+
+#~ msgid "The numberguess example"
+#~ msgstr "numberguess 範例"
+
+#~ msgid ""
+#~ "In the numberguess application you get given 10 attempts to guess a "
+#~ "number between 1 and 100. After each attempt, you will be told whether "
+#~ "you are too high, or too low."
+#~ msgstr ""
+#~ "在 numberguess 應用程式中,您將會有 10 次機會來猜一個介於 1 至 100 之間的"
+#~ "號碼。每當猜過一遍,系統便會告知您您所輸入的數字是否太大或太小。"
+
+#~ msgid ""
+#~ "The numberguess example is comprised of a number of Web Beans, "
+#~ "configuration files, and Facelet JSF pages, packaged as a war. Let's "
+#~ "start with the configuration files."
+#~ msgstr ""
+#~ "numberguess 範例包含了 Web Bean 的一個數字、配置檔案,以及 Facelet JSF 頁"
+#~ "面,並且封裝為 war。讓我們先從配置檔案開始。"
+
+#~ msgid ""
+#~ "All the configuration files for this example are located in <literal>WEB-"
+#~ "INF/</literal>, which is stored in <literal>WebContent</literal> in the "
+#~ "source tree. First, we have <literal>faces-config.xml</literal>, in which "
+#~ "we tell JSF to use Facelets:"
+#~ msgstr ""
+#~ "此範例的所有配置檔案都位於 <literal>WEB-INF/</literal> 中,並且它又儲存在"
+#~ "來源樹中的 <literal>WebContent</literal> 裡。首先,我們有個可使用來指定 "
+#~ "JSF 來使用 Facelet 的 <literal>faces-config.xml</literal>:"
+
+#~ 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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "    <application>\n"
+#~ "        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+#~ "    </application>\n"
+#~ "\n"
+#~ "</faces-config>]]>"
+
+#~ msgid ""
+#~ "There is an empty <literal>web-beans.xml</literal> file, which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "有個空的 <literal>web-beans.xml</literal> 檔案,它會將此應用程式標記為一"
+#~ "個 Web Bean 應用程式。"
+
+#~ msgid "Finally there is <literal>web.xml</literal>:"
+#~ msgstr "最後為 <literal>web.xml</literal>:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.xhtml</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use Web Beans with any Servlet based web framework. </para> "
+#~ "</note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages2\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/"
+#~ "> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/"
+#~ "> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages2\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+#~ "<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces."
+#~ "default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28"
+#~ "\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "\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 http://java."
+#~ "sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+#~ "   \n"
+#~ "   <display-name>Web Beans Numbergues example</display-name>\n"
+#~ "\n"
+#~ "   <!-- JSF -->\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>*.jsf</url-pattern>\n"
+#~ "   </servlet-mapping>\n"
+#~ "   \n"
+#~ "   <context-param>\n"
+#~ "      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+#~ "      <param-value>.xhtml</param-value>\n"
+#~ "   </context-param>\n"
+#~ "\n"
+#~ "   <session-config>\n"
+#~ "      <session-timeout>10</session-timeout>\n"
+#~ "   </session-config>\n"
+#~ "\n"
+#~ "</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+#~ "servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+#~ "<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+#~ "<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+#~ "<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will "
+#~ "be giving our source files (facelets) an extension of <literal>.jsf</"
+#~ "literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> "
+#~ "Configure a session timeout of 10 minutes </para> </callout> </"
+#~ "calloutlist> </programlistingco> <note> <para> Whilst this demo is a JSF "
+#~ "demo, you can use the Web Beans RI with any Servlet based web framework. "
+#~ "</para> </note> <para> Let's take a look at the Facelet view: </para> "
+#~ "<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area "
+#~ "id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> "
+#~ "<area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"30\"/> "
+#~ "<area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+#~ "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+#~ "<html 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"
+#~ "  <ui:composition template=\"template.xhtml\">\n"
+#~ "    <ui:define name=\"content\">\n"
+#~ "       <h1>Guess a number...</h1>\n"
+#~ "       <h:form id=\"NumberGuessMain\">\n"
+#~ "          <div style=\"color: red\">\n"
+#~ "             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+#~ "             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#"
+#~ "{game.number gt game.guess and game.guess ne 0}\"/>\n"
+#~ "             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#"
+#~ "{game.number lt game.guess and game.guess ne 0}\"/>\n"
+#~ "          </div>\n"
+#~ "   \n"
+#~ "          <div>\n"
+#~ "             I'm thinking of a number between #{game.smallest} and #{game."
+#~ "biggest}.\n"
+#~ "             You have #{game.remainingGuesses} guesses.\n"
+#~ "          </div>\n"
+#~ "     \n"
+#~ "          <div>\n"
+#~ "             Your guess: \n"
+#~ "             <h:inputText id=\"inputGuess\" \n"
+#~ "                          value=\"#{game.guess}\" \n"
+#~ "                          required=\"true\" \n"
+#~ "                          size=\"3\" \n"
+#~ "                          disabled=\"#{game.number eq game.guess}\">\n"
+#~ "                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+#~ "                                     minimum=\"#{game.smallest}\"/>\n"
+#~ "             </h:inputText>\n"
+#~ "            <h:commandButton id=\"GuessButton\"  \n"
+#~ "                             value=\"Guess\" \n"
+#~ "                             action=\"#{game.check}\" \n"
+#~ "                             disabled=\"#{game.number eq game.guess}\"/>\n"
+#~ "          </div>\n"
+#~ "          <div>\n"
+#~ "            <h:commandButton id=\"RestartButton\" value=\"Reset\" action="
+#~ "\"#{game.reset}\" immediate=\"true\" />\n"
+#~ "          </div>\n"
+#~ "       </h:form>\n"
+#~ "    </ui:define>\n"
+#~ "  </ui:composition>\n"
+#~ "</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+#~ "<para> Facelets is a templating language for JSF, here we are wrapping "
+#~ "our page in a template which defines the header. </para> </callout> "
+#~ "<callout arearefs=\"messages\"> <para> There are a number of messages "
+#~ "which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+#~ "para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+#~ "guesses, the range of numbers they can guess gets smaller - this sentance "
+#~ "changes to make sure they know what range to guess in. </para> </callout> "
+#~ "<callout arearefs=\"guess\"> <para> This input field is bound to a Web "
+#~ "Bean, using the value expression. </para> </callout> <callout arearefs="
+#~ "\"validator\"> <para> A range validator is used to make sure the user "
+#~ "doesn't accidentally input a number outside of the range in which they "
+#~ "can guess - if the validator wasn't here, the user might use up a guess "
+#~ "on an out of range number. </para> </callout> <callout arearefs=\"submit"
+#~ "\"> <para> And, of course, there must be a way for the user to send their "
+#~ "guess to the server. Here we bind to an action method on the Web Bean. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "The example exists of 4 classes, the first two of which are binding "
+#~ "types. First, there is the <literal>@Random</literal> binding type, used "
+#~ "for injecting a random number:"
+#~ msgstr ""
+#~ "範例存有 4 個類別,前兩個為綁定類型。首先,有個使用來注入亂數號碼的 "
+#~ "<literal>@Random</literal> 綁定類型:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface Random {}]]>"
+
+#~ msgid ""
+#~ "There is also the <literal>@MaxNumber</literal> binding type, used for "
+#~ "injecting the maximum number that can be injected:"
+#~ msgstr ""
+#~ "還有個用來注入可注入之最大號碼的 <literal>@MaxNumber</literal> 綁定類型:"
+
+#~ msgid ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+#~ "@Retention(RUNTIME)\n"
+#~ "@Documented\n"
+#~ "@BindingType\n"
+#~ "public @interface MaxNumber {}\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "The <literal>Generator</literal> class is responsible for creating the "
+#~ "random number, via a producer method. It also exposes the maximum "
+#~ "possible number via a producer method:"
+#~ msgstr ""
+#~ "<literal>Generator</literal> 類別負責透過產生器的方式來建立亂數號碼。它也"
+#~ "會透過一個產生器的方式來顯示最大的可能號碼:"
+
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "   \n"
+#~ "   private java.util.Random random = new java.util.Random( System."
+#~ "currentTimeMillis() );\n"
+#~ "   \n"
+#~ "   private int maxNumber = 100;\n"
+#~ "   \n"
+#~ "   java.util.Random getRandom()\n"
+#~ "   {\n"
+#~ "      return random;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @Random int next() { \n"
+#~ "      return getRandom().nextInt(maxNumber); \n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Produces @MaxNumber int getMaxNumber()\n"
+#~ "   {\n"
+#~ "      return maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "You'll notice that the <literal>Generator</literal> is application "
+#~ "scoped; therefore we don't get a different random each time."
+#~ msgstr ""
+#~ "您將會注意到 <literal>Generator</literal> 是屬於應用程式導向的;因此,我們"
+#~ "不會每次都一定能得到不同的亂數號碼。"
+
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>."
+#~ msgstr ""
+#~ "應用程式中最後的 Web Bean 為 session 導向的 <literal>Game</literal>。"
+
+#~ msgid ""
+#~ "You'll note that we've used the <literal>@Named</literal> annotation, so "
+#~ "that we can use the bean through EL in the JSF page. Finally, we've used "
+#~ "constructor injection to initialize the game with a random number. And of "
+#~ "course, we need to tell the player when they've won, so we give feedback "
+#~ "with a <literal>FacesMessage</literal>."
+#~ msgstr ""
+#~ "您將會注意到我們使用了 <literal>@Named</literal> 標記,如此一來我們便可在 "
+#~ "JSF 頁面中的 EL 上使用這個 bean。最後,我們使用了 constructor injection 來"
+#~ "利用亂數號碼來初始化了這個遊戲。當然,當玩家贏時我們將需要告知玩家,並藉由"
+#~ "一個 <literal>FacesMessage</literal> 來給予回應。"
+
+#~ msgid ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+#~ "\n"
+#~ "\n"
+#~ "import javax.annotation.PostConstruct;\n"
+#~ "import javax.faces.application.FacesMessage;\n"
+#~ "import javax.faces.context.FacesContext;\n"
+#~ "import javax.webbeans.AnnotationLiteral;\n"
+#~ "import javax.webbeans.Current;\n"
+#~ "import javax.webbeans.Initializer;\n"
+#~ "import javax.webbeans.Named;\n"
+#~ "import javax.webbeans.SessionScoped;\n"
+#~ "import javax.webbeans.manager.Manager;\n"
+#~ "\n"
+#~ "@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game\n"
+#~ "{\n"
+#~ "   private int number;\n"
+#~ "   \n"
+#~ "   private int guess;\n"
+#~ "   private int smallest;\n"
+#~ "   private int biggest;\n"
+#~ "   private int remainingGuesses;\n"
+#~ "   \n"
+#~ "   @Current Manager manager;\n"
+#~ "   \n"
+#~ "   public Game()\n"
+#~ "   {\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   Game(@MaxNumber int maxNumber)\n"
+#~ "   {      \n"
+#~ "      this.biggest = maxNumber;\n"
+#~ "   }\n"
+#~ "\n"
+#~ "   public int getNumber()\n"
+#~ "   {\n"
+#~ "      return number;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getGuess()\n"
+#~ "   {\n"
+#~ "      return guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public void setGuess(int guess)\n"
+#~ "   {\n"
+#~ "      this.guess = guess;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getSmallest()\n"
+#~ "   {\n"
+#~ "      return smallest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getBiggest()\n"
+#~ "   {\n"
+#~ "      return biggest;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public int getRemainingGuesses()\n"
+#~ "   {\n"
+#~ "      return remainingGuesses;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   public String check()\n"
+#~ "   {\n"
+#~ "      if (guess>number)\n"
+#~ "      {\n"
+#~ "         biggest = guess - 1;\n"
+#~ "      }\n"
+#~ "      if (guess<number)\n"
+#~ "      {\n"
+#~ "         smallest = guess + 1;\n"
+#~ "      }\n"
+#~ "      if (guess == number)\n"
+#~ "      {\n"
+#~ "         FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ "      }\n"
+#~ "      remainingGuesses--;\n"
+#~ "      return null;\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "   @PostConstruct\n"
+#~ "   public void reset()\n"
+#~ "   {\n"
+#~ "      this.smallest = 0;\n"
+#~ "      this.guess = 0;\n"
+#~ "      this.remainingGuesses = 10;\n"
+#~ "      this.number = manager.getInstanceByType(Integer.class, new "
+#~ "AnnotationLiteral<Random>(){});\n"
+#~ "   }\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid "The numberguess example in Tomcat"
+#~ msgstr "numberguess 範例"
+
+#, fuzzy
+#~ msgid "The numberguess example for Apache Wicket"
+#~ msgstr "numberguess 範例"
+
+#, fuzzy
+#~ msgid "The numberguess example for Java SE with Swing"
+#~ msgstr "numberguess 範例"
+
+#, fuzzy
+#~ msgid "To run this example:"
+#~ msgstr "轉譯器範例"
+
+#, fuzzy
+#~ msgid ""
+#~ "There is an empty <literal>beans.xml</literal> file in the root package "
+#~ "(<literal>src/main/resources/beans.xml</literal>), which marks this "
+#~ "application as a Web Beans application."
+#~ msgstr ""
+#~ "有個空的 <literal>web-beans.xml</literal> 檔案,它會將此應用程式標記為一"
+#~ "個 Web Bean 應用程式。"
+
+#~ msgid "The translator example"
+#~ msgstr "轉譯器範例"
+
+#~ msgid ""
+#~ "The translator example will take any sentences you enter, and translate "
+#~ "them to Latin."
+#~ msgstr "轉譯器範例能接受您所輸入的任何句子,然後將它們翻譯成拉丁文。"
+
+#~ msgid ""
+#~ "The translator example is built as an ear, and contains EJBs. As a "
+#~ "result, it's structure is more complex than the numberguess example."
+#~ msgstr ""
+#~ "轉換器範例被建置為一個 ear 並包含著 EJB。正因如此,它的結構比 numberguess "
+#~ "範例要複雜得多。"
+
+#~ msgid ""
+#~ "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+#~ "this structure much simpler!"
+#~ msgstr ""
+#~ "EJB 3.1 和 Jave EE 6 能讓您將 EJB 封裝為 war,並使得該結構變得更為簡樸!"
+
+#~ msgid ""
+#~ "First, let's take a look at the ear aggregator, which is located in "
+#~ "<literal>webbeans-translator-ear</literal> module. Maven automatically "
+#~ "generates the <literal>application.xml</literal> for us:"
+#~ msgstr ""
+#~ "首先,讓我們先來看一下 ear 聚合器,它位於 <literal>webbeans-translator-"
+#~ "ear</literal> 模組中。Maven 會自動地為我們產生 <literal>application.xml</"
+#~ "literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<plugin>\n"
+#~ "   <groupId>org.apache.maven.plugins</groupId>\n"
+#~ "   <artifactId>maven-ear-plugin</artifactId>\n"
+#~ "   <configuration>\n"
+#~ "      <modules>\n"
+#~ "         <webModule>\n"
+#~ "            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+#~ "            <artifactId>webbeans-translator-war</artifactId>\n"
+#~ "            <contextRoot>/webbeans-translator</contextRoot>\n"
+#~ "         </webModule>\n"
+#~ "      </modules>\n"
+#~ "   </configuration>\n"
+#~ "</plugin>]]>"
+
+#~ msgid ""
+#~ "If you aren't using Maven to generate these files, you would need "
+#~ "<literal>META-INF/application.xml</literal>:"
+#~ msgstr ""
+#~ "若您不使用 Maven 來產生這些檔案,那麼您將需要 <literal>META-INF/"
+#~ "application.xml</literal>:"
+
+#~ 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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+#~ msgstr ""
+#~ "<![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 "
+#~ "http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+#~ "             version=\"5\">\n"
+#~ "  <display-name>webbeans-translator-ear</display-name>\n"
+#~ "  <description>Ear Example for the reference implementation of JSR 299: "
+#~ "Web Beans</description>\n"
+#~ "  \n"
+#~ "  <module>\n"
+#~ "    <web>\n"
+#~ "      <web-uri>webbeans-translator.war</web-uri>\n"
+#~ "      <context-root>/webbeans-translator</context-root>\n"
+#~ "    </web>\n"
+#~ "  </module>\n"
+#~ "  <module>\n"
+#~ "    <ejb>webbeans-translator.jar</ejb>\n"
+#~ "  </module>\n"
+#~ "</application>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Next, lets look at the war. Just as in the numberguess example, we have a "
+#~ "<literal>faces-config.xml</literal> (to enable Facelets) and a "
+#~ "<literal>web.xml</literal> (to enable JSF) in <literal>WebContent/WEB-"
+#~ "INF</literal>."
+#~ msgstr ""
+#~ "接下來,讓我們看一下 war。就和 numberguess 範例中一樣,我們在 "
+#~ "<literal>WebContent/WEB-INF</literal> 中有個 <literal>faces-config.xml</"
+#~ "literal>(用來啟用 Facelets)以及一個 <literal>web.xml</literal>(用來啟"
+#~ "用 JSF)。"
+
+#~ msgid ""
+#~ "More intersting is the facelet used to translate text. Just as in the "
+#~ "numberguess example we have a template, which surrounds the form "
+#~ "(ommitted here for brevity):"
+#~ msgstr ""
+#~ "還有更有趣的就是使用來轉換文字的 facelet。就和 numberguess 範例中一樣,我"
+#~ "們有個圍繞著 form 的頁面格式(在此將省略不提):"
+
+#~ msgid ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+#~ "            \n"
+#~ "   <table>\n"
+#~ "      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+#~ "         <td>\n"
+#~ "            Your text\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            Translation\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "      <tr>\n"
+#~ "         <td>\n"
+#~ "            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+#~ "required=\"true\" rows=\"5\" cols=\"80\" />\n"
+#~ "         </td>\n"
+#~ "         <td>\n"
+#~ "            <h:outputText value=\"#{translator.translatedText}\" />\n"
+#~ "         </td>\n"
+#~ "      </tr>\n"
+#~ "   </table>\n"
+#~ "   <div>\n"
+#~ "      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+#~ "{translator.translate}\"/>\n"
+#~ "   </div>\n"
+#~ "   \n"
+#~ "</h:form>]]>"
+
+#~ msgid ""
+#~ "The user can enter some text in the lefthand textarea, and hit the "
+#~ "translate button to see the result to the right."
+#~ msgstr ""
+#~ "用戶可在左手邊的文字區域中輸入一些文字,然後點選轉譯按鈕並於右手邊的區域中"
+#~ "查看結果。"
+
+#~ msgid ""
+#~ "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+#~ "literal>. In <literal>src/main/resources/META-INF</literal> there is just "
+#~ "an empty <literal>web-beans.xml</literal>, used to mark the archive as "
+#~ "containing Web Beans."
+#~ msgstr ""
+#~ "最後,讓我們來看一下 ejb 模組 <literal>webbeans-translator-ejb</literal>。"
+#~ "在 <literal>src/main/resources/META-INF</literal> 中只有一個用來將 "
+#~ "archive 標記為包含著 Web Bean 的空 <literal>web-beans.xml</literal>。"
+
+#~ msgid ""
+#~ "We've saved the most interesting bit to last, the code! The project has "
+#~ "two simple beans, <literal>SentenceParser</literal> and "
+#~ "<literal>TextTranslator</literal> and two enterprise beans, "
+#~ "<literal>TranslatorControllerBean</literal> and "
+#~ "<literal>SentenceTranslator</literal>. You should be getting quite "
+#~ "familiar with what a Web Bean looks like by now, so we'll just highlight "
+#~ "the most interesting bits here."
+#~ msgstr ""
+#~ "我們將最有趣的部份保留到了最後,那就是程式碼!該專案含有兩個基本的 bean,"
+#~ "<literal>SentenceParser</literal> 和 <literal>TextTranslator</literal>,以"
+#~ "及兩個企業級的 bean,<literal>TranslatorControllerBean</literal> 和 "
+#~ "<literal>SentenceTranslator</literal>。到了現在您應該已經很熟悉 Web Bean "
+#~ "長得如何了,因此我們在此將只著重於其它較有趣的部份。"
+
+#~ msgid ""
+#~ "Both <literal>SentenceParser</literal> and <literal>TextTranslator</"
+#~ "literal> are dependent beans, and <literal>TextTranslator</literal> uses "
+#~ "constructor initialization:"
+#~ msgstr ""
+#~ "<literal>SentenceParser</literal> 和 <literal>TextTranslator</literal> 兩"
+#~ "者皆為相依性的 bean,並且 <literal>TextTranslator</literal> 使用了 "
+#~ "constructor 初始化:"
+
+#~ msgid ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class TextTranslator { \n"
+#~ "   private SentenceParser sentenceParser; \n"
+#~ "   private Translator sentenceTranslator; \n"
+#~ "   \n"
+#~ "   @Initializer\n"
+#~ "   TextTranslator(SentenceParser sentenceParser, Translator "
+#~ "sentenceTranslator) \n"
+#~ "   { \n"
+#~ "      this.sentenceParser = sentenceParser; \n"
+#~ "      this.sentenceTranslator = sentenceTranslator;]]>"
+
+#~ msgid ""
+#~ "<literal>TextTranslator</literal> is a stateless bean (with a local "
+#~ "business interface), where the magic happens - of course, we couldn't "
+#~ "develop a full translator, but we gave it a good go!"
+#~ msgstr ""
+#~ "<literal>TextTranslator</literal> 是個無狀態的 bean(以及一個本地的商業介"
+#~ "面)- 當然,我們無法開發一個完整的轉譯器。"
+
+#~ msgid ""
+#~ "Finally, there is UI orientated controller, that collects the text from "
+#~ "the user, and dispatches it to the translator. This is a request scoped, "
+#~ "named, stateful session bean, which injects the translator."
+#~ msgstr ""
+#~ "最後,有個 UI 導向的控制器,它會藉由用戶收集文字然後將它發送給轉譯器。這是"
+#~ "個請求導向、被命名,而有狀態的 session bean,並且會注入轉譯器。"
+
+#~ msgid ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful\n"
+#~ "@RequestScoped\n"
+#~ "@Named(\"translator\")\n"
+#~ "public class TranslatorControllerBean implements TranslatorController\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   @Current TextTranslator translator;]]>"
+
+#~ msgid ""
+#~ "The bean also has getters and setters for all the fields on the page."
+#~ msgstr "這個 bean 針對於頁面上所有欄位都有 getter 與 setter。"
+
+#~ msgid "As this is a stateful session bean, we have to have a remove method:"
+#~ msgstr ""
+#~ "因為這是個 stateful(有狀態)的 session bean,因此我們必須要有個 remove "
+#~ "method:"
+
+#~ msgid ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+#~ msgstr ""
+#~ "<![CDATA[   @Remove\n"
+#~ "   public void remove()\n"
+#~ "   {\n"
+#~ "      \n"
+#~ "   }]]>"
+
+#~ msgid ""
+#~ "The Web Beans manager will call the remove method for you when the bean "
+#~ "is destroyed; in this case at the end of the request."
+#~ msgstr ""
+#~ "當 bean 被毀掉後,Web Bean 管理員會為您調用 remove 這個 method;在此情況下"
+#~ "為請求結束之後。"
+
+#, fuzzy
+#~ msgid ""
+#~ "That concludes our short tour of the Web Beans examples. For more on Web "
+#~ "Beans , or to help out, please visit <ulink url=\"http://www."
+#~ "seamframework.org/WebBeans/Development\">http://www.seamframework.org/"
+#~ "WebBeans/Development</ulink>."
+#~ msgstr ""
+#~ "這結束了我們簡短的 Web Bean RI 範例。如欲取得更多有關於 RI 的相關資訊,或"
+#~ "是提供相關協助,請參閱 <ulink url=\"http://www.seamframework.org/WebBeans/"
+#~ "Development\">http://www.seamframework.org/WebBeans/Development</ulink>。"
+
+#~ msgid ""
+#~ "We need help in all areas - bug fixing, writing new features, writing "
+#~ "examples and translating this reference guide."
+#~ msgstr ""
+#~ "我們在所有層面都需要協助 - 錯誤修正、編寫新功能、編寫範例,以及翻譯此參照"
+#~ "指南。"
+
+#, fuzzy
+#~ msgid ""
 #~ "A new deployer, <literal>webbeans.deployer</literal> is added to JBoss "
 #~ "AS. This adds supports for Web Bean archives to JBoss AS, and allows the "
 #~ "Web Beans RI to query the EJB3 container and discover which EJBs are "

Modified: doc/trunk/reference/zh-TW/injection.po
===================================================================
--- doc/trunk/reference/zh-TW/injection.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/injection.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: injection\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-19 16:05+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -18,34 +18,52 @@
 
 #. Tag: title
 #: injection.xml:4
-#, no-c-format
-msgid "Dependency injection"
+#, fuzzy, no-c-format
+msgid "Dependency injection and programmatic lookup"
 msgstr "依賴注入(Dependency injection)"
 
 #. Tag: para
 #: injection.xml:6
 #, no-c-format
-msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr "Web Bean 支援了三個主要的依賴注入機制:"
+msgid ""
+"One of the most significant features of CDI&#8212;certainly the most "
+"recognized&#8212;is dependency injection; excuse me, <emphasis>typesafe</"
+"emphasis> dependency injection."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:12
+#, no-c-format
+msgid "Injection points"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:8
+#: injection.xml:14
 #, no-c-format
-msgid "Constructor parameter injection:"
-msgstr "Constructor parameter injection:"
+msgid ""
+"The <literal>@Inject</literal> annotation lets us define an injection point "
+"that is injected during bean instantiation. Injection can occur via three "
+"different mechanisms."
+msgstr ""
 
+#. Tag: para
+#: injection.xml:19
+#, fuzzy, no-c-format
+msgid "<emphasis>Bean constructor</emphasis> parameter injection:"
+msgstr "<emphasis>Initializer</emphasis> method parameter injection:"
+
 #. Tag: programlisting
-#: injection.xml:10
-#, no-c-format
+#: injection.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private final ShoppingCart cart;\n"
+"   private final ShoppingCart cart;\n"
 "    \n"
-"    @Initializer\n"
-"    public Checkout(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   public Checkout(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "\n"
 "}]]>"
 msgstr ""
@@ -61,23 +79,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:12
+#: injection.xml:26
 #, no-c-format
-msgid "<emphasis>Initializer</emphasis> method parameter injection:"
+msgid "A bean can only have one injectable constructor."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:31
+#, fuzzy, no-c-format
+msgid "<emphasis>Initializer method</emphasis> parameter injection:"
 msgstr "<emphasis>Initializer</emphasis> method parameter injection:"
 
 #. Tag: programlisting
-#: injection.xml:14
-#, no-c-format
+#: injection.xml:35
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "        \n"
-"    private ShoppingCart cart;\n"
+"   private ShoppingCart cart;\n"
 "\n"
-"    @Initializer \n"
-"    void setShoppingCart(ShoppingCart cart) {\n"
-"        this.cart = cart;\n"
-"    }\n"
+"   @Inject\n"
+"   void setShoppingCart(ShoppingCart cart) {\n"
+"      this.cart = cart;\n"
+"   }\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -93,18 +117,27 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:16
+#: injection.xml:38
 #, no-c-format
+msgid ""
+"A bean can have multiple initializer methods. If the bean is a session bean, "
+"the initializer method is not required to be a business method of the "
+"session bean."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:44
+#, no-c-format
 msgid "And direct field injection:"
 msgstr "以及 direct field injection:"
 
 #. Tag: programlisting
-#: injection.xml:18
-#, no-c-format
+#: injection.xml:48
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class Checkout {\n"
 "\n"
-"    private @Current ShoppingCart cart;\n"
+"   private @Inject ShoppingCart cart;\n"
 "    \n"
 "}]]>"
 msgstr ""
@@ -115,70 +148,86 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:20
+#: injection.xml:51
 #, no-c-format
 msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
+"Getter and setter methods are not required for field injection to work "
+"(unlike with JSF managed beans)."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:56
+#, fuzzy, no-c-format
+msgid ""
+"Dependency injection always occurs when the bean instance is first "
+"instantiated by the container. Simplifying just a little, things happen in "
+"this order:"
 msgstr "每當 Web Bean 的 instance 第一次被例示時,依賴注入就會發生。"
 
 #. Tag: para
-#: injection.xml:25
-#, no-c-format
+#: injection.xml:63
+#, fuzzy, no-c-format
 msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
-msgstr "首先,Web Bean 管理員會調用 Web Bean constructor,並取得 Web Bean 的某個 instance。"
+"First, the container calls the bean constructor (the default constructor or "
+"the one annotated <literal>@Inject</literal>), to obtain an instance of the "
+"bean."
+msgstr ""
+"首先,Web Bean 管理員會調用 Web Bean constructor,並取得 Web Bean 的某個 "
+"instance。"
 
 #. Tag: para
-#: injection.xml:29
-#, no-c-format
+#: injection.xml:69
+#, fuzzy, no-c-format
 msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
+"Next, the container initializes the values of all injected fields of the "
+"bean."
 msgstr "接下來,Web Bean 管理員便會初始化 Web Bean 所有已注入欄位的值。"
 
 #. Tag: para
-#: injection.xml:33
-#, no-c-format
-msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
+#: injection.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"Next, the container calls all initializer methods of bean (the call order is "
+"not portable, don't rely on it)."
 msgstr "然後,Web Bean 管理員將會調用 Web Bean 的所有 initializer method。"
 
 #. Tag: para
-#: injection.xml:37
-#, no-c-format
+#: injection.xml:80
+#, fuzzy, no-c-format
 msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
-msgstr "最後,(若存在的話)Web Bean 的 <literal>@PostConstruct</literal> method 將會被調用。"
+"Finally, the <literal>@PostConstruct</literal> method, if any, is called."
+msgstr ""
+"最後,(若存在的話)Web Bean 的 <literal>@PostConstruct</literal> method 將會"
+"被調用。"
 
 #. Tag: para
-#: injection.xml:42
+#: injection.xml:86
 #, no-c-format
 msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr "EJB Bean 不支援 Constructor parameter injection,因為 EJB 是由 EJB container 來例示(instantiate)的,而不是以 Web Bean 管理員。"
+"(The only complication is that the container might call initializer methods "
+"declared by a superclass before initializing injected fields declared by a "
+"subclass.)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:45
+#: injection.xml:90
 #, no-c-format
 msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
-msgstr "當套用了預設的 <literal>@Current</literal> 綁定類型時,Constructor 和 initializer method 的參數不需要被明確地標記。不過,儘管套用了預設的綁定類型,被注入的欄位還是<emphasis>一定</emphasis>要指定綁定類型。若該欄位不指定綁定類型的話,它將不會被注入。"
+"One major advantage of constructor injection is that it allows the bean to "
+"be immutable."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:51
+#: injection.xml:95
 #, no-c-format
-msgid "Producer methods also support parameter injection:"
-msgstr "Producer method 也支援 parameter injection:"
+msgid ""
+"CDI also supports parameter injection for some other methods that are "
+"invoked by the container. For instance, parameter injection is supported for "
+"producer methods:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:53
+#: injection.xml:100
 #, no-c-format
 msgid ""
 "<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
@@ -190,93 +239,120 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:55
+#: injection.xml:102
 #, no-c-format
 msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
-msgstr "最後,observer method(我們會在 <xref linkend=\"events\"/> 中談到)、disposal method 以及 destructor method 全都支援 parameter injection。"
+"This is a case where the <literal>@Inject</literal> annotation <emphasis>is "
+"not</emphasis> required at the injection point. The same is true for "
+"observer methods (which we'll meet in <xref linkend=\"events\"/>) and "
+"disposer methods."
+msgstr ""
 
+#. Tag: title
+#: injection.xml:110
+#, no-c-format
+msgid "What gets injected"
+msgstr ""
+
 #. Tag: para
-#: injection.xml:58
-#, no-c-format
+#: injection.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
-"<literal>AmbiguousDependencyException</literal>."
+"The CDI specification defines a procedure, called <emphasis>typesafe "
+"resolution</emphasis>, that the container follows when identifying the bean "
+"to inject to an injection point. This algorithm looks complex at first, but "
+"once you understand it, it's really quite intuitive. Typesafe resolution is "
+"performed at system initialization time, which means that the container will "
+"inform the developer immediately if a bean's dependencies cannot be "
+"satisfied."
 msgstr ""
-"Web Bean 規格定義了一個流程,該流程稱為 <emphasis>typesafe resolution algorithm</emphasis>(typesafe 解析演算法),當 Web Bean 要注入至一個注入點時,Web Bean 管理員便會遵照該流程來進行。這個演算法乍看之下非常地複雜,不過當您理解它之後,您會發現它實際上並不複雜。Typesafe 解析會在系統初始化時進行,這也代表了若 Web Bean 的相依性無法被滿足的話,管理員會即刻透過回傳一個 <literal>UnsatisfiedDependencyException</literal> 或是 "
+"Web Bean 規格定義了一個流程,該流程稱為 <emphasis>typesafe resolution "
+"algorithm</emphasis>(typesafe 解析演算法),當 Web Bean 要注入至一個注入點"
+"時,Web Bean 管理員便會遵照該流程來進行。這個演算法乍看之下非常地複雜,不過當"
+"您理解它之後,您會發現它實際上並不複雜。Typesafe 解析會在系統初始化時進行,這"
+"也代表了若 Web Bean 的相依性無法被滿足的話,管理員會即刻透過回傳一個 "
+"<literal>UnsatisfiedDependencyException</literal> 或是 "
 "<literal>AmbiguousDependencyException</literal> 來通知用戶。"
 
 #. Tag: para
-#: injection.xml:67
-#, no-c-format
+#: injection.xml:120
+#, fuzzy, no-c-format
 msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
+"The purpose of this algorithm is to allow multiple beans to implement the "
+"same bean type and either:"
 msgstr "這個演算法就是為了要讓多重 Web Bean 實做相同的 API 類型以及:"
 
 #. Tag: para
-#: injection.xml:72
-#, no-c-format
+#: injection.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
-msgstr "讓客戶端藉由使用 <emphasis>binding annotations</emphasis> 來選擇需要的實做、"
+"allow the client to select which implementation it requires using a "
+"<emphasis>qualifier</emphasis> or"
+msgstr ""
+"讓客戶端藉由使用 <emphasis>binding annotations</emphasis> 來選擇需要的實做、"
 
 #. Tag: para
-#: injection.xml:77
-#, no-c-format
+#: injection.xml:131
+#, fuzzy, no-c-format
 msgid ""
 "allow the application deployer to select which implementation is appropriate "
 "for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
-msgstr "讓應用程式建置人員在不改變客戶端的情況下藉由啟用或停用 <emphasis>deployment types</emphasis> 來選擇用於特定建置的適當實做,或是"
+"disabling an <emphasis>alternative</emphasis>, or"
+msgstr ""
+"讓應用程式建置人員在不改變客戶端的情況下藉由啟用或停用 <emphasis>deployment "
+"types</emphasis> 來選擇用於特定建置的適當實做,或是"
 
 #. Tag: para
-#: injection.xml:82
+#: injection.xml:137
 #, no-c-format
+msgid "allow the beans to be isolated into separate modules."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:143
+#, no-c-format
 msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
-msgstr "允許建置時透過使用 <emphasis>deployment type precedence</emphasis> 來讓某個 API 的一個實做能在不改變客戶端的情況下置換另一個相同 API 的實做。"
+"Obviously, if you have exactly one bean of a given type, and an injection "
+"point with that same type, then bean A is going to go into slot A. That's "
+"the simplest possible scenario. When you first start your application, "
+"you'll likely have lots of those."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:88
+#: injection.xml:149
 #, no-c-format
-msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr "讓我們來探討 Web Bean 管理員如何判斷某個 Web Bean 要如何被注入。"
+msgid ""
+"But then, things start to get complicated. Let's explore how the container "
+"determines which bean to inject in more advanced cases. We'll start by "
+"taking a closer look at qualifiers."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:91
-#, no-c-format
-msgid "Binding annotations"
+#: injection.xml:157
+#, fuzzy, no-c-format
+msgid "Qualifier annotations"
 msgstr "綁定標記"
 
 #. Tag: para
-#: injection.xml:93
-#, no-c-format
+#: injection.xml:159
+#, fuzzy, no-c-format
 msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
+"If we have more than one bean that implements a particular bean type, the "
+"injection point can specify exactly which bean should be injected using a "
+"qualifier annotation. For example, there might be two implementations of "
 "<literal>PaymentProcessor</literal>:"
-msgstr "若我們擁有超過一個實做特定 API 類型的 Web Bean,注入點可藉由使用綁定標記來確切地指定哪個 Web Bean 應該被注入。比方說,<literal>PaymentProcessor</literal> 的實做可能有兩個:"
+msgstr ""
+"若我們擁有超過一個實做特定 API 類型的 Web Bean,注入點可藉由使用綁定標記來確"
+"切地指定哪個 Web Bean 應該被注入。比方說,<literal>PaymentProcessor</"
+"literal> 的實做可能有兩個:"
 
 #. Tag: programlisting
-#: injection.xml:98
-#, no-c-format
+#: injection.xml:165
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque\n"
-"public class ChequePaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Synchronous\n"
+"public class SynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@PayByCheque\n"
@@ -285,35 +361,37 @@
 "}]]>"
 
 #. Tag: programlisting
-#: injection.xml:100
-#, no-c-format
+#: injection.xml:167
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
-"    public void process(Payment payment) { ... }\n"
+"<![CDATA[@Asynchronous\n"
+"public class AsynchronousPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@PayByCreditCard\n"
-"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: para
-#: injection.xml:102
-#, no-c-format
+#: injection.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
-msgstr "<literal>@PayByCheque</literal> 和 <literal>@PayByCreditCard</literal> 為綁定標記:"
+"Where <literal>@Synchronous</literal> and <literal>@Asynchronous</literal> "
+"are qualifier annotations:"
+msgstr ""
+"<literal>@PayByCheque</literal> 和 <literal>@PayByCreditCard</literal> 為綁定"
+"標記:"
 
 #. Tag: programlisting
-#: injection.xml:105
-#, no-c-format
+#: injection.xml:173
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCheque {}]]>"
+"public @interface Synchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -321,60 +399,61 @@
 "public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
-#: injection.xml:107
-#, no-c-format
+#: injection.xml:175
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
 "@BindingType\n"
-"public @interface PayByCreditCard {}]]>"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: para
-#: injection.xml:109
-#, no-c-format
+#: injection.xml:177
+#, fuzzy, no-c-format
 msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
-msgstr "客戶端 Web Bean 開發人員會使用綁定標記來確切指定哪個 Web Bean 應被注入。"
+"A client bean developer uses the qualifier annotation to specify exactly "
+"which bean should be injected."
+msgstr ""
+"客戶端 Web Bean 開發人員會使用綁定標記來確切指定哪個 Web Bean 應被注入。"
 
 #. Tag: para
-#: injection.xml:112
+#: injection.xml:181
 #, no-c-format
 msgid "Using field injection:"
 msgstr "使用 field injection:"
 
 #. Tag: programlisting
-#: injection.xml:114
-#, no-c-format
+#: injection.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
-"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Inject @Synchronous PaymentProcessor syncPaymentProcessor;\n"
+"@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;]]>"
 msgstr ""
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
-#: injection.xml:116
+#: injection.xml:185
 #, no-c-format
 msgid "Using initializer method injection:"
 msgstr "使用 initializer method injection:"
 
 #. Tag: programlisting
-#: injection.xml:118
-#, no-c-format
+#: injection.xml:187
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-"                                 @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
-"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
-"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"<![CDATA[@Inject\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+"                                 @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Initializer\n"
@@ -387,15 +466,22 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:120
-#, no-c-format
-msgid "Or using constructor injection:"
+#: injection.xml:189
+#, fuzzy, no-c-format
+msgid "Using constructor injection:"
 msgstr "或使用 constructor injection:"
 
 #. Tag: programlisting
-#: injection.xml:122
-#, no-c-format
+#: injection.xml:191
+#, fuzzy, no-c-format
 msgid ""
+"<![CDATA[@Inject\n"
+"public Checkout(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
+"                @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"   this.syncPaymentProcessor = syncPaymentProcessor;\n"
+"   this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
 "public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
 "                @PayByCreditCard PaymentProcessor "
@@ -403,36 +489,85 @@
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
+
+#. Tag: para
+#: injection.xml:193
+#, no-c-format
+msgid ""
+"Qualifier annotations can also qualify method arguments of producer, "
+"disposer and observer methods. Combining qualified arguments with producer "
+"methods is a good way to have an implementation of a bean type selected at "
+"runtime based on the state of the system:"
 msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:199
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Produces\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+"                                     @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
+"   return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
+"}]]>"
+msgstr ""
 "<![CDATA[@Initializer\n"
-"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-"                @PayByCreditCard PaymentProcessor "
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
 "creditCardPaymentProcessor) {\n"
 "   this.chequePaymentProcessor = chequePaymentProcessor;\n"
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 
+#. Tag: para
+#: injection.xml:201
+#, no-c-format
+msgid ""
+"If an injected field or a parameter of a bean constructor or initializer "
+"method is not explicitly annotated with a qualifier, the default qualifier, "
+"<literal>@Default</literal>, is assumed."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:206
+#, no-c-format
+msgid ""
+"Now, you may be thinking, <emphasis>\"What's the different between using a "
+"qualifier and just specifying the exact implementation class you want?\"</"
+"emphasis> It's important to understand that a qualifier is like an extension "
+"of the interface. It does not create a direct dependency to any particular "
+"implementation. There may be multiple alterative implementations of "
+"<literal>@Asynchronous PaymentProcessor</literal>!"
+msgstr ""
+
 #. Tag: title
-#: injection.xml:125
+#: injection.xml:216
 #, no-c-format
-msgid "Binding annotations with members"
-msgstr "member 和綁定標記"
+msgid "Qualifiers with members"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:127
+#: injection.xml:218
 #, no-c-format
-msgid "Binding annotations may have members:"
-msgstr "綁定標記能夠有 member:"
+msgid ""
+"Java annotations can have members. We can use annotation members to further "
+"discriminate a qualifier. This prevents a potential explosion of new "
+"annotations. For example, instead of creating several qualifiers "
+"representing different payment methods, we could aggregate them into a "
+"single annotation with a member:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:129
-#, no-c-format
+#: injection.xml:224
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
-"@BindingType\n"
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
 "public @interface PayBy {\n"
-"    PaymentType value();\n"
+"   PaymentMethod value();\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -443,747 +578,655 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:131
+#: injection.xml:226
 #, no-c-format
-msgid "In which case, the member value is significant:"
-msgstr "在此情況下,member value 非常重要:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:133
-#, no-c-format
+#: injection.xml:230
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
 msgstr ""
-"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
-"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:135
-#, no-c-format
+#: injection.xml:232
+#, fuzzy, no-c-format
 msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
-msgstr "您可藉由標記 <literal>@NonBinding</literal> 這個 member 來讓 Web Bean 管理員忽略某個綁定標記類型的成員。"
+"We can force the container to ignore a member of a qualifier type by "
+"annotating the member <literal>@NonBinding</literal>."
+msgstr ""
+"您可藉由標記 <literal>@NonBinding</literal> 這個 member 來讓 Web Bean 管理員"
+"忽略某個綁定標記類型的成員。"
 
+#. Tag: programlisting
+#: injection.xml:237
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Retention(RUNTIME)\n"
+"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
+"public @interface PayBy {\n"
+"   PaymentMethod value();\n"
+"   @NonBinding String comment() default \"\";\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
+
 #. Tag: title
-#: injection.xml:141
+#: injection.xml:242
 #, no-c-format
-msgid "Combinations of binding annnotations"
-msgstr "綁定標記的組合"
+msgid "Multiple qualifiers"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:143
-#, no-c-format
-msgid "An injection point may even specify multiple binding annotations:"
+#: injection.xml:244
+#, fuzzy, no-c-format
+msgid "An injection point may specify multiple qualifiers:"
 msgstr "一個注入點甚至有可能會指定多重綁定標記:"
 
 #. Tag: programlisting
-#: injection.xml:145
-#, no-c-format
-msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+#: injection.xml:248
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:147
-#, no-c-format
+#: injection.xml:250
+#, fuzzy, no-c-format
 msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
-msgstr "在這種情況下,只有擁有這<emphasis>兩個</emphasis>綁定標記的 Web Bean 可被注入。"
+"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
+"would be eligible for injection."
+msgstr ""
+"在這種情況下,只有擁有這<emphasis>兩個</emphasis>綁定標記的 Web Bean 可被注"
+"入。"
 
-#. Tag: title
-#: injection.xml:153
-#, no-c-format
-msgid "Binding annotations and producer methods"
-msgstr "綁定標記和 producer method"
-
-#. Tag: para
-#: injection.xml:155
-#, no-c-format
-msgid "Even producer methods may specify binding annotations:"
-msgstr "就連 producer method 也能指定綁定標記:"
-
 #. Tag: programlisting
-#: injection.xml:157
-#, no-c-format
+#: injection.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@Synchronous @Reliable\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
+"   public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
-"<![CDATA[@Produces \n"
-"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
-"    return new AsynchronousPaymentProcessor(processor);\n"
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
 "}]]>"
 
 #. Tag: title
-#: injection.xml:162
+#: injection.xml:260
 #, no-c-format
-msgid "The default binding type"
-msgstr "預設綁定類型"
+msgid "Alternatives"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:164
+#: injection.xml:262
 #, no-c-format
 msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
-msgstr "Web Bean 定義了一個綁定類型 <literal>@Current</literal>,這是個任何未明確指定綁定類型的注入點或 Web Bean 的預設綁定類型。"
+"Alternatives are beans whose implementation is specific to a particular "
+"client module or deployment scenario. This alternative defines a mock "
+"implementation of both <literal>@Synchronous PaymentProcessor</literal> and "
+"<literal>@Asynchronous PaymentProcessor</literal>, all in one:"
+msgstr ""
 
+#. Tag: programlisting
+#: injection.xml:266
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"   public void process(Payment payment) { ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
+
 #. Tag: para
-#: injection.xml:168
+#: injection.xml:268
 #, no-c-format
 msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
-msgstr "一般來講,在兩個情況下會需要明確地指定 <literal>@Current</literal>:"
+"By default, <literal>@Alternative</literal> beans are disabled. We need to "
+"<emphasis>enable</emphasis> an alternative in the <literal>beans.xml</"
+"literal> descriptor of a bean archive to make it available for instantiation "
+"and injection. This activation only applies to the beans in that archive."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:173
+#. Tag: programlisting
+#: injection.xml:274
 #, no-c-format
 msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
-msgstr "在一個 field 上,為了要將該 field 宣告為含有預設綁定類型的已注入欄位,以及"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <class>org.mycompany.mock.MockPaymentProcessor</class>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:177
+#: injection.xml:276
 #, no-c-format
 msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
-msgstr "在一個除了預設綁定類型之外還另擁有一個綁定類型的 Web Bean 上。"
+"When an ambiguous dependency exists at an injection point, the container "
+"attempts to resolve the ambiguity by looking for an enabled alternative "
+"among the beans that could be injected. If there is exactly one enabled "
+"alternative, that's the bean that will be injected."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:187
-#, no-c-format
-msgid "Deployment types"
-msgstr "建置類型"
+#: injection.xml:285
+#, fuzzy, no-c-format
+msgid "Fixing unsatisfied and ambiguous dependencies"
+msgstr "修正相依性不足(unsatisfied dependencies)的問題"
 
 #. Tag: para
-#: injection.xml:189
-#, no-c-format
+#: injection.xml:287
+#, fuzzy, no-c-format
 msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
-msgstr "所有 Web Bean 都有一個 <emphasis>deployment type(建置類型)</emphasis>。各個 deployment type 都可標識一組應依照條件性地被安裝在系統的某些 deployment 中的 Web Bean。"
+"The typesafe resolution algorithm fails when, after considering the "
+"qualifier annotations on all beans that implement the bean type of an "
+"injection point and filtering out disabled beans (<literal>@Alternative</"
+"literal> beans which are not explicitly enabled), the container is unable to "
+"identify exactly one bean to inject. The container will abort deployment, "
+"informing us of the unsatisfied or ambiguous dependency."
+msgstr ""
+"就所有實做某個注入點的 API 類型的 Web Bean 綁定標記和 deployment type 來講,"
+"若 Web Bean 管理員無法辨識出正好一個需被注入的 Web Bean 為何,那麼 typesafe "
+"解析演算法便會失敗。"
 
 #. Tag: para
-#: injection.xml:193
+#: injection.xml:294
 #, no-c-format
 msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
-msgstr "比方說,我們可定義一個名為 <literal>@Mock</literal> 的 deployment type,它會找出只應在系統執行於一個整合測試環境中的時候才會被安裝的 Web Bean:"
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:197
+#. Tag: para
+#: injection.xml:298
 #, no-c-format
-msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
+msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"  @Target({TYPE, METHOD})\n"
-"  @DeploymentType\n"
-"  public @interface Mock {}]]>"
 
 #. Tag: para
-#: injection.xml:199
+#: injection.xml:304
 #, no-c-format
 msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
-msgstr "假設我們有一些和外部系統進行互動以便處理款項的 Web Bean:"
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:202
+#. Tag: para
+#: injection.xml:309
 #, no-c-format
 msgid ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
+"make sure that the bean you already have is in the classpath of the module "
+"with the injection point, or"
 msgstr ""
-"<![CDATA[public class ExternalPaymentProcessor {\n"
-"        \n"
-"    public void process(Payment p) {\n"
-"        ...\n"
-"    }\n"
-"    \n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:204
+#: injection.xml:314
 #, no-c-format
 msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
-msgstr "因為這個 Web Bean 並未明確地指定一個 deployment type,因此它的 deployment type 會是預設的 <literal>@Production</literal>。"
+"explicitly enable an <literal>@Alternative</literal> bean that implements "
+"the bean type and has the appropriate qualifier types, using <literal>beans."
+"xml</literal>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:207
+#: injection.xml:321
 #, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
-msgstr "假設要進行整合或是單元測試(unit testing),不過外部系統較慢或是無法使用。因此我們將建立一個 mock 物件:"
+msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:210
+#. Tag: para
+#: injection.xml:327
 #, no-c-format
 msgid ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
 msgstr ""
-"<![CDATA[@Mock \n"
-"public class MockPaymentProcessor implements PaymentProcessor {\n"
-"\n"
-"    @Override\n"
-"    public void process(Payment p) {\n"
-"        p.setSuccessful(true);\n"
-"    }\n"
-"\n"
-"}]]>"
 
 #. Tag: para
-#: injection.xml:212
+#: injection.xml:332
 #, no-c-format
 msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
-msgstr "不過 Web Bean 管理員要如何判斷在特定建置中該使用哪個實做?"
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgstr ""
 
-#. Tag: title
-#: injection.xml:216
-#, no-c-format
-msgid "Enabling deployment types"
-msgstr "啟用 deployment type"
-
 #. Tag: para
-#: injection.xml:218
+#: injection.xml:337
 #, no-c-format
 msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
+"move one of the implementations to a module that is not in the classpath of "
+"the module with the injection point, or"
 msgstr ""
-"Web Bean 定義了兩個內建的 deployment type:<literal>@Production</"
-"literal> 和 <literal>@Standard</literal>。就預設值,當系統被建置時,只有含有內建 deployment type 的 Web Bean 會被啟用。我們可藉由將特定 deployment type 列在 <literal>web-beans.xml</literal> 中來識別在特定 deployment 中可啟用的額外 deployment type。"
 
 #. Tag: para
-#: injection.xml:224
+#: injection.xml:343
 #, no-c-format
 msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
-msgstr "回到我們的範例,當我們建置我們的整合測試時,我們希望我們所有的 <literal>@Mock</literal> 物件都會被安裝:"
+"disable one of two <literal>@Alternative</literal> beans that are trying to "
+"occupy the same space, using <literal>beans.xml</literal>."
+msgstr ""
 
-#. Tag: programlisting
-#: injection.xml:227
+#. Tag: para
+#: injection.xml:350
 #, no-c-format
 msgid ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
+"See <ulink src=\"http://sfwk.org/Documentation/"
+"HowDoAResolveAnAmbiguousResolutionExceptionBetweenAProducerMethodAndARawType"
+"\">this FAQ</ulink> for step-by-step instructions for how to resolve an "
+"ambigous resolution exception between a raw bean type and a producer method "
+"that returns the same bean type."
 msgstr ""
-"<![CDATA[<WebBeans>\n"
-"    <Deploy>\n"
-"        <Standard/>\n"
-"        <Production/>\n"
-"        <test:Mock/>\n"
-"    </Deploy>\n"
-"</WebBeans>]]>"
 
 #. Tag: para
-#: injection.xml:229
+#: injection.xml:358
 #, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
-msgstr "現在,Web Bean 管理員將會在 deployment time 找出並安裝所有標記為 <literal>@Production</literal>、<literal>@Standard</literal> 或 <literal>@Mock</literal> 的 Web Bean。"
+msgid "Just remember: \"There can be only one.\""
+msgstr ""
 
 #. Tag: para
-#: injection.xml:233
+#: injection.xml:361
 #, no-c-format
 msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
-msgstr "<literal>@Standard</literal> 這個 deployment type 只會被用於 Web Bean 規格所定義的特定特殊 Web Bean。我們無法將它使用於我們自己的 Web Bean 上,並且我們無法將它停用。"
+"On the other hand, if you really do have an optional or multivalued "
+"injection point, you should change the type of your injection point to "
+"<literal>Instance</literal>, as we'll see in <xref linkend=\"lookup\"/>."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:237
-#, no-c-format
+#: injection.xml:366
+#, fuzzy, no-c-format
 msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
-msgstr "<literal>@Production</literal> 這個 deployment type 屬於未明確定義 deployment type 的 Web Bean 的預設 deployment type,並且可被停用。"
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
+msgstr "當您在 Web Bean 中使用依賴注入時,您還需要注意一個問題。"
 
 #. Tag: title
-#: injection.xml:244
+#: injection.xml:373
 #, no-c-format
-msgid "Deployment type precedence"
-msgstr "Deployment type 優先權"
+msgid "Client proxies"
+msgstr "客戶端代理伺服器(Client proxies)"
 
 #. Tag: para
-#: injection.xml:246
-#, no-c-format
+#: injection.xml:375
+#, fuzzy, no-c-format
 msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation &#151; <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> &#151; to choose. Consider "
-"what happens when the manager encounters this injection point:"
+"Clients of an injected bean do not usually hold a direct reference to a bean "
+"instance, unless the bean is a dependent object (scope <literal>@Dependent</"
+"literal>)."
 msgstr ""
-"若您有在細心注意的話,您應該會疑惑 Web Bean 管理員如何決定哪個實做 &#151; <literal>ExternalPaymentProcessor</"
-"literal> 和 <literal>MockPaymentProcessor</literal> &#151; 中選擇哪一個。請思考當管理員遇上了這個注入點時會如何:"
+"一個已注入的 Web Bean 的客戶端通常不會持有一個 Web Bean instance 的直接參照。"
 
-#. Tag: programlisting
-#: injection.xml:251
-#, no-c-format
-msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-
 #. Tag: para
-#: injection.xml:253
-#, no-c-format
+#: injection.xml:380
+#, fuzzy, no-c-format
 msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
-msgstr "有兩個 Web Bean 可滿足 <literal>PaymentProcessor</literal> 合同。當然,我們無法使用綁定標記來消除語意上的含糊意義,因為綁定標記已寫死(hard-coded)在注入點的來源之中,而且我們希望管理員能夠在 deployment time 時作決定!"
+"Imagine that a bean bound to the application scope held a direct reference "
+"to a bean bound to the request scope. The application-scoped bean is shared "
+"between many different requests. However, each request should see a "
+"different instance of the request scoped bean&#8212;the current one!"
+msgstr ""
+"想像一個綁定至應用程式 scope 的 Web Bean 持有一個綁定至請求 scope 的 Web "
+"Bean 的直接參照。這個應用程式 scope 的 Web Bean 會在許多不同的請求之間被共"
+"享。不過,各個請求都應要看見一個不同的請求 scope Web Bean 的 instance!"
 
 #. Tag: para
-#: injection.xml:258
-#, no-c-format
+#: injection.xml:386
+#, fuzzy, no-c-format
 msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
-msgstr "這項問題的解決方式就是利用各個 deployment type 的不同<emphasis>優先權</emphasis>。Deployment type 的優先權是透過它們出現在 <literal>web-beans.xml</literal> 中的順序來決定的。在我們的範例中,<literal>@Mock</literal> 出現的順序在 <literal>@Production</literal> 之後,因此它會有較高的優先權。"
+"Now imagine that a bean bound to the session scope holds a direct reference "
+"to a bean bound to the application scope. From time to time, the session "
+"context is serialized to disk in order to use memory more efficiently. "
+"However, the application scoped bean instance should not be serialized along "
+"with the session scoped bean! It can get that reference any time. No need to "
+"hoard it!"
+msgstr ""
+"現在,請想像一個綁定至 session scope 的 Web Bean 持有一個綁定至應用程式 "
+"scope 的 Web Bean 的直接參照。有時,session context 會被序列化至磁碟中以便更"
+"有效率地使用記憶體。不過,應用程式 scope 的 Web Bean instance 不該和 session "
+"scope 的 Web Bean 一起被序列化!"
 
 #. Tag: para
-#: injection.xml:264
-#, no-c-format
+#: injection.xml:393
+#, fuzzy, no-c-format
 msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
-msgstr "每當管理員發現了多於一個 Web Bean 可滿足由某個注入點所指定的合同(API 類型加上綁定標記)時,它會考量到 Web Bean 的相關優先權。若有一方的優先權較高,它便會選擇優先權較高的那個 Web Bean 來注入。因此,在我們的範例中,當 Web Bean 管理員執行於我們的整合測試環境中的時候(這正是我們想要的),它將會注入 <literal>MockPaymentProcessor</literal>。"
+"Therefore, unless a bean has the default scope <literal>@Dependent</"
+"literal>, the container must indirect all injected references to the bean "
+"through a proxy object. This <emphasis>client proxy</emphasis> is "
+"responsible for ensuring that the bean instance that receives a method "
+"invocation is the instance that is associated with the current context. The "
+"client proxy also allows beans bound to contexts such as the session context "
+"to be serialized to disk without recursively serializing other injected "
+"beans."
+msgstr ""
+"因此,除非有個 Web Bean 擁有預設的 <literal>@Dependent</literal> scope,否則 "
+"Web Bean 管理員便必須透過一個 proxy 物件來將所有注入的參照重新指向 Web Bean。"
+"這個 <emphasis>client proxy</emphasis> 負責確保收到 method 調用的 Web Bean "
+"instance 是個和目前 context 相聯的 instance。客戶端 proxy 亦可允許在不遞迴地"
+"序列化其它已注入的 Web Bean 的情況下也能讓綁定至 context(例如 session "
+"context)的 Web Bean 被序列化至磁碟。"
 
 #. Tag: para
-#: injection.xml:271
-#, no-c-format
+#: injection.xml:401
+#, fuzzy, no-c-format
 msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
-msgstr "和現今多人使用的管理員架構相較之下,這個功能相當地有趣。各種「lightweight」的 container 都允許存在 classpath 中的 class 的條件性建置,不過要被建置的 class 必須要明確、各別地列在配置程式碼或是一些 XML 配置檔案中。Web Bean 不支援透過 XML 的 Web Bean 定義與配置,不過在一般情況下當不需要複雜的配置時,deployment type 允許一整組 Web Bean 能夠透過 XML 中的一個單獨行列來被啟用。其間,瀏覽程式碼的開發人員能夠輕易地分辨出 Web Bean 將會使用哪種建置方案(deployment scenario)。"
+"Unfortunately, due to limitations of the Java language, some Java types "
+"cannot be proxied by the container. If an injection point declared with one "
+"of these types resolves to a bean with any scope other than "
+"<literal>@Dependent</literal>, the container will abort deployment, "
+"informing us of the problem."
+msgstr ""
+"不巧的是,礙於 Java 語言的限制,有些 Java 類型無法被 Web Bean 管理員代理"
+"(proxied)。因此,若某個注入點的 type 無法被代理的話,Web Bean 管理員便會回"
+"傳一個 <literal>UnproxyableDependencyException</literal>。"
 
-#. Tag: title
-#: injection.xml:284
-#, no-c-format
-msgid "Example deployment types"
-msgstr "範例 deployment type"
-
 #. Tag: para
-#: injection.xml:286
-#, no-c-format
-msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr "Deployment type 針對於許多情況都相當便於使用,以下為一些範例:"
+#: injection.xml:407
+#, fuzzy, no-c-format
+msgid "The following Java types cannot be proxied by the container:"
+msgstr "下列 Java 類型無法被 Web Bean 管理員代理:"
 
 #. Tag: para
-#: injection.xml:290
-#, no-c-format
+#: injection.xml:411
+#, fuzzy, no-c-format
 msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
-msgstr "用來測試的 <literal>@Mock</literal> 和 <literal>@Staging</literal> deployment type"
+"classes which don't have a non-private constructor with no parameters, and"
+msgstr "沒有非私密 constructor 的無參數 class,以及"
 
 #. Tag: para
-#: injection.xml:294
+#: injection.xml:414
 #, no-c-format
-msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr "<literal>@AustralianTaxLaw</literal> 可用於網站特屬的 Web Bean"
-
-#. Tag: para
-#: injection.xml:297
-#, no-c-format
 msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
-msgstr "<literal>@SeamFramework</literal>、<literal>@Guice</literal> 可用於建立在 Web Bean 上的第三方 framework"
+"classes which are declared <literal>final</literal> or have a "
+"<literal>final</literal> method,"
+msgstr ""
+"所有被宣告 <literal>final</literal> 或是含有一個 <literal>final</literal> "
+"method 的 class、"
 
 #. Tag: para
-#: injection.xml:301
+#: injection.xml:419
 #, no-c-format
-msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
-msgstr "<literal>@Standard</literal> 可用於以 Web Bean 規格所定義的標準 Web Bean"
+msgid "arrays and primitive types."
+msgstr "陣列(array)與基本型別(primitive type)。"
 
 #. Tag: para
-#: injection.xml:306
-#, no-c-format
-msgid "I'm sure you can think of more applications..."
-msgstr "我們相信您還能夠聯想到更多應用程式..."
-
-#. Tag: title
-#: injection.xml:313
-#, no-c-format
-msgid "Fixing unsatisfied dependencies"
-msgstr "修正相依性不足(unsatisfied dependencies)的問題"
-
-#. Tag: para
-#: injection.xml:315
-#, no-c-format
+#: injection.xml:423
+#, fuzzy, no-c-format
 msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
-msgstr "就所有實做某個注入點的 API 類型的 Web Bean 綁定標記和 deployment type 來講,若 Web Bean 管理員無法辨識出正好一個需被注入的 Web Bean 為何,那麼 typesafe 解析演算法便會失敗。"
+"It's usually very easy to fix an unproxyable dependency problem. Simply add "
+"a constructor with no parameters to the injected class, introduce an "
+"interface, or, if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+"要修正 <literal>UnproxyableDependencyException</literal> 通常相當容易。只要將"
+"一個無參數的 constructor 附加至注入的 class、採用一個介面,或將已注入的 Web "
+"Bean 的 scope 更改為 <literal>@Dependent</literal> 即可。"
 
 #. Tag: para
-#: injection.xml:320
+#: injection.xml:430
 #, no-c-format
 msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr "要修正一個 <literal>UnsatisfiedDependencyException</literal> 或 <literal>AmbiguousDependencyException</literal> 通常相當容易。"
+"A future release of Weld will likely support a non-standard workaround for "
+"this limitation, using non-portable JVM APIs:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:323
+#: injection.xml:437
 #, no-c-format
 msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point &#151; or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
-msgstr "若要修正一項 <literal>UnsatisfiedDependencyException</literal>,只要提供一個實做 API 類型並且擁有注入點的綁定類型的 Web Bean 即可 &#151; 或是啟用一個已實做 API 類型並且擁有綁定類型的 Web Bean 的 deployment type 即可。"
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:328
+#: injection.xml:442
 #, no-c-format
 msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
-msgstr "若要修正一項 <literal>AmbiguousDependencyException</literal>,您可加入一個綁定類型來在兩個 API 類型的實做之間進行分辨,或是更改其中一個實做的 deployment type,這樣一來 Web Bean 管理員便可透過使用 deployment type 優先權來在它們之間作選擇。<literal>AmbiguousDependencyException</literal> 只會在有兩個 Web Bean 共享一個綁定類型並擁有相同 deployment type 的情況下才會發生。"
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:335
+#: injection.xml:448
 #, no-c-format
-msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
-msgstr "當您在 Web Bean 中使用依賴注入時,您還需要注意一個問題。"
+msgid "But we didn't get around to implementing this yet."
+msgstr ""
 
 #. Tag: title
-#: injection.xml:341
-#, no-c-format
-msgid "Client proxies"
-msgstr "客戶端代理伺服器(Client proxies)"
+#: injection.xml:457
+#, fuzzy, no-c-format
+msgid "Obtaining a contextual instance by programmatic lookup"
+msgstr "透過程式性的搜尋來取得一個 Web Bean"
 
 #. Tag: para
-#: injection.xml:343
+#: injection.xml:459
 #, no-c-format
 msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
-msgstr "一個已注入的 Web Bean 的客戶端通常不會持有一個 Web Bean instance 的直接參照。"
+"In certain situations, injection is not the most convenient way to obtain a "
+"contextual reference. For example, it may not be used when:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:346
+#: injection.xml:466
 #, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
-msgstr "想像一個綁定至應用程式 scope 的 Web Bean 持有一個綁定至請求 scope 的 Web Bean 的直接參照。這個應用程式 scope 的 Web Bean 會在許多不同的請求之間被共享。不過,各個請求都應要看見一個不同的請求 scope Web Bean 的 instance!"
+msgid "the bean type or qualifiers vary dynamically at runtime, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:351
+#: injection.xml:471
 #, no-c-format
 msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
-msgstr "現在,請想像一個綁定至 session scope 的 Web Bean 持有一個綁定至應用程式 scope 的 Web Bean 的直接參照。有時,session context 會被序列化至磁碟中以便更有效率地使用記憶體。不過,應用程式 scope 的 Web Bean instance 不該和 session scope 的 Web Bean 一起被序列化!"
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:357
+#: injection.xml:476
 #, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
-msgstr "因此,除非有個 Web Bean 擁有預設的 <literal>@Dependent</literal> scope,否則 Web Bean 管理員便必須透過一個 proxy 物件來將所有注入的參照重新指向 Web Bean。這個 <emphasis>client proxy</emphasis> 負責確保收到 method 調用的 Web Bean instance 是個和目前 context 相聯的 instance。客戶端 proxy 亦可允許在不遞迴地序列化其它已注入的 Web Bean 的情況下也能讓綁定至 context(例如 session context)的 Web Bean 被序列化至磁碟。"
+msgid "we would like to iterate over all beans of a certain type."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:365
-#, no-c-format
+#: injection.xml:482
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
-msgstr "不巧的是,礙於 Java 語言的限制,有些 Java 類型無法被 Web Bean 管理員代理(proxied)。因此,若某個注入點的 type 無法被代理的話,Web Bean 管理員便會回傳一個 <literal>UnproxyableDependencyException</literal>。"
+"In these situations, the application may obtain an instance of the interface "
+"<literal>Instance</literal>, parameterized for the bean type, by injection:"
+msgstr ""
+"應用程式可透過注入來取得 <literal>Manager</literal> 這個介面的一個 instance:"
 
-#. Tag: para
-#: injection.xml:370
-#, no-c-format
-msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr "下列 Java 類型無法被 Web Bean 管理員代理:"
+#. Tag: programlisting
+#: injection.xml:487
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:374
-#, no-c-format
+#: injection.xml:489
+#, fuzzy, no-c-format
 msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
-msgstr "所有被宣告 <literal>final</literal> 或是含有一個 <literal>final</literal> method 的 class、"
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
+msgstr ""
+"用來測試的 <literal>@Mock</literal> 和 <literal>@Staging</literal> "
+"deployment type"
 
+#. Tag: programlisting
+#: injection.xml:493
+#, fuzzy, no-c-format
+msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
+
 #. Tag: para
-#: injection.xml:378
+#: injection.xml:495
 #, no-c-format
-msgid "classes which have no non-private constructor with no parameters, and"
-msgstr "沒有非私密 constructor 的無參數 class,以及"
+msgid "Qualifiers can be specified in one of two ways:"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:381
+#: injection.xml:501
 #, no-c-format
-msgid "arrays and primitive types."
-msgstr "陣列(array)與基本型別(primitive type)。"
+msgid "by annotating the <literal>Instance</literal> injection point, or"
+msgstr ""
 
 #. Tag: para
-#: injection.xml:385
-#, no-c-format
+#: injection.xml:504
+#, fuzzy, no-c-format
 msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
-msgstr "要修正 <literal>UnproxyableDependencyException</literal> 通常相當容易。只要將一個無參數的 constructor 附加至注入的 class、採用一個介面,或將已注入的 Web Bean 的 scope 更改為 <literal>@Dependent</literal> 即可。"
+"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
+"literal>."
+msgstr ""
+"基本的 Web Bean 只支援 <literal>@PostConstruct</literal> 和 "
+"<literal>@PreDestroy</literal> callback。"
 
-#. Tag: title
-#: injection.xml:392
-#, no-c-format
-msgid "Obtaining a Web Bean by programatic lookup"
-msgstr "透過程式性的搜尋來取得一個 Web Bean"
-
 #. Tag: para
-#: injection.xml:394
+#: injection.xml:508
 #, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
-msgstr "應用程式可透過注入來取得 <literal>Manager</literal> 這個介面的一個 instance:"
+msgid "Specifying the qualifiers at the injection point is much, much easier:"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:397
-#, no-c-format
-msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr "<![CDATA[@Current Manager manager;]]>"
+#: injection.xml:512
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:399
+#: injection.xml:514
 #, no-c-format
 msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
-msgstr "<literal>Manager</literal> 這個物件提供了一組用來程式性地取得 Web Bean instance 的 method。"
-
-#. Tag: programlisting
-#: injection.xml:402
-#, no-c-format
-msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
 msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
 
 #. Tag: para
-#: injection.xml:404
+#: injection.xml:519
 #, no-c-format
 msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
-msgstr "綁定標記能被透過建立 helper class 的 subclass <literal>AnnotationLiteral</literal> 來指定,否則在 Java 中很難例示一個標記類型。"
+"Alternatively, we can specify the qualifier dynamically. First, we add the "
+"<literal>@Any</literal> qualifier to the injection point, to suppress the "
+"default qualifier. (All beans have the qualifier <literal>@Any</literal>.)"
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:408
-#, no-c-format
+#: injection.xml:524
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
-msgstr ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
-#: injection.xml:410
+#: injection.xml:526
 #, no-c-format
 msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll need to "
-"create a named subclass:"
-msgstr "若綁定類型有個標記成員,我們便無法使用 <literal>AnnotationLiteral</literal> 的一個匿名 subclass &#151; 我們需要建立一個有命名的 subclass:"
+"Next, we need to obtain an instance of our qualifier type. Since annotatons "
+"are interfaces, we can't just write <literal>new Asynchronous()</literal>. "
+"It's also quite tedious to create a concrete implementation of an annotation "
+"type from scratch. Instead, CDI lets us obtain a qualifier instance by "
+"subclassing the helper class <literal>AnnotationLiteral</literal>."
+msgstr ""
 
 #. Tag: programlisting
-#: injection.xml:413
-#, no-c-format
+#: injection.xml:533
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[abstract class CreditCardBinding \n"
-"    extends AnnotationLiteral<CreditCard> \n"
-"    implements CreditCard {}]]>"
+"<![CDATA[abstract class AsynchronousQualifier\n"
+"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
 msgstr ""
 "<![CDATA[abstract class CreditCardBinding \n"
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 
+#. Tag: para
+#: injection.xml:535
+#, no-c-format
+msgid "In some cases, we can use an anonymous class:"
+msgstr ""
+
 #. Tag: programlisting
-#: injection.xml:415
-#, no-c-format
+#: injection.xml:539
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
+"   .select(new AnnotationLiteral<Asynchronous>() {});]]>"
 msgstr ""
 "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
 "class, \n"
-"                                               new CreditCardBinding() { \n"
-"                                                   public void value() "
-"{ return paymentType; } \n"
-"                                               } );]]>"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
-#. Tag: title
-#: injection.xml:419
-#, no-c-format
-msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
-msgstr "Lifecycle callback、<literal>@Resource</literal>、<literal>@EJB</literal> 和 <literal>@PersistenceContext</literal>"
-
 #. Tag: para
-#: injection.xml:422
+#: injection.xml:542
 #, no-c-format
 msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
-msgstr "企業級的 Web Bean 支援 EJB 規格所定義的所有 lifecycle callback:<literal>@PostConstruct</literal>、<literal>@PreDestroy</literal>、<literal>@PrePassivate</literal> 和 <literal>@PostActivate</literal>。"
+"We can't use an anonymous class to implement a qualifier type with members."
+msgstr ""
 
 #. Tag: para
-#: injection.xml:426
+#: injection.xml:547
 #, no-c-format
 msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
-msgstr "基本的 Web Bean 只支援 <literal>@PostConstruct</literal> 和 <literal>@PreDestroy</literal> callback。"
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
+msgstr ""
 
-#. Tag: para
-#: injection.xml:429
+#. Tag: programlisting
+#: injection.xml:551
 #, no-c-format
 msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
-msgstr "企業級和基本的 Web Bean 皆支援使用 <literal>@Resource</literal>、<literal>@EJB</literal> 和 <literal>@PersistenceContext</literal> 來相應地注入 Java EE 資源、EJB 和 JPA 的 persistence context。基本的 Web Bean 不支援使用 <literal>@PersistenceContext(type=EXTENDED)</literal>。"
+"<![CDATA[Annotation qualifier = synchronously ?\n"
+"      new SynchronousQualifier() : new AsynchronousQualifier();\n"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
+msgstr ""
 
-#. Tag: para
-#: injection.xml:434
-#, no-c-format
-msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
-msgstr "<literal>@PostConstruct</literal> callback 一定會在所有相依性都被注入後才會發生。"
-
 #. Tag: title
-#: injection.xml:440
+#: injection.xml:556
 #, no-c-format
 msgid "The <literal>InjectionPoint</literal> object"
 msgstr "<literal>InjectionPoint</literal> 物件"
 
 #. Tag: para
-#: injection.xml:442
-#, no-c-format
+#: injection.xml:558
+#, fuzzy, no-c-format
 msgid ""
-"There are certain kinds of dependent objects &#151; Web Beans with scope "
-"<literal>@Dependent</literal> &#151; that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
-msgstr "有幾種特定相依物件 &#151; 含有 <literal>@Dependent</literal> 這個 scope 的 Web Bean &#151; 需要知道有關於物件或是它們被注入的注入點相關資訊才能進行它們本應進行的工作。比方說:"
+"There are certain kinds of dependent objects (beans with scope "
+"<literal>@Dependent</literal>) that need to know something about the object "
+"or injection point into which they are injected in order to be able to do "
+"what they do. For example:"
+msgstr ""
+"有幾種特定相依物件 &#151; 含有 <literal>@Dependent</literal> 這個 scope 的 "
+"Web Bean &#151; 需要知道有關於物件或是它們被注入的注入點相關資訊才能進行它們"
+"本應進行的工作。比方說:"
 
 #. Tag: para
-#: injection.xml:448
+#: injection.xml:564
 #, no-c-format
 msgid ""
 "The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1191,54 +1234,64 @@
 msgstr "<literal>Logger</literal> 的 log category 取決於擁有它的物件的 class。"
 
 #. Tag: para
-#: injection.xml:452
+#: injection.xml:568
 #, no-c-format
 msgid ""
 "Injection of a HTTP parameter or header value depends upon what parameter or "
 "header name was specified at the injection point."
-msgstr "HTTP 參數或是 header value 的注入取決於在注入點所指定的參數或標頭名稱。"
+msgstr ""
+"HTTP 參數或是 header value 的注入取決於在注入點所指定的參數或標頭名稱。"
 
 #. Tag: para
-#: injection.xml:456
+#: injection.xml:572
 #, no-c-format
 msgid ""
 "Injection of the result of an EL expression evaluation depends upon the "
 "expression that was specified at the injection point."
-msgstr "EL 運算式評估(expression evaluation)結果的注入取決於在注入點所指定的運算式。"
+msgstr ""
+"EL 運算式評估(expression evaluation)結果的注入取決於在注入點所指定的運算"
+"式。"
 
 #. Tag: para
-#: injection.xml:461
-#, no-c-format
+#: injection.xml:577
+#, fuzzy, no-c-format
 msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
+"A bean with scope <literal>@Dependent</literal> may inject an instance of "
+"<literal>InjectionPoint</literal> and access metadata relating to the "
 "injection point to which it belongs."
-msgstr "含有 <literal>@Dependent</literal> 這個 scope 的 Web Bean 能夠注入一個 <literal>InjectionPoint</literal> instance 並存取和它所屬的注入點相關的 metadata。"
+msgstr ""
+"含有 <literal>@Dependent</literal> 這個 scope 的 Web Bean 能夠注入一個 "
+"<literal>InjectionPoint</literal> instance 並存取和它所屬的注入點相關的 "
+"metadata。"
 
 #. Tag: para
-#: injection.xml:465
+#: injection.xml:581
 #, no-c-format
 msgid ""
 "Let's look at an example. The following code is verbose, and vulnerable to "
 "refactoring problems:"
-msgstr "讓我們來探討下列範例。下列程式碼較為冗長,並且有重構(refactoring)問題上的弱點:"
+msgstr ""
+"讓我們來探討下列範例。下列程式碼較為冗長,並且有重構(refactoring)問題上的弱"
+"點:"
 
 #. Tag: programlisting
-#: injection.xml:468
+#: injection.xml:584
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
-#: injection.xml:470
+#: injection.xml:586
 #, no-c-format
 msgid ""
 "This clever little producer method lets you inject a JDK <literal>Logger</"
 "literal> without explicitly specifying the log category:"
-msgstr "這個 producer method 能讓您在不明確指定 log category 的情況下注入一個 JDK <literal>Logger</literal>:"
+msgstr ""
+"這個 producer method 能讓您在不明確指定 log category 的情況下注入一個 JDK "
+"<literal>Logger</literal>:"
 
 #. Tag: programlisting
-#: injection.xml:473
+#: injection.xml:589
 #, no-c-format
 msgid ""
 "<![CDATA[class LogFactory {\n"
@@ -1260,27 +1313,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:475
+#: injection.xml:591
 #, no-c-format
 msgid "We can now write:"
 msgstr "現在我們可寫入:"
 
 #. Tag: programlisting
-#: injection.xml:477
-#, no-c-format
-msgid "<![CDATA[@Current Logger log;]]>"
+#: injection.xml:593
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject Logger log;]]>"
 msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
-#: injection.xml:479
-#, no-c-format
+#: injection.xml:595
+#, fuzzy, no-c-format
 msgid ""
 "Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
-msgstr "若您無法被說服的話,我們還有第二個範例。若要注入 HTTP 參數,我們需要定義一個綁定類型:"
+"need to define a qualifier type:"
+msgstr ""
+"若您無法被說服的話,我們還有第二個範例。若要注入 HTTP 參數,我們需要定義一個"
+"綁定類型:"
 
 #. Tag: programlisting
-#: injection.xml:482
+#: injection.xml:598
 #, no-c-format
 msgid ""
 "<![CDATA[@BindingType\n"
@@ -1298,13 +1353,13 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:484
-#, no-c-format
-msgid "We would use this binding type at injection points as follows:"
+#: injection.xml:600
+#, fuzzy, no-c-format
+msgid "We would use this qualifier type at injection points as follows:"
 msgstr "我們可如下在注入點使用此綁定類型:"
 
 #. Tag: programlisting
-#: injection.xml:486
+#: injection.xml:602
 #, no-c-format
 msgid ""
 "<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1314,13 +1369,13 @@
 "@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
-#: injection.xml:488
+#: injection.xml:604
 #, no-c-format
 msgid "The following producer method does the work:"
 msgstr "下列 producer method 可完成此工作:"
 
 #. Tag: programlisting
-#: injection.xml:490
+#: injection.xml:606
 #, no-c-format
 msgid ""
 "<![CDATA[class HttpParams\n"
@@ -1344,24 +1399,29 @@
 "}]]>"
 
 #. Tag: para
-#: injection.xml:492
-#, no-c-format
+#: injection.xml:608
+#, fuzzy, no-c-format
 msgid ""
 "(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
+"literal> annotation is ignored by the container since it is annotated "
 "<literal>@NonBinding.</literal>)"
-msgstr "(請注意,<literal>HttpParam</literal> 標記的 <literal>value()</literal> 成員已被 Web Bean 管理員忽略掉,因為它已被標記為 <literal>@NonBinding.</literal>)"
+msgstr ""
+"(請注意,<literal>HttpParam</literal> 標記的 <literal>value()</literal> 成員"
+"已被 Web Bean 管理員忽略掉,因為它已被標記為 <literal>@NonBinding.</"
+"literal>)"
 
 #. Tag: para
-#: injection.xml:495
-#, no-c-format
+#: injection.xml:611
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
+"The container provides a built-in bean that implements the "
 "<literal>InjectionPoint</literal> interface:"
-msgstr "Web Bean 管理員提供了實做 <literal>InjectionPoint</literal> 介面的內建 Web Bean:"
+msgstr ""
+"Web Bean 管理員提供了實做 <literal>InjectionPoint</literal> 介面的內建 Web "
+"Bean:"
 
 #. Tag: programlisting
-#: injection.xml:498
+#: injection.xml:614
 #, no-c-format
 msgid ""
 "<![CDATA[public interface InjectionPoint { \n"
@@ -1380,3 +1440,520 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 
+#~ msgid ""
+#~ "Web Beans supports three primary mechanisms for dependency injection:"
+#~ msgstr "Web Bean 支援了三個主要的依賴注入機制:"
+
+#~ msgid "Constructor parameter injection:"
+#~ msgstr "Constructor parameter injection:"
+
+#~ msgid ""
+#~ "Constructor parameter injection is not supported for EJB beans, since the "
+#~ "EJB is instantiated by the EJB container, not the Web Bean manager."
+#~ msgstr ""
+#~ "EJB Bean 不支援 Constructor parameter injection,因為 EJB 是由 EJB "
+#~ "container 來例示(instantiate)的,而不是以 Web Bean 管理員。"
+
+#~ msgid ""
+#~ "Parameters of constructors and initializer methods need not be explicitly "
+#~ "annotated when the default binding type <literal>@Current</literal> "
+#~ "applies. Injected fields, however, <emphasis>must</emphasis> specify a "
+#~ "binding type, even when the default binding type applies. If the field "
+#~ "does not specify a binding type, it will not be injected."
+#~ msgstr ""
+#~ "當套用了預設的 <literal>@Current</literal> 綁定類型時,Constructor 和 "
+#~ "initializer method 的參數不需要被明確地標記。不過,儘管套用了預設的綁定類"
+#~ "型,被注入的欄位還是<emphasis>一定</emphasis>要指定綁定類型。若該欄位不指"
+#~ "定綁定類型的話,它將不會被注入。"
+
+#~ msgid "Producer methods also support parameter injection:"
+#~ msgstr "Producer method 也支援 parameter injection:"
+
+#~ msgid ""
+#~ "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/"
+#~ ">), disposal methods and destructor methods all support parameter "
+#~ "injection."
+#~ msgstr ""
+#~ "最後,observer method(我們會在 <xref linkend=\"events\"/> 中談到)、"
+#~ "disposal method 以及 destructor method 全都支援 parameter injection。"
+
+#~ msgid ""
+#~ "allow one implementation of an API to override another implementation of "
+#~ "the same API at deployment time, without changes to the client, using "
+#~ "<emphasis>deployment type precedence</emphasis>."
+#~ msgstr ""
+#~ "允許建置時透過使用 <emphasis>deployment type precedence</emphasis> 來讓某"
+#~ "個 API 的一個實做能在不改變客戶端的情況下置換另一個相同 API 的實做。"
+
+#~ msgid ""
+#~ "Let's explore how the Web Beans manager determines a Web Bean to be "
+#~ "injected."
+#~ msgstr "讓我們來探討 Web Bean 管理員如何判斷某個 Web Bean 要如何被注入。"
+
+#~ msgid ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayByCreditCard\n"
+#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+#~ "    public void process(Payment payment) { ... }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+#~ "@BindingType\n"
+#~ "public @interface PayByCreditCard {}]]>"
+
+#~ msgid "Binding annotations with members"
+#~ msgstr "member 和綁定標記"
+
+#~ msgid "Binding annotations may have members:"
+#~ msgstr "綁定標記能夠有 member:"
+
+#~ msgid "In which case, the member value is significant:"
+#~ msgstr "在此情況下,member value 非常重要:"
+
+#~ msgid ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+#~ msgstr ""
+#~ "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+#~ "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
+
+#~ msgid "Combinations of binding annnotations"
+#~ msgstr "綁定標記的組合"
+
+#~ msgid "Binding annotations and producer methods"
+#~ msgstr "綁定標記和 producer method"
+
+#~ msgid "Even producer methods may specify binding annotations:"
+#~ msgstr "就連 producer method 也能指定綁定標記:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces \n"
+#~ "@Asynchronous @PayByCheque \n"
+#~ "PaymentProcessor createAsyncPaymentProcessor(@PayByCheque "
+#~ "PaymentProcessor processor) {\n"
+#~ "    return new AsynchronousPaymentProcessor(processor);\n"
+#~ "}]]>"
+
+#~ msgid "The default binding type"
+#~ msgstr "預設綁定類型"
+
+#~ msgid ""
+#~ "Web Beans defines a binding type <literal>@Current</literal> that is the "
+#~ "default binding type for any injection point or Web Bean that does not "
+#~ "explicitly specify a binding type."
+#~ msgstr ""
+#~ "Web Bean 定義了一個綁定類型 <literal>@Current</literal>,這是個任何未明確"
+#~ "指定綁定類型的注入點或 Web Bean 的預設綁定類型。"
+
+#~ msgid ""
+#~ "There are two common circumstances in which it is necessary to explicitly "
+#~ "specify <literal>@Current</literal>:"
+#~ msgstr ""
+#~ "一般來講,在兩個情況下會需要明確地指定 <literal>@Current</literal>:"
+
+#~ msgid ""
+#~ "on a field, in order to declare it as an injected field with the default "
+#~ "binding type, and"
+#~ msgstr ""
+#~ "在一個 field 上,為了要將該 field 宣告為含有預設綁定類型的已注入欄位,以及"
+
+#~ msgid ""
+#~ "on a Web Bean which has another binding type in addition to the default "
+#~ "binding type."
+#~ msgstr "在一個除了預設綁定類型之外還另擁有一個綁定類型的 Web Bean 上。"
+
+#~ msgid "Deployment types"
+#~ msgstr "建置類型"
+
+#~ msgid ""
+#~ "All Web Beans have a <emphasis>deployment type</emphasis>. Each "
+#~ "deployment type identifies a set of Web Beans that should be "
+#~ "conditionally installed in some deployments of the system."
+#~ msgstr ""
+#~ "所有 Web Bean 都有一個 <emphasis>deployment type(建置類型)</emphasis>。"
+#~ "各個 deployment type 都可標識一組應依照條件性地被安裝在系統的某些 "
+#~ "deployment 中的 Web Bean。"
+
+#~ msgid ""
+#~ "For example, we could define a deployment type named <literal>@Mock</"
+#~ "literal>, which would identify Web Beans that should only be installed "
+#~ "when the system executes inside an integration testing environment:"
+#~ msgstr ""
+#~ "比方說,我們可定義一個名為 <literal>@Mock</literal> 的 deployment type,它"
+#~ "會找出只應在系統執行於一個整合測試環境中的時候才會被安裝的 Web Bean:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "  @Target({TYPE, METHOD})\n"
+#~ "  @DeploymentType\n"
+#~ "  public @interface Mock {}]]>"
+
+#~ msgid ""
+#~ "Suppose we had some Web Bean that interacted with an external system to "
+#~ "process payments:"
+#~ msgstr "假設我們有一些和外部系統進行互動以便處理款項的 Web Bean:"
+
+#~ msgid ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class ExternalPaymentProcessor {\n"
+#~ "        \n"
+#~ "    public void process(Payment p) {\n"
+#~ "        ...\n"
+#~ "    }\n"
+#~ "    \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
+#~ "the default deployment type <literal>@Production</literal>."
+#~ msgstr ""
+#~ "因為這個 Web Bean 並未明確地指定一個 deployment type,因此它的 deployment "
+#~ "type 會是預設的 <literal>@Production</literal>。"
+
+#~ msgid ""
+#~ "For integration or unit testing, the external system is slow or "
+#~ "unavailable. So we would create a mock object:"
+#~ msgstr ""
+#~ "假設要進行整合或是單元測試(unit testing),不過外部系統較慢或是無法使用。"
+#~ "因此我們將建立一個 mock 物件:"
+
+#~ msgid ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock \n"
+#~ "public class MockPaymentProcessor implements PaymentProcessor {\n"
+#~ "\n"
+#~ "    @Override\n"
+#~ "    public void process(Payment p) {\n"
+#~ "        p.setSuccessful(true);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "But how does the Web Bean manager determine which implementation to use "
+#~ "in a particular deployment?"
+#~ msgstr "不過 Web Bean 管理員要如何判斷在特定建置中該使用哪個實做?"
+
+#~ msgid "Enabling deployment types"
+#~ msgstr "啟用 deployment type"
+
+#~ msgid ""
+#~ "Web Beans defines two built-in deployment types: <literal>@Production</"
+#~ "literal> and <literal>@Standard</literal>. By default, only Web Beans "
+#~ "with the built-in deployment types are enabled when the system is "
+#~ "deployed. We can identify additional deployment types to be enabled in a "
+#~ "particular deployment by listing them in <literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "Web Bean 定義了兩個內建的 deployment type:<literal>@Production</literal> "
+#~ "和 <literal>@Standard</literal>。就預設值,當系統被建置時,只有含有內建 "
+#~ "deployment type 的 Web Bean 會被啟用。我們可藉由將特定 deployment type 列"
+#~ "在 <literal>web-beans.xml</literal> 中來識別在特定 deployment 中可啟用的額"
+#~ "外 deployment type。"
+
+#~ msgid ""
+#~ "Going back to our example, when we deploy our integration tests, we want "
+#~ "all our <literal>@Mock</literal> objects to be installed:"
+#~ msgstr ""
+#~ "回到我們的範例,當我們建置我們的整合測試時,我們希望我們所有的 "
+#~ "<literal>@Mock</literal> 物件都會被安裝:"
+
+#~ msgid ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<WebBeans>\n"
+#~ "    <Deploy>\n"
+#~ "        <Standard/>\n"
+#~ "        <Production/>\n"
+#~ "        <test:Mock/>\n"
+#~ "    </Deploy>\n"
+#~ "</WebBeans>]]>"
+
+#~ msgid ""
+#~ "Now the Web Bean manager will identify and install all Web Beans "
+#~ "annotated <literal>@Production</literal>, <literal>@Standard</literal> or "
+#~ "<literal>@Mock</literal> at deployment time."
+#~ msgstr ""
+#~ "現在,Web Bean 管理員將會在 deployment time 找出並安裝所有標記為 "
+#~ "<literal>@Production</literal>、<literal>@Standard</literal> 或 "
+#~ "<literal>@Mock</literal> 的 Web Bean。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Standard</literal> is used only for certain "
+#~ "special Web Beans defined by the Web Beans specification. We can't use it "
+#~ "for our own Web Beans, and we can't disable it."
+#~ msgstr ""
+#~ "<literal>@Standard</literal> 這個 deployment type 只會被用於 Web Bean 規格"
+#~ "所定義的特定特殊 Web Bean。我們無法將它使用於我們自己的 Web Bean 上,並且"
+#~ "我們無法將它停用。"
+
+#~ msgid ""
+#~ "The deployment type <literal>@Production</literal> is the default "
+#~ "deployment type for Web Beans which don't explicitly declare a deployment "
+#~ "type, and may be disabled."
+#~ msgstr ""
+#~ "<literal>@Production</literal> 這個 deployment type 屬於未明確定義 "
+#~ "deployment type 的 Web Bean 的預設 deployment type,並且可被停用。"
+
+#~ msgid "Deployment type precedence"
+#~ msgstr "Deployment type 優先權"
+
+#~ msgid ""
+#~ "If you've been paying attention, you're probably wondering how the Web "
+#~ "Bean manager decides which implementation &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> &#151; to choose. Consider what "
+#~ "happens when the manager encounters this injection point:"
+#~ msgstr ""
+#~ "若您有在細心注意的話,您應該會疑惑 Web Bean 管理員如何決定哪個實做 &#151; "
+#~ "<literal>ExternalPaymentProcessor</literal> 和 "
+#~ "<literal>MockPaymentProcessor</literal> &#151; 中選擇哪一個。請思考當管理"
+#~ "員遇上了這個注入點時會如何:"
+
+#~ msgid ""
+#~ "There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
+#~ "literal> contract. Of course, we can't use a binding annotation to "
+#~ "disambiguate, since binding annotations are hard-coded into the source at "
+#~ "the injection point, and we want the manager to be able to decide at "
+#~ "deployment time!"
+#~ msgstr ""
+#~ "有兩個 Web Bean 可滿足 <literal>PaymentProcessor</literal> 合同。當然,我"
+#~ "們無法使用綁定標記來消除語意上的含糊意義,因為綁定標記已寫死(hard-coded)"
+#~ "在注入點的來源之中,而且我們希望管理員能夠在 deployment time 時作決定!"
+
+#~ msgid ""
+#~ "The solution to this problem is that each deployment type has a different "
+#~ "<emphasis>precedence</emphasis>. The precedence of the deployment types "
+#~ "is determined by the order in which they appear in <literal>web-beans."
+#~ "xml</literal>. In our example, <literal>@Mock</literal> appears later "
+#~ "than <literal>@Production</literal> so it has a higher precedence."
+#~ msgstr ""
+#~ "這項問題的解決方式就是利用各個 deployment type 的不同<emphasis>優先權</"
+#~ "emphasis>。Deployment type 的優先權是透過它們出現在 <literal>web-beans."
+#~ "xml</literal> 中的順序來決定的。在我們的範例中,<literal>@Mock</literal> "
+#~ "出現的順序在 <literal>@Production</literal> 之後,因此它會有較高的優先權。"
+
+#~ msgid ""
+#~ "Whenever the manager discovers that more than one Web Bean could satisfy "
+#~ "the contract (API type plus binding annotations) specified by an "
+#~ "injection point, it considers the relative precedence of the Web Beans. "
+#~ "If one has a higher precedence than the others, it chooses the higher "
+#~ "precedence Web Bean to inject. So, in our example, the Web Bean manager "
+#~ "will inject <literal>MockPaymentProcessor</literal> when executing in our "
+#~ "integration testing environment (which is exactly what we want)."
+#~ msgstr ""
+#~ "每當管理員發現了多於一個 Web Bean 可滿足由某個注入點所指定的合同(API 類型"
+#~ "加上綁定標記)時,它會考量到 Web Bean 的相關優先權。若有一方的優先權較高,"
+#~ "它便會選擇優先權較高的那個 Web Bean 來注入。因此,在我們的範例中,當 Web "
+#~ "Bean 管理員執行於我們的整合測試環境中的時候(這正是我們想要的),它將會注"
+#~ "入 <literal>MockPaymentProcessor</literal>。"
+
+#~ msgid ""
+#~ "It's interesting to compare this facility to today's popular manager "
+#~ "architectures. Various \"lightweight\" containers also allow conditional "
+#~ "deployment of classes that exist in the classpath, but the classes that "
+#~ "are to be deployed must be explicity, individually, listed in "
+#~ "configuration code or in some XML configuration file. Web Beans does "
+#~ "support Web Bean definition and configuration via XML, but in the common "
+#~ "case where no complex configuration is required, deployment types allow a "
+#~ "whole set of Web Beans to be enabled with a single line of XML. "
+#~ "Meanwhile, a developer browsing the code can easily identify what "
+#~ "deployment scenarios the Web Bean will be used in."
+#~ msgstr ""
+#~ "和現今多人使用的管理員架構相較之下,這個功能相當地有趣。各種"
+#~ "「lightweight」的 container 都允許存在 classpath 中的 class 的條件性建置,"
+#~ "不過要被建置的 class 必須要明確、各別地列在配置程式碼或是一些 XML 配置檔案"
+#~ "中。Web Bean 不支援透過 XML 的 Web Bean 定義與配置,不過在一般情況下當不需"
+#~ "要複雜的配置時,deployment type 允許一整組 Web Bean 能夠透過 XML 中的一個"
+#~ "單獨行列來被啟用。其間,瀏覽程式碼的開發人員能夠輕易地分辨出 Web Bean 將會"
+#~ "使用哪種建置方案(deployment scenario)。"
+
+#~ msgid "Example deployment types"
+#~ msgstr "範例 deployment type"
+
+#~ msgid ""
+#~ "Deployment types are useful for all kinds of things, here's some examples:"
+#~ msgstr "Deployment type 針對於許多情況都相當便於使用,以下為一些範例:"
+
+#~ msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
+#~ msgstr "<literal>@AustralianTaxLaw</literal> 可用於網站特屬的 Web Bean"
+
+#~ msgid ""
+#~ "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-"
+#~ "party frameworks which build on Web Beans"
+#~ msgstr ""
+#~ "<literal>@SeamFramework</literal>、<literal>@Guice</literal> 可用於建立在 "
+#~ "Web Bean 上的第三方 framework"
+
+#~ msgid ""
+#~ "<literal>@Standard</literal> for standard Web Beans defined by the Web "
+#~ "Beans specification"
+#~ msgstr ""
+#~ "<literal>@Standard</literal> 可用於以 Web Bean 規格所定義的標準 Web Bean"
+
+#~ msgid "I'm sure you can think of more applications..."
+#~ msgstr "我們相信您還能夠聯想到更多應用程式..."
+
+#~ msgid ""
+#~ "It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
+#~ "literal> or <literal>AmbiguousDependencyException</literal>."
+#~ msgstr ""
+#~ "要修正一個 <literal>UnsatisfiedDependencyException</literal> 或 "
+#~ "<literal>AmbiguousDependencyException</literal> 通常相當容易。"
+
+#~ msgid ""
+#~ "To fix an <literal>UnsatisfiedDependencyException</literal>, simply "
+#~ "provide a Web Bean which implements the API type and has the binding "
+#~ "types of the injection point &#151; or enable the deployment type of a "
+#~ "Web Bean that already implements the API type and has the binding types."
+#~ msgstr ""
+#~ "若要修正一項 <literal>UnsatisfiedDependencyException</literal>,只要提供一"
+#~ "個實做 API 類型並且擁有注入點的綁定類型的 Web Bean 即可 &#151; 或是啟用一"
+#~ "個已實做 API 類型並且擁有綁定類型的 Web Bean 的 deployment type 即可。"
+
+#~ msgid ""
+#~ "To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
+#~ "binding type to distinguish between the two implementations of the API "
+#~ "type, or change the deployment type of one of the implementations so that "
+#~ "the Web Bean manager can use deployment type precedence to choose between "
+#~ "them. An <literal>AmbiguousDependencyException</literal> can only occur "
+#~ "if two Web Beans share a binding type and have exactly the same "
+#~ "deployment type."
+#~ msgstr ""
+#~ "若要修正一項 <literal>AmbiguousDependencyException</literal>,您可加入一個"
+#~ "綁定類型來在兩個 API 類型的實做之間進行分辨,或是更改其中一個實做的 "
+#~ "deployment type,這樣一來 Web Bean 管理員便可透過使用 deployment type 優先"
+#~ "權來在它們之間作選擇。<literal>AmbiguousDependencyException</literal> 只會"
+#~ "在有兩個 Web Bean 共享一個綁定類型並擁有相同 deployment type 的情況下才會"
+#~ "發生。"
+
+#~ msgid "<![CDATA[@Current Manager manager;]]>"
+#~ msgstr "<![CDATA[@Current Manager manager;]]>"
+
+#~ msgid ""
+#~ "The <literal>Manager</literal> object provides a set of methods for "
+#~ "obtaining a Web Bean instance programatically."
+#~ msgstr ""
+#~ "<literal>Manager</literal> 這個物件提供了一組用來程式性地取得 Web Bean "
+#~ "instance 的 method。"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class);]]>"
+
+#~ msgid ""
+#~ "Binding annotations may be specified by subclassing the helper class "
+#~ "<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
+#~ "instantiate an annotation type in Java."
+#~ msgstr ""
+#~ "綁定標記能被透過建立 helper class 的 subclass <literal>AnnotationLiteral</"
+#~ "literal> 來指定,否則在 Java 中很難例示一個標記類型。"
+
+#~ msgid ""
+#~ "If the binding type has an annotation member, we can't use an anonymous "
+#~ "subclass of <literal>AnnotationLiteral</literal> &#151; instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "若綁定類型有個標記成員,我們便無法使用 <literal>AnnotationLiteral</"
+#~ "literal> 的一個匿名 subclass &#151; 我們需要建立一個有命名的 subclass:"
+
+#~ msgid ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+#~ msgstr ""
+#~ "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+#~ "class, \n"
+#~ "                                               new CreditCardBinding() "
+#~ "{ \n"
+#~ "                                                   public void value() "
+#~ "{ return paymentType; } \n"
+#~ "                                               } );]]>"
+
+#~ msgid ""
+#~ "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</"
+#~ "literal> and <literal>@PersistenceContext</literal>"
+#~ msgstr ""
+#~ "Lifecycle callback、<literal>@Resource</literal>、<literal>@EJB</literal> "
+#~ "和 <literal>@PersistenceContext</literal>"
+
+#~ msgid ""
+#~ "Enterprise Web Beans support all the lifecycle callbacks defined by the "
+#~ "EJB specification: <literal>@PostConstruct</literal>, "
+#~ "<literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and "
+#~ "<literal>@PostActivate</literal>."
+#~ msgstr ""
+#~ "企業級的 Web Bean 支援 EJB 規格所定義的所有 lifecycle callback:"
+#~ "<literal>@PostConstruct</literal>、<literal>@PreDestroy</literal>、"
+#~ "<literal>@PrePassivate</literal> 和 <literal>@PostActivate</literal>。"
+
+#~ msgid ""
+#~ "Both enterprise and simple Web Beans support the use of "
+#~ "<literal>@Resource</literal>, <literal>@EJB</literal> and "
+#~ "<literal>@PersistenceContext</literal> for injection of Java EE "
+#~ "resources, EJBs and JPA persistence contexts, respectively. Simple Web "
+#~ "Beans do not support the use of <literal>@PersistenceContext"
+#~ "(type=EXTENDED)</literal>."
+#~ msgstr ""
+#~ "企業級和基本的 Web Bean 皆支援使用 <literal>@Resource</literal>、"
+#~ "<literal>@EJB</literal> 和 <literal>@PersistenceContext</literal> 來相應地"
+#~ "注入 Java EE 資源、EJB 和 JPA 的 persistence context。基本的 Web Bean 不支"
+#~ "援使用 <literal>@PersistenceContext(type=EXTENDED)</literal>。"
+
+#~ msgid ""
+#~ "The <literal>@PostConstruct</literal> callback always occurs after all "
+#~ "dependencies have been injected."
+#~ msgstr ""
+#~ "<literal>@PostConstruct</literal> callback 一定會在所有相依性都被注入後才"
+#~ "會發生。"

Modified: doc/trunk/reference/zh-TW/interceptors.po
===================================================================
--- doc/trunk/reference/zh-TW/interceptors.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/interceptors.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: interceptors\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 12:13+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,65 +17,62 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: interceptors.xml:4
+#: interceptors.xml:5
 #, no-c-format
 msgid "Interceptors"
 msgstr "攔截器(Interceptor)"
 
 #. Tag: para
-#: interceptors.xml:6
-#, no-c-format
+#: interceptors.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
-"the functionality in two directions:"
-msgstr "Web Bean 會重新使用 EJB 3.0 的基本攔截器架構,並朝兩個方向來延伸該功能:"
+"Interceptor functionality is defined in the Java Interceptors specification. "
+"CDI enhances this functionality with a more sophisticated, semantic, "
+"annotation-based approach to binding interceptors to beans."
+msgstr "針對於將攔截器綁定至 Web Bean,Web Bean 含有較為復雜的標記導向方式。"
 
 #. Tag: para
-#: interceptors.xml:11
-#, no-c-format
-msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr "不只是 session bean,任何 Web Bean 都能有攔截器。"
-
-#. Tag: para
-#: interceptors.xml:14
-#, no-c-format
+#: interceptors.xml:12
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features a more sophisticated annotation-based approach to binding "
-"interceptors to Web Beans."
-msgstr "針對於將攔截器綁定至 Web Bean,Web Bean 含有較為復雜的標記導向方式。"
-
-#. Tag: para
-#: interceptors.xml:22
-#, no-c-format
-msgid "The EJB specification defines two kinds of interception points:"
+"The Interceptors specification defines two kinds of interception points:"
 msgstr "EJB 格式定義了兩種類型的攔截點:"
 
 #. Tag: para
-#: interceptors.xml:26
+#: interceptors.xml:18
 #, no-c-format
 msgid "business method interception, and"
 msgstr "business method 的攔截,以及"
 
 #. Tag: para
-#: interceptors.xml:29
+#: interceptors.xml:21
 #, no-c-format
 msgid "lifecycle callback interception."
 msgstr "lifecycle callback 的攔截。"
 
 #. Tag: para
-#: interceptors.xml:33
-#, no-c-format
+#: interceptors.xml:25
+#, fuzzy, no-c-format
+msgid "In addition, the EJB specification defines timeout method interception."
+msgstr "EJB 格式定義了兩種類型的攔截點:"
+
+#. Tag: para
+#: interceptors.xml:29
+#, fuzzy, no-c-format
 msgid ""
 "A <emphasis>business method interceptor</emphasis> applies to invocations of "
-"methods of the Web Bean by clients of the Web Bean:"
-msgstr "<emphasis>business method 攔截器</emphasis>可適用於來自 Web Bean 客戶端的 Web Bean 的 method 調用:"
+"methods of the bean by clients of the bean:"
+msgstr ""
+"<emphasis>business method 攔截器</emphasis>可適用於來自 Web Bean 客戶端的 "
+"Web Bean 的 method 調用:"
 
 #. Tag: programlisting
-#: interceptors.xml:36
-#, no-c-format
+#: interceptors.xml:34
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -85,20 +82,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:38
+#: interceptors.xml:36
 #, no-c-format
 msgid ""
 "A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
 "of lifecycle callbacks by the container:"
-msgstr "<emphasis>lifecycle callback 攔截器</emphasis>可適用於來自 container 的 lifecycle callback 的調用:"
+msgstr ""
+"<emphasis>lifecycle callback 攔截器</emphasis>可適用於來自 container 的 "
+"lifecycle callback 的調用:"
 
 #. Tag: programlisting
 #: interceptors.xml:41
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
-"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
-"{ ... }\n"
+"   @PostConstruct \n"
+"   public void injectDependencies(InvocationContext ctx) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class DependencyInjectionInterceptor {\n"
@@ -114,26 +113,54 @@
 "methods."
 msgstr "攔截器 class 可攔截 lifecycle callback 以及 business method。"
 
+#. Tag: para
+#: interceptors.xml:47
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
+msgstr ""
+"<emphasis>lifecycle callback 攔截器</emphasis>可適用於來自 container 的 "
+"lifecycle callback 的調用:"
+
+#. Tag: programlisting
+#: interceptors.xml:52
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class TimeoutInterceptor {\n"
+"   @AroundTimeout \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
+
 #. Tag: title
-#: interceptors.xml:49
+#: interceptors.xml:55
 #, no-c-format
 msgid "Interceptor bindings"
 msgstr "攔截器綁定"
 
 #. Tag: para
-#: interceptors.xml:51
-#, no-c-format
+#: interceptors.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"Suppose we want to declare that some of our Web Beans are transactional. The "
-"first thing we need is an <emphasis>interceptor binding annotation</"
-"emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr "假設我們希望宣告我們有些 Web Bean 屬於交易性的 Web Bean。我們首先需要的就是一個 <emphasis>攔截器綁定標記(interceptor binding annotation)</emphasis>來明確指定我們要專注的 Web Bean 是哪個:"
+"Suppose we want to declare that some of our beans are transactional. The "
+"first thing we need is an <emphasis>interceptor binding type</emphasis> to "
+"specify exactly which beans we're interested in:"
+msgstr ""
+"假設我們希望宣告我們有些 Web Bean 屬於交易性的 Web Bean。我們首先需要的就是一"
+"個 <emphasis>攔截器綁定標記(interceptor binding annotation)</emphasis>來明"
+"確指定我們要專注的 Web Bean 是哪個:"
 
 #. Tag: programlisting
-#: interceptors.xml:55
-#, no-c-format
+#: interceptors.xml:62
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
@@ -144,15 +171,17 @@
 "public @interface Transactional {}]]>"
 
 #. Tag: para
-#: interceptors.xml:57
+#: interceptors.xml:64
 #, no-c-format
 msgid ""
 "Now we can easily specify that our <literal>ShoppingCart</literal> is a "
 "transactional object:"
-msgstr "現在我們能輕易地指定我們的 <literal>ShoppingCart</literal> 屬於一個交易性的物件:"
+msgstr ""
+"現在我們能輕易地指定我們的 <literal>ShoppingCart</literal> 屬於一個交易性的物"
+"件:"
 
 #. Tag: programlisting
-#: interceptors.xml:60
+#: interceptors.xml:68
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional\n"
@@ -162,17 +191,17 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:62
+#: interceptors.xml:70
 #, no-c-format
 msgid "Or, if we prefer, we can specify that just one method is transactional:"
 msgstr "或是,若我們想要的話,我們能夠指定只有一個 method 屬於交易性:"
 
 #. Tag: programlisting
-#: interceptors.xml:64
-#, no-c-format
+#: interceptors.xml:74
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -180,28 +209,32 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:69
+#: interceptors.xml:79
 #, no-c-format
 msgid "Implementing interceptors"
 msgstr "實做攔截器"
 
 #. Tag: para
-#: interceptors.xml:71
-#, no-c-format
+#: interceptors.xml:81
+#, fuzzy, no-c-format
 msgid ""
 "That's great, but somewhere along the line we're going to have to actually "
 "implement the interceptor that provides this transaction management aspect. "
-"All we need to do is create a standard EJB interceptor, and annotate it "
+"All we need to do is create a standard interceptor, and annotate it "
 "<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr "我們必須在某個階段實際地實做提供此交易管理功能的攔截器。我們只需要建立一個標準的 EJB 攔截器並將它標記為 <literal>@Interceptor</literal> 和 <literal>@Transactional</literal>。"
+msgstr ""
+"我們必須在某個階段實際地實做提供此交易管理功能的攔截器。我們只需要建立一個標"
+"準的 EJB 攔截器並將它標記為 <literal>@Interceptor</literal> 和 "
+"<literal>@Transactional</literal>。"
 
 #. Tag: programlisting
-#: interceptors.xml:76
-#, no-c-format
+#: interceptors.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -212,23 +245,22 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:78
+#: interceptors.xml:89
 #, no-c-format
-msgid ""
-"All Web Beans interceptors are simple Web Beans, and can take advantage of "
-"dependency injection and contextual lifecycle management."
-msgstr "所有的 Web Bean 攔截器皆為基本的 Web Bean,並且能夠有效利用依賴注入(dependency injection)以及 contextual lifecycle 管理。"
+msgid "Interceptors can take advantage of dependency injection:"
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:81
-#, no-c-format
+#: interceptors.xml:93
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"<![CDATA[@Transactional @Interceptor\n"
 "public class TransactionInterceptor {\n"
 "\n"
-"    @Resource Transaction transaction;\n"
+"    @Resource UserTransaction transaction;\n"
 "\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"    @AroundInvoke \n"
+"    public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "    \n"
 "}]]>"
@@ -244,114 +276,132 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:83
+#: interceptors.xml:95
 #, no-c-format
 msgid "Multiple interceptors may use the same interceptor binding type."
 msgstr "多個攔截器可能會使用相同的攔截器綁定類型。"
 
 #. Tag: title
-#: interceptors.xml:88
+#: interceptors.xml:102
 #, no-c-format
 msgid "Enabling interceptors"
 msgstr "啟用攔截器"
 
 #. Tag: para
-#: interceptors.xml:90
+#: interceptors.xml:104
 #, no-c-format
 msgid ""
-"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
-"<literal>web-beans.xml</literal>."
-msgstr "最後,我們需要在 <literal>web-beans.xml</literal> 中<emphasis>啟用</emphasis>我們的攔截器。"
+"By default, all interceptors are disabled. We need to <emphasis>enable</"
+"emphasis> our interceptor in the <literal>beans.xml</literal> descriptor of "
+"a bean archive. This activation only applies to the beans in that archive."
+msgstr ""
 
 #. Tag: programlisting
-#: interceptors.xml:93
+#: interceptors.xml:110
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:95
+#: interceptors.xml:112
 #, no-c-format
 msgid "Whoah! Why the angle bracket stew?"
 msgstr "為何會有尖括弧?"
 
 #. Tag: para
-#: interceptors.xml:97
-#, no-c-format
-msgid "Well, the XML declaration solves two problems:"
+#: interceptors.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Well, having the XML declaration is actually a <emphasis>good thing</"
+"emphasis>. It solves two problems:"
 msgstr "XML 宣告可解決兩項問題:"
 
 #. Tag: para
-#: interceptors.xml:101
+#: interceptors.xml:120
 #, no-c-format
 msgid ""
 "it enables us to specify a total ordering for all the interceptors in our "
 "system, ensuring deterministic behavior, and"
-msgstr "它可讓我們為我們系統中的所有攔截器指定全排序(total ordering),並確保決定型的特性,並且"
+msgstr ""
+"它可讓我們為我們系統中的所有攔截器指定全排序(total ordering),並確保決定型"
+"的特性,並且"
 
 #. Tag: para
-#: interceptors.xml:105
+#: interceptors.xml:126
 #, no-c-format
 msgid "it lets us enable or disable interceptor classes at deployment time."
 msgstr "它讓我們能夠在進行建置時啟用或停用攔截器 class。"
 
 #. Tag: para
-#: interceptors.xml:109
-#, no-c-format
+#: interceptors.xml:130
+#, fuzzy, no-c-format
 msgid ""
 "For example, we could specify that our security interceptor runs before our "
-"<literal>TransactionInterceptor</literal>."
-msgstr "比方說,我們能夠指定我們的安全性攔截器能比我們的 <literal>TransactionInterceptor</literal> 還要早執行。"
+"transaction interceptor."
+msgstr ""
+"比方說,我們能夠指定我們的安全性攔截器能比我們的 "
+"<literal>TransactionInterceptor</literal> 還要早執行。"
 
 #. Tag: programlisting
-#: interceptors.xml:112
+#: interceptors.xml:134
 #, no-c-format
 msgid ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <interceptors>\n"
+"      <class>org.mycompany.myapp.SecurityInterceptor</class>\n"
+"      <class>org.mycompany.myapp.TransactionInterceptor</class>\n"
+"   </interceptors>\n"
+"</beans>]]>"
 msgstr ""
-"<![CDATA[<Interceptors>\n"
-"    <sx:SecurityInterceptor/>\n"
-"    <tx:TransactionInterceptor/>\n"
-"</Interceptors>]]>"
 
 #. Tag: para
-#: interceptors.xml:114
+#: interceptors.xml:136
 #, no-c-format
-msgid "Or we could turn them both off in our test environment!"
-msgstr "或是我們可在測試環境中將它們兩者同時關閉!"
+msgid ""
+"Or we could turn them both off in our test environment by simply not "
+"mentioning them in <literal>beans.xml</literal>! Ah, so simple."
+msgstr ""
 
 #. Tag: title
-#: interceptors.xml:119
+#: interceptors.xml:142
 #, no-c-format
 msgid "Interceptor bindings with members"
 msgstr "與成員綁定的攔截器"
 
 #. Tag: para
-#: interceptors.xml:121
+#: interceptors.xml:144
 #, no-c-format
 msgid ""
 "Suppose we want to add some extra information to our "
 "<literal>@Transactional</literal> annotation:"
-msgstr "假設我們希望新增一些額外的資訊至我們的 <literal>@Transactional</literal> 標記中:"
+msgstr ""
+"假設我們希望新增一些額外的資訊至我們的 <literal>@Transactional</literal> 標記"
+"中:"
 
 #. Tag: programlisting
-#: interceptors.xml:124
-#, no-c-format
+#: interceptors.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {\n"
-"    boolean requiresNew() default false;\n"
+"   boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -362,23 +412,25 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:126
-#, no-c-format
+#: interceptors.xml:150
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans will use the value of <literal>requiresNew</literal> to choose "
-"between two different interceptors, <literal>TransactionInterceptor</"
-"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
+"CDI will use the value of <literal>requiresNew</literal> to choose between "
+"two different interceptors, <literal>TransactionInterceptor</literal> and "
+"<literal>RequiresNewTransactionInterceptor</literal>."
 msgstr ""
-"Web Bean 將會使用 <literal>requiresNew</literal> 的值來在兩個不同的攔截器(<literal>TransactionInterceptor</"
-"literal> 與 <literal>RequiresNewTransactionInterceptor</literal>)之間作選擇。"
+"Web Bean 將會使用 <literal>requiresNew</literal> 的值來在兩個不同的攔截器"
+"(<literal>TransactionInterceptor</literal> 與 "
+"<literal>RequiresNewTransactionInterceptor</literal>)之間作選擇。"
 
 #. Tag: programlisting
-#: interceptors.xml:130
-#, no-c-format
+#: interceptors.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
 "public class RequiresNewTransactionInterceptor {\n"
-"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"   @AroundInvoke \n"
+"   public Object manageTransaction(InvocationContext ctx) throws Exception "
 "{ ... }\n"
 "}]]>"
 msgstr ""
@@ -389,41 +441,46 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:132
+#: interceptors.xml:157
 #, no-c-format
 msgid ""
 "Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
 "this:"
-msgstr "現在我們可如下使用 <literal>RequiresNewTransactionInterceptor</literal>:"
+msgstr ""
+"現在我們可如下使用 <literal>RequiresNewTransactionInterceptor</literal>:"
 
 #. Tag: programlisting
-#: interceptors.xml:134
-#, no-c-format
+#: interceptors.xml:161
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactional(requiresNew=true)\n"
+"<![CDATA[@Transactional(requiresNew = true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:136
-#, no-c-format
+#: interceptors.xml:163
+#, fuzzy, no-c-format
 msgid ""
-"But what if we only have one interceptor and we want the manager to ignore "
-"the value of <literal>requiresNew</literal> when binding interceptors? We "
-"can use the <literal>@NonBinding</literal> annotation:"
-msgstr "當綁定攔截器時,若我們只有一個攔截器而我們希望管理員忽略 <literal>requiresNew</literal> 的值時該怎麼辦呢?這時我們可使用 <literal>@NonBinding</literal> 標記:"
+"But what if we only have one interceptor and we want the container to ignore "
+"the value of <literal>requiresNew</literal> when binding interceptors? "
+"Perhaps this information is only useful for the interceptor implementation. "
+"We can use the <literal>@NonBinding</literal> annotation:"
+msgstr ""
+"當綁定攔截器時,若我們只有一個攔截器而我們希望管理員忽略 "
+"<literal>requiresNew</literal> 的值時該怎麼辦呢?這時我們可使用 "
+"<literal>@NonBinding</literal> 標記:"
 
 #. Tag: programlisting
-#: interceptors.xml:140
-#, no-c-format
+#: interceptors.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@InterceptorBindingType\n"
+"<![CDATA[@InterceptorBinding\n"
 "@Target({METHOD, TYPE})\n"
 "@Retention(RUNTIME)\n"
 "public @interface Secure {\n"
-"    @NonBinding String[] rolesAllowed() default {};\n"
+"   @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@InterceptorBindingType\n"
@@ -434,23 +491,26 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:145
+#: interceptors.xml:174
 #, no-c-format
 msgid "Multiple interceptor binding annotations"
 msgstr "多重攔截器綁定標記"
 
 #. Tag: para
-#: interceptors.xml:147
-#, no-c-format
+#: interceptors.xml:176
+#, fuzzy, no-c-format
 msgid ""
 "Usually we use combinations of interceptor bindings types to bind multiple "
-"interceptors to a Web Bean. For example, the following declaration would be "
-"used to bind <literal>TransactionInterceptor</literal> and "
-"<literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr "通常,我們會使用不同攔截器綁定類型的組合來將多重攔截器綁定至 Web Bean。比方說,下列宣告會被用來將 <literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</literal> 綁定至相同的 Web Bean:"
+"interceptors to a bean. For example, the following declaration would be used "
+"to bind <literal>TransactionInterceptor</literal> and "
+"<literal>SecurityInterceptor</literal> to the same bean:"
+msgstr ""
+"通常,我們會使用不同攔截器綁定類型的組合來將多重攔截器綁定至 Web Bean。比方"
+"說,下列宣告會被用來將 <literal>TransactionInterceptor</literal> 和 "
+"<literal>SecurityInterceptor</literal> 綁定至相同的 Web Bean:"
 
 #. Tag: programlisting
-#: interceptors.xml:152
+#: interceptors.xml:182
 #, no-c-format
 msgid ""
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
@@ -460,7 +520,7 @@
 "public class ShoppingCart { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:154
+#: interceptors.xml:184
 #, no-c-format
 msgid ""
 "However, in very complex cases, an interceptor itself may specify some "
@@ -468,7 +528,7 @@
 msgstr "不過,在非常複雜的情況下,攔截器本身會指定一些攔截器綁定類型的組合:"
 
 #. Tag: programlisting
-#: interceptors.xml:157
+#: interceptors.xml:189
 #, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure @Interceptor\n"
@@ -478,19 +538,21 @@
 "public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:159
+#: interceptors.xml:191
 #, no-c-format
 msgid ""
 "Then this interceptor could be bound to the <literal>checkout()</literal> "
 "method using any one of the following combinations:"
-msgstr "然後這個攔截器便可透過使用下列任何一個組合來綁定至 <literal>checkout()</literal> 這個 method:"
+msgstr ""
+"然後這個攔截器便可透過使用下列任何一個組合來綁定至 <literal>checkout()</"
+"literal> 這個 method:"
 
 #. Tag: programlisting
-#: interceptors.xml:162
-#, no-c-format
+#: interceptors.xml:196
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class ShoppingCart {\n"
-"    @Transactional @Secure public void checkout() { ... }\n"
+"   @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class ShoppingCart {\n"
@@ -498,12 +560,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:164
-#, no-c-format
+#: interceptors.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Secure\n"
 "public class ShoppingCart {\n"
-"    @Transactional public void checkout() { ... }\n"
+"   @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Secure\n"
@@ -512,12 +574,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:166
-#, no-c-format
+#: interceptors.xml:200
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Transactionl\n"
+"<![CDATA[@Transactional\n"
 "public class ShoppingCart {\n"
-"    @Secure public void checkout() { ... }\n"
+"   @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactionl\n"
@@ -526,12 +588,12 @@
 "}]]>"
 
 #. Tag: programlisting
-#: interceptors.xml:168
-#, no-c-format
+#: interceptors.xml:202
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Transactional @Secure\n"
@@ -540,43 +602,50 @@
 "}]]>"
 
 #. Tag: title
-#: interceptors.xml:173
+#: interceptors.xml:207
 #, no-c-format
 msgid "Interceptor binding type inheritance"
 msgstr "攔截器綁定類型的 inheritance"
 
 #. Tag: para
-#: interceptors.xml:175
+#: interceptors.xml:209
 #, no-c-format
 msgid ""
 "One limitation of the Java language support for annotations is the lack of "
 "annotation inheritance. Really, annotations should have reuse built in, to "
 "allow this kind of thing to work:"
-msgstr "Java 語言對於標記上的支援有個限制,那就是缺少了標記的 inheritance。實際上,標記應該要內建 reuse,以便允許這類型的功能有效:"
+msgstr ""
+"Java 語言對於標記上的支援有個限制,那就是缺少了標記的 inheritance。實際上,標"
+"記應該要內建 reuse,以便允許這類型的功能有效:"
 
 #. Tag: programlisting
-#: interceptors.xml:179
+#: interceptors.xml:214
 #, no-c-format
-msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgid ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr ""
+"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:181
-#, no-c-format
+#: interceptors.xml:216
+#, fuzzy, no-c-format
 msgid ""
-"Well, fortunately, Web Beans works around this missing feature of Java. We "
-"may annotate one interceptor binding type with other interceptor binding "
-"types. The interceptor bindings are transitive &#151; any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "幸運的是,Web Bean 有方法來解決 Java 所缺少的這項功能上的問題。我們可利用其它攔截器綁定類型來標記某個攔截器綁定類型。攔截器綁定為可轉變的 &#151; 任何含有第一個攔截器綁定的 Web Bean 都會繼承宣告為 meta-annotation 的攔截器綁定。"
+"Well, fortunately, CDI works around this missing feature of Java. We may "
+"annotate one interceptor binding type with other interceptor binding types "
+"(termed a <emphasis>meta-annotation</emphasis>). The interceptor bindings "
+"are transitive &#8212; any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"幸運的是,Web Bean 有方法來解決 Java 所缺少的這項功能上的問題。我們可利用其它"
+"攔截器綁定類型來標記某個攔截器綁定類型。攔截器綁定為可轉變的 &#151; 任何含有"
+"第一個攔截器綁定的 Web Bean 都會繼承宣告為 meta-annotation 的攔截器綁定。"
 
 #. Tag: programlisting
-#: interceptors.xml:186
-#, no-c-format
+#: interceptors.xml:223
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Transactional @Secure\n"
-"@InterceptorBindingType\n"
+"@InterceptorBinding\n"
 "@Target(TYPE)\n"
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
@@ -588,38 +657,44 @@
 "public @interface Action { ... }]]>"
 
 #. Tag: para
-#: interceptors.xml:188
-#, no-c-format
+#: interceptors.xml:225
+#, fuzzy, no-c-format
 msgid ""
-"Any Web Bean annotated <literal>@Action</literal> will be bound to both "
+"Now, any bean annotated <literal>@Action</literal> will be bound to both "
 "<literal>TransactionInterceptor</literal> and <literal>SecurityInterceptor</"
 "literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
 "exists.)"
-msgstr "任何標記為 <literal>@Action</literal> 的 Web Bean 都會被綁定至 <literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</literal>。(甚至是 <literal>TransactionalSecureInterceptor</literal>,若它存在的話。)"
+msgstr ""
+"任何標記為 <literal>@Action</literal> 的 Web Bean 都會被綁定至 "
+"<literal>TransactionInterceptor</literal> 和 <literal>SecurityInterceptor</"
+"literal>。(甚至是 <literal>TransactionalSecureInterceptor</literal>,若它存"
+"在的話。)"
 
 #. Tag: title
-#: interceptors.xml:195
+#: interceptors.xml:234
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
 msgstr "使用 <literal>@Interceptors</literal>"
 
 #. Tag: para
-#: interceptors.xml:197
-#, no-c-format
+#: interceptors.xml:236
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>@Interceptors</literal> annotation defined by the EJB "
-"specification is supported for both enterprise and simple Web Beans, for "
-"example:"
-msgstr "企業級與基本的 Web Bean 皆支援 EJB 規格所定義的 <literal>@Interceptors</literal> 標記,例如:"
+"The <literal>@Interceptors</literal> annotation defined by the interceptor "
+"specification (and used by the managed bean and EJB specifications) is still "
+"supported in CDI."
+msgstr ""
+"企業級與基本的 Web Bean 皆支援 EJB 規格所定義的 <literal>@Interceptors</"
+"literal> 標記,例如:"
 
 #. Tag: programlisting
-#: interceptors.xml:200
-#, no-c-format
+#: interceptors.xml:239
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
 "class})\n"
 "public class ShoppingCart {\n"
-"    public void checkout() { ... }\n"
+"   public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
@@ -629,34 +704,80 @@
 "}]]>"
 
 #. Tag: para
-#: interceptors.xml:202
+#: interceptors.xml:241
 #, no-c-format
 msgid "However, this approach suffers the following drawbacks:"
 msgstr "不過,這個方式有下列缺點:"
 
 #. Tag: para
-#: interceptors.xml:206
+#: interceptors.xml:245
 #, no-c-format
 msgid "the interceptor implementation is hardcoded in business code,"
 msgstr "攔截器的實做會被 hardcode 在 business code 之中、"
 
 #. Tag: para
-#: interceptors.xml:209
+#: interceptors.xml:250
 #, no-c-format
 msgid "interceptors may not be easily disabled at deployment time, and"
 msgstr "攔截器無法在進行建置時輕易地被停用,以及"
 
 #. Tag: para
-#: interceptors.xml:212
-#, no-c-format
+#: interceptors.xml:255
+#, fuzzy, no-c-format
 msgid ""
-"the interceptor ordering is non-global &#151; it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "攔截器的順序會是非全域性的 &#151; 會由攔截器被列於 class 層級的順序來取決。"
+"the interceptor ordering is non-global &#8212; it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"攔截器的順序會是非全域性的 &#151; 會由攔截器被列於 class 層級的順序來取決。"
 
 #. Tag: para
-#: interceptors.xml:217
-#, no-c-format
-msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+#: interceptors.xml:262
+#, fuzzy, no-c-format
+msgid "Therefore, we recommend the use of CDI-style interceptor bindings."
 msgstr "因此,我們建議使用 Web Bean 形式的攔截器綁定。"
 
+#~ msgid ""
+#~ "Web Beans re-uses the basic interceptor architecture of EJB 3.0, "
+#~ "extending the functionality in two directions:"
+#~ msgstr ""
+#~ "Web Bean 會重新使用 EJB 3.0 的基本攔截器架構,並朝兩個方向來延伸該功能:"
+
+#~ msgid "Any Web Bean may have interceptors, not just session beans."
+#~ msgstr "不只是 session bean,任何 Web Bean 都能有攔截器。"
+
+#~ msgid ""
+#~ "All Web Beans interceptors are simple Web Beans, and can take advantage "
+#~ "of dependency injection and contextual lifecycle management."
+#~ msgstr ""
+#~ "所有的 Web Bean 攔截器皆為基本的 Web Bean,並且能夠有效利用依賴注入"
+#~ "(dependency injection)以及 contextual lifecycle 管理。"
+
+#~ msgid ""
+#~ "Finally, we need to <emphasis>enable</emphasis> our interceptor in "
+#~ "<literal>web-beans.xml</literal>."
+#~ msgstr ""
+#~ "最後,我們需要在 <literal>web-beans.xml</literal> 中<emphasis>啟用</"
+#~ "emphasis>我們的攔截器。"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<Interceptors>\n"
+#~ "    <sx:SecurityInterceptor/>\n"
+#~ "    <tx:TransactionInterceptor/>\n"
+#~ "</Interceptors>]]>"
+
+#~ msgid "Or we could turn them both off in our test environment!"
+#~ msgstr "或是我們可在測試環境中將它們兩者同時關閉!"

Modified: doc/trunk/reference/zh-TW/intro.po
===================================================================
--- doc/trunk/reference/zh-TW/intro.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/intro.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: intro\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-21 12:44+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -19,56 +19,123 @@
 #. Tag: title
 #: intro.xml:4
 #, no-c-format
-msgid "Getting started with Web Beans"
-msgstr "開始使用 Web Bean"
+msgid "Introduction"
+msgstr ""
 
 #. Tag: para
 #: intro.xml:6
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"So you're already keen to get started writing your first Web Bean? Or "
-"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
-"specification will make you jump through! The good news is that you've "
-"probably already written and used hundreds, perhaps thousands of Web Beans. "
-"You might not even remember the first Web Bean you wrote."
-msgstr "您是否已準備好開始編寫您的第一個 Web Bean 了呢?或是您針對於 Web Bean 本身的規格還是存有著一些疑問呢?不過好消息就是您從以前到現在可能早就已經編寫並使用了上百甚至是上千個 Web Bean 了。您可能根本已經不記得您所編寫的第一個 Web Bean 為何了。"
+"So you're keen to get started writing your first bean? Or perhaps you're "
+"skeptical, wondering what kinds of hoops the CDI specification will make you "
+"jump through! The good news is that you've probably already written and used "
+"hundreds, perhaps thousands of beans. CDI just makes it easier to actually "
+"use them to build an application!"
+msgstr ""
+"您是否已準備好開始編寫您的第一個 Web Bean 了呢?或是您針對於 Web Bean 本身的"
+"規格還是存有著一些疑問呢?不過好消息就是您從以前到現在可能早就已經編寫並使用"
+"了上百甚至是上千個 Web Bean 了。您可能根本已經不記得您所編寫的第一個 Web "
+"Bean 為何了。"
 
 #. Tag: title
 #: intro.xml:13
-#, no-c-format
-msgid "Your first Web Bean"
-msgstr "您的第一個 Web Bean"
+#, fuzzy, no-c-format
+msgid "What is a bean?"
+msgstr "Web Bean 是什麼?"
 
 #. Tag: para
 #: intro.xml:15
 #, no-c-format
 msgid ""
-"With certain, very special exceptions, every Java class with a constructor "
-"that accepts no parameters is a Web Bean. That includes every JavaBean. "
-"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
-"JavaBeans and EJBs you've been writing every day have not been able to take "
-"advantage of the new services defined by the Web Beans specification, but "
-"you'll be able to use every one of them as Web Beans &#151; injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them &#151; without "
-"touching your existing code."
-msgstr "我們能夠很明確地告訴您,在絕大部分的情況下,所有含有不接受參數的 constructor 的 java class 都是個 Web Bean。這包含了所有的 JavaBean。另外,所有 EJB 3-style 的 session bean 也都屬於 Web Bean。當然,您先前所編寫的 JavaBean 和 EJB 皆無法有效利用 Web Bean 規格所定義的新服務,不過您卻可將它們全部作為 Web Bean 來使用 &#151; 將它們注入其它 Web Bean 中,透過 Web Bean XML 配置功能來配置它們,甚至是加入攔截器(interceptor)與裝飾器(decorator) &#151; 無須變動到您現有的程式碼。"
+"A bean is exactly what you think it is. Only now, it has a true identity in "
+"the container environment."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:25
+#: intro.xml:19
 #, no-c-format
 msgid ""
-"Suppose that we have two existing Java classes, that we've been using for "
+"Prior to Java EE 6, there was no clear definition of the term \"bean\" in "
+"the Java EE platform. Of course, we've been calling Java classes used in web "
+"and enterprise applications \"beans\" for years. There were even a couple of "
+"different kinds of things called \"beans\" in EE specifications, including "
+"EJB beans and JSF managed beans. Meanwhile, other third-party frameworks "
+"such as Spring and Seam introduced their own ideas of what it meant to be a "
+"\"bean\". What we've been missing is a common definition."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:27
+#, no-c-format
+msgid ""
+"Java EE 6 finally lays down that common definition in the Managed Beans "
+"specification. Managed Beans are defined as container-managed objects with "
+"minimal programming restrictions, otherwise known by the acronym POJO (Plain "
+"Old Java Object). They support a small set of basic services, such as "
+"resource injection, lifecycle callbacks and interceptors. Companion "
+"specifications, such as EJB and CDI, build on this basic model. But, "
+"<emphasis>at last</emphasis>, there's a uniform concept of a bean and a "
+"lightweight component model that's aligned across the Java EE platform."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:36
+#, no-c-format
+msgid ""
+"With very few exceptions, almost every concrete Java class that has a "
+"constructor with no parameters (or a constructor designated with the "
+"annotation <literal>@Inject</literal>) is a bean. This includes every "
+"JavaBean and every EJB session bean. If you've already got some JavaBeans or "
+"session beans lying around, they're already beans&#8212;you won't need any "
+"additional special metadata. There's just little one thing you need to do "
+"before you can start injecting them into stuff: you need to put them in an "
+"archive (a jar, or a Java EE module such as a war or EJB jar) that contains "
+"a special marker file: <literal>META-INF/beans.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:45
+#, no-c-format
+msgid ""
+"The JavaBeans and EJBs you've been writing every day, up until now, have not "
+"been able to take advantage of the new services defined by the CDI "
+"specification. But you'll be able to use every one of them with CDI&#8212;"
+"allowing the container to create and destroy instances of your beans and "
+"associate them with a designated context, injecting them into other beans, "
+"using them in EL expressions, specializing them with qualifier annotations, "
+"even adding interceptors and decorators to them&#8212;without modifying your "
+"existing code. At most, you'll need to add some annotations."
+msgstr ""
+
+#. Tag: para
+#: intro.xml:54
+#, no-c-format
+msgid "Now let's see how to create your first bean that actually uses CDI."
+msgstr ""
+
+#. Tag: title
+#: intro.xml:61
+#, no-c-format
+msgid "Getting our feet wet"
+msgstr ""
+
+#. Tag: para
+#: intro.xml:63
+#, fuzzy, no-c-format
+msgid ""
+"Suppose that we have two existing Java classes that we've been using for "
 "years in various applications. The first class parses a string into a list "
 "of sentences:"
-msgstr "假設我們目前有兩個使用於各種應用程式中多年的 Java class。第一個 class 會將一個字串剖析入一列句子中:"
+msgstr ""
+"假設我們目前有兩個使用於各種應用程式中多年的 Java class。第一個 class 會將一"
+"個字串剖析入一列句子中:"
 
 #. Tag: programlisting
-#: intro.xml:29
-#, no-c-format
+#: intro.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class SentenceParser {\n"
-"    public List<String> parse(String text) { ... }\n"
+"   public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class SentenceParser {\n"
@@ -76,21 +143,23 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:31
+#: intro.xml:70
 #, no-c-format
 msgid ""
 "The second existing class is a stateless session bean front-end for an "
 "external system that is able to translate sentences from one language to "
 "another:"
-msgstr "第二個 class 則是個外部系統的無狀態 session bean 前端,並且它可將句子由一種語言翻譯成另一種語言:"
+msgstr ""
+"第二個 class 則是個外部系統的無狀態 session bean 前端,並且它可將句子由一種語"
+"言翻譯成另一種語言:"
 
 #. Tag: programlisting
-#: intro.xml:35
-#, no-c-format
+#: intro.xml:75
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Stateless\n"
 "public class SentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) { ... }\n"
+"   public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Stateless\n"
@@ -99,18 +168,18 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:37
-#, no-c-format
-msgid "Where <literal>Translator</literal> is the local interface:"
+#: intro.xml:77
+#, fuzzy, no-c-format
+msgid "Where <literal>Translator</literal> is the EJB local interface:"
 msgstr "<literal>Translator</literal> 為本地介面:"
 
 #. Tag: programlisting
-#: intro.xml:39
-#, no-c-format
+#: intro.xml:79
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Local\n"
 "public interface Translator {\n"
-"    public String translate(String sentence);\n"
+"   public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Local\n"
@@ -119,37 +188,37 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:41
-#, no-c-format
+#: intro.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Unfortunately, we don't have a preexisting class that translates whole text "
-"documents. So let's write a Web Bean that does this job:"
-msgstr "不巧的是,我們沒有一個可翻譯整個文字文件的現有 class。所以讓我們來編寫一個能夠完成這項工作的 Web Bean 吧:"
+"Unfortunately, we don't have a class that translates whole text documents. "
+"So let's write a bean for this job:"
+msgstr ""
+"不巧的是,我們沒有一個可翻譯整個文字文件的現有 class。所以讓我們來編寫一個能"
+"夠完成這項工作的 Web Bean 吧:"
 
 #. Tag: programlisting
-#: intro.xml:44
-#, no-c-format
+#: intro.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class TextTranslator {\n"
+"   private SentenceParser sentenceParser;\n"
+"   private Translator sentenceTranslator;\n"
 "    \n"
-"    private SentenceParser sentenceParser;\n"
-"    private Translator sentenceTranslator;\n"
-"    \n"
-"    @Initializer\n"
-"    TextTranslator(SentenceParser sentenceParser, Translator "
+"   @Inject\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
 "sentenceTranslator) {\n"
-"        this.sentenceParser = sentenceParser;\n"
-"        this.sentenceTranslator = sentenceTranslator;\n"
-"    }\n"
+"      this.sentenceParser = sentenceParser;\n"
+"      this.sentenceTranslator = sentenceTranslator;\n"
+"   }\n"
 "    \n"
-"    public String translate(String text) {\n"
-"        StringBuilder sb = new StringBuilder();\n"
-"        for (String sentence: sentenceParser.parse(text)) {\n"
-"            sb.append(sentenceTranslator.translate(sentence));\n"
-"        }\n"
-"        return sb.toString();\n"
-"    }\n"
-"    \n"
+"   public String translate(String text) {\n"
+"      StringBuilder sb = new StringBuilder();\n"
+"      for (String sentence: sentenceParser.parse(text)) {\n"
+"          sb.append(sentenceTranslator.translate(sentence));\n"
+"      }\n"
+"      return sb.toString();\n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class TextTranslator {\n"
@@ -175,988 +244,952 @@
 "}]]>"
 
 #. Tag: para
-#: intro.xml:46
-#, no-c-format
+#: intro.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
-"it into a Web Bean, Servlet or EJB:"
-msgstr "我們能夠藉由將注入一個 <literal>TextTranslator</literal> 的 instance 注入 Web Bean、Servlet 或是 EJB 中來取得這個 instance:"
+"But wait! <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a bean? If you remember, a class that does not "
+"have a constructor with no parameters can still be a bean if it has a "
+"constructor annotated <literal>@Inject</literal>."
+msgstr ""
+"不過請稍等:<literal>TextTranslator</literal> 並沒有一個無參數的 "
+"constructor!這樣它還是個 Web Bean 嗎?一個沒有無參數 constructor 的 class 若"
+"有個被標記了 <literal>@Initializer</literal> 的 constructor 的話,它還是能夠"
+"是個 Web Bean。"
 
-#. Tag: programlisting
-#: intro.xml:49
+#. Tag: para
+#: intro.xml:93
+#, fuzzy, no-c-format
+msgid ""
+"As you've guessed, the <literal>@Inject</literal> annotation has something "
+"to do with dependency injection! <literal>@Inject</literal> may be applied "
+"to a constructor or method of a bean, and tells the container to call that "
+"constructor or method when instantiating the bean. The container will inject "
+"other beans into the parameters of the constructor or method."
+msgstr ""
+"就如您所猜測地,<literal>@Initializer</literal> 這個標記和依賴注入有關係!"
+"<literal>@Initializer</literal> 可套用至一個 Web Bean 的 constructor 或是 "
+"method 來指示 Web Bean 管理員在例示 Web Bean 時去調用該 constructor 或 "
+"method。Web Bean 管理員會將其它 Web Bean 注入至該 constructor 或 method 的參"
+"數中。"
+
+#. Tag: para
+#: intro.xml:100
 #, no-c-format
 msgid ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a constructor, method or field of a bean, or a field or method of a "
+"Java EE component class such as a servlet. The container chooses the object "
+"to be injected based on the type of the injection point, not the name of the "
+"field, method or parameter."
 msgstr ""
-"<![CDATA[@Initializer\n"
-"public setTextTranslator(TextTranslator textTranslator) {\n"
-"    this.textTranslator = textTranslator;\n"
-"}]]>"
 
 #. Tag: para
-#: intro.xml:51
+#: intro.xml:107
 #, no-c-format
 msgid ""
-"Alternatively, we may obtain an instance by directly calling a method of the "
-"Web Bean manager:"
-msgstr "另外,我們也可藉由直接調用 Web Bean 管理員的一個 method 來取得一個 instance:"
+"Let's create a UI controller bean that uses field injection to obtain an "
+"instance of the <literal>TextTranslator</literal>, translating the text "
+"entered by a user:"
+msgstr ""
 
 #. Tag: programlisting
-#: intro.xml:54
+#: intro.xml:116
 #, no-c-format
 msgid ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
+"<![CDATA[@Named @RequestScoped\n"
+"public class TranslateController {\n"
+"   @Inject TextTranslator textTranslator;\n"
+"\n"
+"   private String inputText;\n"
+"   private String translation;\n"
+"\n"
+"   // JSF action method, perhaps\n"
+"   public void translate() {\n"
+"      translation = textTranslator.translate(inputText); \n"
+"   }\n"
+"\n"
+"   public String getInputText() {\n"
+"      return inputText;\n"
+"   }\n"
+"\n"
+"   public void setInputText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"\n"
+"   public String getTranslation() {\n"
+"      return translation;\n"
+"   }\n"
+"}]]>"
 msgstr ""
-"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
-"class);]]>"
 
 #. Tag: para
-#: intro.xml:56
-#, no-c-format
-msgid ""
-"But wait: <literal>TextTranslator</literal> does not have a constructor with "
-"no parameters! Is it still a Web Bean? Well, a class that does not have a "
-"constructor with no parameters can still be a Web Bean if it has a "
-"constructor annotated <literal>@Initializer</literal>."
-msgstr "不過請稍等:<literal>TextTranslator</literal> 並沒有一個無參數的 constructor!這樣它還是個 Web Bean 嗎?一個沒有無參數 constructor 的 class 若有個被標記了 <literal>@Initializer</literal> 的 constructor 的話,它還是能夠是個 Web Bean。"
+#: intro.xml:119
+#, fuzzy, no-c-format
+msgid "Field injection of <literal>TextTranslator</literal> instance"
+msgstr "<literal>Translator</literal> 為本地介面:"
 
 #. Tag: para
-#: intro.xml:61
+#: intro.xml:127
 #, no-c-format
 msgid ""
-"As you've guessed, the <literal>@Initializer</literal> annotation has "
-"something to do with dependency injection! <literal>@Initializer</literal> "
-"may be applied to a constructor or method of a Web Bean, and tells the Web "
-"Bean manager to call that constructor or method when instantiating the Web "
-"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
-"the constructor or method."
-msgstr "就如您所猜測地,<literal>@Initializer</literal> 這個標記和依賴注入有關係!<literal>@Initializer</literal> 可套用至一個 Web Bean 的 constructor 或是 method 來指示 Web Bean 管理員在例示 Web Bean 時去調用該 constructor 或 method。Web Bean 管理員會將其它 Web Bean 注入至該 constructor 或 method 的參數中。"
+"Notice the controller bean is request-scoped and named. Since this "
+"combination is so common in web applications, there's a built-in annotation "
+"for it in CDI that we could have used as a shorthand. When the (stereotype) "
+"annotation <literal>@Model</literal> is declared on a class, it creates a "
+"request-scoped and named bean."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:68
-#, no-c-format
+#: intro.xml:135
+#, fuzzy, no-c-format
 msgid ""
-"At system initialization time, the Web Bean manager must validate that "
-"exactly one Web Bean exists which satisfies each injection point. In our "
-"example, if no implementation of <literal>Translator</literal> "
-"available &#151; if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed &#151; the Web Bean manager would throw an "
-"<literal>UnsatisfiedDependencyException</literal>. If more than one "
-"implementation of <literal>Translator</literal> was available, the Web Bean "
-"manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "當系統初始化時,Web Bean 管理員必須驗證是否有正好一個滿足所有注入點的 Web Bean 存在。在我們的範例中,若沒有可用的 <literal>Translator</literal> 實做 &#151; 若 <literal>SentenceTranslator</literal> EJB 沒有被建置 &#151; Web Bean 管理員便會回傳一個 <literal>UnsatisfiedDependencyException</literal>。若有超過一個可使用的 <literal>Translator</literal> 實做,那麼 Web Bean 管理員便會回傳一個 <literal>AmbiguousDependencyException</literal>。"
+"Alternatively, we may obtain an instance of <literal>TextTranslator</"
+"literal> programmatically from an injected instance of <literal>Instance</"
+"literal>, parameterized with the bean type:"
+msgstr ""
+"我們能夠藉由將注入一個 <literal>TextTranslator</literal> 的 instance 注入 "
+"Web Bean、Servlet 或是 EJB 中來取得這個 instance:"
 
-#. Tag: title
-#: intro.xml:80
-#, no-c-format
-msgid "What is a Web Bean?"
-msgstr "Web Bean 是什麼?"
+#. Tag: programlisting
+#: intro.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Inject Instance<TextTranslator> textTranslatorInstance;\n"
+"...\n"
+"public void translate() {\n"
+"   textTranslatorInstance.get().translate(inputText);\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
-#: intro.xml:82
+#: intro.xml:142
 #, no-c-format
-msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr "所以 Web Bean <emphasis>到底</emphasis>是什麼?"
-
-#. Tag: para
-#: intro.xml:84
-#, no-c-format
 msgid ""
-"A Web Bean is an application class that contains business logic. A Web Bean "
-"may be called directly from Java code, or it may be invoked via Unified EL. "
-"A Web Bean may access transactional resources. Dependencies between Web "
-"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
-"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
-"lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "Web Bean 是個包含了商業邏輯的應用程式 class。Web Bean 可由 Java 程式碼被直接地調用,或是它亦可透過 Unified EL 來引動。Web Bean 可存取交易性的資源。Web Bean 之間的相依性是透過 Web Bean 管理員來自動管理的。大部分的 Web Bean 都屬於 <emphasis>stateful(有狀態)</emphasis> 和 <emphasis>contextual(語意式)</emphasis> 的。Web Bean 的生命週期(lifecycle)總是透過 Web Bean 管理員來管理的。"
+"Notice that it isn't necessary to create a getter or setter method to inject "
+"one bean into another. CDI can access an injected field directly (even if "
+"it's private!), which sometimes helps eliminate some wasteful code. The name "
+"of the field is arbitrary. It's the field's type that determines what is "
+"injected."
+msgstr ""
 
 #. Tag: para
-#: intro.xml:91
-#, no-c-format
+#: intro.xml:148
+#, fuzzy, no-c-format
 msgid ""
-"Let's back up a second. What does it really mean to be \"contextual\"? Since "
-"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
-"instance I have. Unlike a stateless component model (for example, stateless "
-"session beans) or a singleton component model (such as servlets, or "
-"singleton beans), different clients of a Web Bean see the Web Bean in "
-"different states. The client-visible state depends upon which instance of "
-"the Web Bean the client has a reference to."
-msgstr "讓我們向後看,「contextual(語意式)」到底代表什麼意思?因為 Web Bean 能夠是有狀態的,而最重要的是我們有<emphasis>哪個</emphasis> bean instance。和無狀態的元件模型(例如無狀態的 session bean)或單元件模型(例如 servlet 或是單獨的 bean)不同的是,對於不同的 Web Bean 客戶端而言,它們會看見不同狀態的 Web Bean。客戶端可看見的狀態基於客戶端參照的是 Web Bean 的哪個 instance。"
+"At system initialization time, the container must validate that exactly one "
+"bean exists which satisfies each injection point. In our example, if no "
+"implementation of <literal>Translator</literal> is available&#8212;if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed&#8212;the "
+"container would inform us of an <emphasis>unsatisfied dependency</emphasis>. "
+"If more than one implementation of <literal>Translator</literal> were "
+"available, the container would inform us of the <emphasis>ambiguous "
+"dependency</emphasis>."
+msgstr ""
+"當系統初始化時,Web Bean 管理員必須驗證是否有正好一個滿足所有注入點的 Web "
+"Bean 存在。在我們的範例中,若沒有可用的 <literal>Translator</literal> 實做 "
+"&#151; 若 <literal>SentenceTranslator</literal> EJB 沒有被建置 &#151; Web "
+"Bean 管理員便會回傳一個 <literal>UnsatisfiedDependencyException</literal>。若"
+"有超過一個可使用的 <literal>Translator</literal> 實做,那麼 Web Bean 管理員便"
+"會回傳一個 <literal>AmbiguousDependencyException</literal>。"
 
 #. Tag: para
-#: intro.xml:98
+#: intro.xml:156
 #, no-c-format
 msgid ""
-"However, like a stateless or singleton model, but <emphasis>unlike</"
-"emphasis> stateful session beans, the client does not control the lifecycle "
-"of the instance by explicitly creating and destroying it. Instead, the "
-"<emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "不過,就和無狀態或是單獨的模型一樣,並與有狀態的 session bean <emphasis>不同</emphasis>,客戶端無法藉由明確建立和刪除 instance 來控制 instance 的生命週期。反之,Web Bean 的 <emphasis>scope</emphasis> 可決定:"
+"Before we get too deep in the details, let's pause and examine a bean's "
+"anatomy. What aspects of the bean are significant, and what gives it its "
+"identity? Instead of just giving examples of beans, we're going to define "
+"what <emphasis>makes</emphasis> something a bean."
+msgstr ""
 
-#. Tag: para
-#: intro.xml:105
-#, no-c-format
-msgid "the lifecycle of each instance of the Web Bean and"
-msgstr "Web Bean 的各個 instance 的生命週期以及"
+#~ msgid "Getting started with Web Beans"
+#~ msgstr "開始使用 Web Bean"
 
-#. Tag: para
-#: intro.xml:108
-#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
-msgstr "哪些客戶端共享 Web Bean 的特定 instance 的參照。"
+#~ msgid "Your first Web Bean"
+#~ msgstr "您的第一個 Web Bean"
 
-#. Tag: para
-#: intro.xml:113
-#, no-c-format
-msgid ""
-"For a given thread in a Web Beans application, there may be an "
-"<emphasis>active context</emphasis> associated with the scope of the Web "
-"Bean. This context may be unique to the thread (for example, if the Web Bean "
-"is request scoped), or it may be shared with certain other threads (for "
-"example, if the Web Bean is session scoped) or even all other threads (if it "
-"is application scoped)."
-msgstr "Web Bean 應用程式中的某個執行緒可能會有個和該 Web Bean 的 scope 關聯的 <emphasis>active context</emphasis>。這個 context 對於執行緒來說可能會是獨一無二的(例如,若 Web Bean 為 request scoped 的話),或是它亦有可能共享於其它特定執行緒之間(例如,若 Web Bean 為 session scoped 的話)或甚至是共享於所有其它執行緒之間(若它是 application scoped 的話)。"
+#~ msgid ""
+#~ "With certain, very special exceptions, every Java class with a "
+#~ "constructor that accepts no parameters is a Web Bean. That includes every "
+#~ "JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. "
+#~ "Sure, the JavaBeans and EJBs you've been writing every day have not been "
+#~ "able to take advantage of the new services defined by the Web Beans "
+#~ "specification, but you'll be able to use every one of them as Web Beans "
+#~ "&#151; injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them &#151; without touching your existing code."
+#~ msgstr ""
+#~ "我們能夠很明確地告訴您,在絕大部分的情況下,所有含有不接受參數的 "
+#~ "constructor 的 java class 都是個 Web Bean。這包含了所有的 JavaBean。另外,"
+#~ "所有 EJB 3-style 的 session bean 也都屬於 Web Bean。當然,您先前所編寫的 "
+#~ "JavaBean 和 EJB 皆無法有效利用 Web Bean 規格所定義的新服務,不過您卻可將它"
+#~ "們全部作為 Web Bean 來使用 &#151; 將它們注入其它 Web Bean 中,透過 Web "
+#~ "Bean XML 配置功能來配置它們,甚至是加入攔截器(interceptor)與裝飾器"
+#~ "(decorator) &#151; 無須變動到您現有的程式碼。"
 
-#. Tag: para
-#: intro.xml:119
-#, no-c-format
-msgid ""
-"Clients (for example, other Web Beans) executing in the same context will "
-"see the same instance of the Web Bean. But clients in a different context "
-"will see a different instance."
-msgstr "相同 context 的客戶端(例如其它 Web Bean)將會看見相同的 Web Bean instance。不過不同 context 的客戶端則會看見不同的 instance。"
+#~ msgid ""
+#~ "Alternatively, we may obtain an instance by directly calling a method of "
+#~ "the Web Bean manager:"
+#~ msgstr ""
+#~ "另外,我們也可藉由直接調用 Web Bean 管理員的一個 method 來取得一個 "
+#~ "instance:"
 
-#. Tag: para
-#: intro.xml:123
-#, no-c-format
-msgid ""
-"One great advantage of the contextual model is that it allows stateful Web "
-"Beans to be treated like services! The client need not concern itself with "
-"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
-"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
-"passing messages, and the Web Bean implementations define the lifecycle of "
-"their own state. The Web Beans are loosely coupled because:"
-msgstr "Contextual model 的其中一個主要優點就是它允許有狀態的 Web Bean 能被視為是一項服務!客戶端不需要擔心如何管理它所使用的 Web Bean 的生命週期,<emphasis>它甚至不需要知道這個生命週期為何。</emphasis>Web Bean 會透過傳送訊息來進行互動,並且 Web Bean 的實做也能定義它們自己的狀態的生命週期。Web Bean 為鬆散耦合(loosely coupled)的,因為:"
+#~ msgid ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+#~ "class);]]>"
 
-#. Tag: para
-#: intro.xml:132
-#, no-c-format
-msgid "they interact via well-defined public APIs"
-msgstr "它們透過了定義明確的公用 API 來進行互動"
+#~ msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
+#~ msgstr "所以 Web Bean <emphasis>到底</emphasis>是什麼?"
 
-#. Tag: para
-#: intro.xml:135
-#, no-c-format
-msgid "their lifecycles are completely decoupled"
-msgstr "它們的生命週期已被完全地 decouple 了"
+#~ msgid ""
+#~ "A Web Bean is an application class that contains business logic. A Web "
+#~ "Bean may be called directly from Java code, or it may be invoked via "
+#~ "Unified EL. A Web Bean may access transactional resources. Dependencies "
+#~ "between Web Beans are managed automatically by the Web Bean manager. Most "
+#~ "Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</"
+#~ "emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean "
+#~ "manager."
+#~ msgstr ""
+#~ "Web Bean 是個包含了商業邏輯的應用程式 class。Web Bean 可由 Java 程式碼被直"
+#~ "接地調用,或是它亦可透過 Unified EL 來引動。Web Bean 可存取交易性的資源。"
+#~ "Web Bean 之間的相依性是透過 Web Bean 管理員來自動管理的。大部分的 Web "
+#~ "Bean 都屬於 <emphasis>stateful(有狀態)</emphasis> 和 "
+#~ "<emphasis>contextual(語意式)</emphasis> 的。Web Bean 的生命週期"
+#~ "(lifecycle)總是透過 Web Bean 管理員來管理的。"
 
-#. Tag: para
-#: intro.xml:139
-#, no-c-format
-msgid ""
-"We can replace one Web Bean with a different Web Bean that implements the "
-"same API and has a different lifecycle (a different scope) without affecting "
-"the other Web Bean implementation. In fact, Web Beans defines a "
-"sophisticated facility for overriding Web Bean implementations at deployment "
-"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "我們能夠在不影響其它 Web Bean 實做的情況下將一個 Web Bean 取代為另一個實做相同 API 並有不同生命週期(不同 scope)的 Web Bean。事實上,Web Bean 可在建置時定義一項用來置換 Web Bean 實做的複雜功能,就如我們將在 <xref linkend=\"deploymenttypes\"/> 中所見。"
+#~ msgid ""
+#~ "Let's back up a second. What does it really mean to be \"contextual\"? "
+#~ "Since Web Beans may be stateful, it matters <emphasis>which</emphasis> "
+#~ "bean instance I have. Unlike a stateless component model (for example, "
+#~ "stateless session beans) or a singleton component model (such as "
+#~ "servlets, or singleton beans), different clients of a Web Bean see the "
+#~ "Web Bean in different states. The client-visible state depends upon which "
+#~ "instance of the Web Bean the client has a reference to."
+#~ msgstr ""
+#~ "讓我們向後看,「contextual(語意式)」到底代表什麼意思?因為 Web Bean 能夠"
+#~ "是有狀態的,而最重要的是我們有<emphasis>哪個</emphasis> bean instance。和"
+#~ "無狀態的元件模型(例如無狀態的 session bean)或單元件模型(例如 servlet 或"
+#~ "是單獨的 bean)不同的是,對於不同的 Web Bean 客戶端而言,它們會看見不同狀"
+#~ "態的 Web Bean。客戶端可看見的狀態基於客戶端參照的是 Web Bean 的哪個 "
+#~ "instance。"
 
-#. Tag: para
-#: intro.xml:145
-#, no-c-format
-msgid ""
-"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
-"Servlets or Message-Driven Beans &#151; which are by nature not injectable, "
-"contextual objects &#151; may also obtain references to Web Beans by injection."
-msgstr "請注意,並非所有 Web Bean 的客戶端都是 Web Bean。像是 Servlet 或訊息導向的 Bean 之類的其它物件 &#151; 無法被注入,並屬於 contextual object &#151; 也能透過注入來取得 Web Bean 的參照。"
+#~ msgid ""
+#~ "However, like a stateless or singleton model, but <emphasis>unlike</"
+#~ "emphasis> stateful session beans, the client does not control the "
+#~ "lifecycle of the instance by explicitly creating and destroying it. "
+#~ "Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
+#~ msgstr ""
+#~ "不過,就和無狀態或是單獨的模型一樣,並與有狀態的 session bean <emphasis>不"
+#~ "同</emphasis>,客戶端無法藉由明確建立和刪除 instance 來控制 instance 的生"
+#~ "命週期。反之,Web Bean 的 <emphasis>scope</emphasis> 可決定:"
 
-#. Tag: para
-#: intro.xml:149
-#, no-c-format
-msgid "Enough hand-waving. More formally, according to the spec:"
-msgstr "根據規格:"
+#~ msgid "the lifecycle of each instance of the Web Bean and"
+#~ msgstr "Web Bean 的各個 instance 的生命週期以及"
 
-#. Tag: para
-#: intro.xml:153
-#, no-c-format
-msgid "A Web Bean comprises:"
-msgstr "Web Bean 包含著:"
+#~ msgid ""
+#~ "which clients share a reference to a particular instance of the Web Bean."
+#~ msgstr "哪些客戶端共享 Web Bean 的特定 instance 的參照。"
 
-#. Tag: para
-#: intro.xml:156
-#, no-c-format
-msgid "A (nonempty) set of API types"
-msgstr "一組(非空的)API 類型(API type)"
+#~ msgid ""
+#~ "For a given thread in a Web Beans application, there may be an "
+#~ "<emphasis>active context</emphasis> associated with the scope of the Web "
+#~ "Bean. This context may be unique to the thread (for example, if the Web "
+#~ "Bean is request scoped), or it may be shared with certain other threads "
+#~ "(for example, if the Web Bean is session scoped) or even all other "
+#~ "threads (if it is application scoped)."
+#~ msgstr ""
+#~ "Web Bean 應用程式中的某個執行緒可能會有個和該 Web Bean 的 scope 關聯的 "
+#~ "<emphasis>active context</emphasis>。這個 context 對於執行緒來說可能會是獨"
+#~ "一無二的(例如,若 Web Bean 為 request scoped 的話),或是它亦有可能共享於"
+#~ "其它特定執行緒之間(例如,若 Web Bean 為 session scoped 的話)或甚至是共享"
+#~ "於所有其它執行緒之間(若它是 application scoped 的話)。"
 
-#. Tag: para
-#: intro.xml:157
-#, no-c-format
-msgid "A (nonempty) set of binding annotation types"
-msgstr "一組(非空的)綁定標記類型(binding annotation type)"
+#~ msgid ""
+#~ "Clients (for example, other Web Beans) executing in the same context will "
+#~ "see the same instance of the Web Bean. But clients in a different context "
+#~ "will see a different instance."
+#~ msgstr ""
+#~ "相同 context 的客戶端(例如其它 Web Bean)將會看見相同的 Web Bean "
+#~ "instance。不過不同 context 的客戶端則會看見不同的 instance。"
 
-#. Tag: para
-#: intro.xml:158
-#, no-c-format
-msgid "A scope"
-msgstr "一個 scope"
+#~ msgid ""
+#~ "One great advantage of the contextual model is that it allows stateful "
+#~ "Web Beans to be treated like services! The client need not concern itself "
+#~ "with managing the lifecycle of the Web Bean it is using, <emphasis>nor "
+#~ "does it even need to know what that lifecyle is.</emphasis> Web Beans "
+#~ "interact by passing messages, and the Web Bean implementations define the "
+#~ "lifecycle of their own state. The Web Beans are loosely coupled because:"
+#~ msgstr ""
+#~ "Contextual model 的其中一個主要優點就是它允許有狀態的 Web Bean 能被視為是"
+#~ "一項服務!客戶端不需要擔心如何管理它所使用的 Web Bean 的生命週期,"
+#~ "<emphasis>它甚至不需要知道這個生命週期為何。</emphasis>Web Bean 會透過傳送"
+#~ "訊息來進行互動,並且 Web Bean 的實做也能定義它們自己的狀態的生命週期。Web "
+#~ "Bean 為鬆散耦合(loosely coupled)的,因為:"
 
-#. Tag: para
-#: intro.xml:159
-#, no-c-format
-msgid "A deployment type"
-msgstr "一個建置類型(deployment type)"
+#~ msgid "they interact via well-defined public APIs"
+#~ msgstr "它們透過了定義明確的公用 API 來進行互動"
 
-#. Tag: para
-#: intro.xml:160
-#, no-c-format
-msgid "Optionally, a Web Bean name"
-msgstr "亦可選擇性地包含著一組 Web Bean 名稱"
+#~ msgid "their lifecycles are completely decoupled"
+#~ msgstr "它們的生命週期已被完全地 decouple 了"
 
-#. Tag: para
-#: intro.xml:161
-#, no-c-format
-msgid "A set of interceptor binding types"
-msgstr "一組攔截器綁定類型(interceptor binding type)"
+#~ msgid ""
+#~ "We can replace one Web Bean with a different Web Bean that implements the "
+#~ "same API and has a different lifecycle (a different scope) without "
+#~ "affecting the other Web Bean implementation. In fact, Web Beans defines a "
+#~ "sophisticated facility for overriding Web Bean implementations at "
+#~ "deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "我們能夠在不影響其它 Web Bean 實做的情況下將一個 Web Bean 取代為另一個實做"
+#~ "相同 API 並有不同生命週期(不同 scope)的 Web Bean。事實上,Web Bean 可在"
+#~ "建置時定義一項用來置換 Web Bean 實做的複雜功能,就如我們將在 <xref "
+#~ "linkend=\"deploymenttypes\"/> 中所見。"
 
-#. Tag: para
-#: intro.xml:162
-#, no-c-format
-msgid "A Web Bean implementation"
-msgstr "一個 Web Bean 實做(Web Bean implementation)"
+#~ msgid ""
+#~ "Note that not all clients of a Web Bean are Web Beans. Other objects such "
+#~ "as Servlets or Message-Driven Beans &#151; which are by nature not "
+#~ "injectable, contextual objects &#151; may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "請注意,並非所有 Web Bean 的客戶端都是 Web Bean。像是 Servlet 或訊息導向"
+#~ "的 Bean 之類的其它物件 &#151; 無法被注入,並屬於 contextual object &#151; "
+#~ "也能透過注入來取得 Web Bean 的參照。"
 
-#. Tag: para
-#: intro.xml:167
-#, no-c-format
-msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr "讓我們來看看這些術語對 Web Bean 開發人員來說代表什麼。"
+#~ msgid "Enough hand-waving. More formally, according to the spec:"
+#~ msgstr "根據規格:"
 
-#. Tag: title
-#: intro.xml:170
-#, no-c-format
-msgid "API types, binding types and dependency injection"
-msgstr "API 類型、綁定類型以及依賴注入"
+#~ msgid "A Web Bean comprises:"
+#~ msgstr "Web Bean 包含著:"
 
-#. Tag: para
-#: intro.xml:172
-#, no-c-format
-msgid ""
-"Web Beans usually acquire references to other Web Beans via dependency "
-"injection. Any injected attribute specifies a \"contract\" that must be "
-"satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Web Bean 通常會透過依賴注入(dependency injection)來取得其它 Web Bean 的參照。任何被注入的屬性都會指定一個「合同(contract)」,該合同必須被 Web Bean 滿足才可被注入。這個合同為:"
+#~ msgid "A (nonempty) set of API types"
+#~ msgstr "一組(非空的)API 類型(API type)"
 
-#. Tag: para
-#: intro.xml:177
-#, no-c-format
-msgid "an API type, together with"
-msgstr "一個 API 類型,以及"
+#~ msgid "A (nonempty) set of binding annotation types"
+#~ msgstr "一組(非空的)綁定標記類型(binding annotation type)"
 
-#. Tag: para
-#: intro.xml:178
-#, no-c-format
-msgid "a set of binding types."
-msgstr "一組綁定類型。"
+#~ msgid "A scope"
+#~ msgstr "一個 scope"
 
-#. Tag: para
-#: intro.xml:181
-#, no-c-format
-msgid ""
-"An API is a user-defined class or interface. (If the Web Bean is an EJB "
-"session bean, the API type is the <literal>@Local</literal> interface or "
-"bean-class local view). A binding type represents some client-visible "
-"semantic that is satisfied by some implementations of the API and not by "
-"others."
-msgstr "API 是個用戶定義的 class 或介面。(若 Web Bean 是個 EJB session bean 的話,那麼 API 類形便是 <literal>@Local</literal> 介面或是 bean-class 的 local view)。綁定類型代表一些客戶端可見的語意,這些語意可藉由一些 API 實做來滿足。"
+#~ msgid "A deployment type"
+#~ msgstr "一個建置類型(deployment type)"
 
-#. Tag: para
-#: intro.xml:186
-#, no-c-format
-msgid ""
-"Binding types are represented by user-defined annotations that are "
-"themselves annotated <literal>@BindingType</literal>. For example, the "
-"following injection point has API type <literal>PaymentProcessor</literal> "
-"and binding type <literal>@CreditCard</literal>:"
-msgstr "綁定類型是透過用戶定義、本身已被標記為 <literal>@BindingType</literal> 的標記來表示的。比方說,以下注入點含有一個 <literal>PaymentProcessor</literal> API 類型以及 <literal>@CreditCard</literal> 綁定類型:"
+#~ msgid "Optionally, a Web Bean name"
+#~ msgstr "亦可選擇性地包含著一組 Web Bean 名稱"
 
-#. Tag: programlisting
-#: intro.xml:191
-#, no-c-format
-msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgid "A set of interceptor binding types"
+#~ msgstr "一組攔截器綁定類型(interceptor binding type)"
 
-#. Tag: para
-#: intro.xml:193
-#, no-c-format
-msgid ""
-"If no binding type is explicitly specified at an injection point, the "
-"default binding type <literal>@Current</literal> is assumed."
-msgstr "若在注入點沒有綁定類型被明確指定的話,那麼預設的綁定類型 <literal>@Current</literal> 就會被假設。"
+#~ msgid "A Web Bean implementation"
+#~ msgstr "一個 Web Bean 實做(Web Bean implementation)"
 
-#. Tag: para
-#: intro.xml:196
-#, no-c-format
-msgid ""
-"For each injection point, the Web Bean manager searches for a Web Bean which "
-"satisfies the contract (implements the API, and has all the binding types), "
-"and injects that Web Bean."
-msgstr "Web Bean 管理員會針對於各個注入點搜尋滿足合同(實做 API 並擁有所有綁定類型)的 Web Bean,然後將該 Web Bean 注入。"
+#~ msgid "Let's see what some of these terms mean, to the Web Bean developer."
+#~ msgstr "讓我們來看看這些術語對 Web Bean 開發人員來說代表什麼。"
 
-#. Tag: para
-#: intro.xml:200
-#, no-c-format
-msgid ""
-"The following Web Bean has the binding type <literal>@CreditCard</literal> "
-"and implements the API type <literal>PaymentProcessor</literal>. It could "
-"therefore be injected to the example injection point:"
-msgstr "下列 Web Bean 的綁定類型為 <literal>@CreditCard</literal> 並且實做了 <literal>PaymentProcessor</literal> 這個 API 類型。因此它可被注入至範例的注入點中:"
+#~ msgid "API types, binding types and dependency injection"
+#~ msgstr "API 類型、綁定類型以及依賴注入"
 
-#. Tag: programlisting
-#: intro.xml:204
-#, no-c-format
-msgid ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
-msgstr ""
-"<![CDATA[@CreditCard\n"
-"public class CreditCardPaymentProcessor \n"
-"    implements PaymentProcessor { ... }]]>"
+#~ msgid ""
+#~ "Web Beans usually acquire references to other Web Beans via dependency "
+#~ "injection. Any injected attribute specifies a \"contract\" that must be "
+#~ "satisfied by the Web Bean to be injected. The contract is:"
+#~ msgstr ""
+#~ "Web Bean 通常會透過依賴注入(dependency injection)來取得其它 Web Bean 的"
+#~ "參照。任何被注入的屬性都會指定一個「合同(contract)」,該合同必須被 Web "
+#~ "Bean 滿足才可被注入。這個合同為:"
 
-#. Tag: para
-#: intro.xml:206
-#, no-c-format
-msgid ""
-"If a Web Bean does not explicitly specify a set of binding types, it has "
-"exactly one binding type: the default binding type <literal>@Current</"
-"literal>."
-msgstr "若 Web Bean 不明確指定一組綁定類型的話,它便會只有一個綁定類型:也就是預設的綁定類型 <literal>@Current</literal>。"
+#~ msgid "an API type, together with"
+#~ msgstr "一個 API 類型,以及"
 
-#. Tag: para
-#: intro.xml:209
-#, no-c-format
-msgid ""
-"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
-"algorithm</emphasis> that helps the container decide what to do if there is "
-"more than one Web Bean that satisfies a particular contract. We'll get into "
-"the details in <xref linkend=\"injection\"/>."
-msgstr "Web Bean 會定義一個複雜不過不難理解的 <emphasis>resolution algorithm(解析運算法)</emphasis>,它可在有超過一個滿足特定合同的 Web Bean 存在的情況下協助 container 決定該怎麼作。我們將在 <xref linkend=\"injection\"/> 中詳細討論。"
+#~ msgid "a set of binding types."
+#~ msgstr "一組綁定類型。"
 
-#. Tag: title
-#: intro.xml:217
-#, no-c-format
-msgid "Deployment types"
-msgstr "建置類型(Deployment type)"
+#~ msgid ""
+#~ "An API is a user-defined class or interface. (If the Web Bean is an EJB "
+#~ "session bean, the API type is the <literal>@Local</literal> interface or "
+#~ "bean-class local view). A binding type represents some client-visible "
+#~ "semantic that is satisfied by some implementations of the API and not by "
+#~ "others."
+#~ msgstr ""
+#~ "API 是個用戶定義的 class 或介面。(若 Web Bean 是個 EJB session bean 的"
+#~ "話,那麼 API 類形便是 <literal>@Local</literal> 介面或是 bean-class 的 "
+#~ "local view)。綁定類型代表一些客戶端可見的語意,這些語意可藉由一些 API 實"
+#~ "做來滿足。"
 
-#. Tag: para
-#: intro.xml:219
-#, no-c-format
-msgid ""
-"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
-"deployment scenario. A deployment type is an annotation that represents a "
-"particular deployment scenario, for example <literal>@Mock</literal>, "
-"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
-"apply the annotation to Web Beans which should be deployed in that scenario. "
-"A deployment type allows a whole set of Web Beans to be conditionally "
-"deployed, with a just single line of configuration."
-msgstr "<emphasis>Deployment type</emphasis> 可讓我們透過建置方案(deployment scenario)來為我們的 Web Bean 歸類。建置類型是個表示特定建置方案的標記,例如 <literal>@Mock</literal>、<literal>@Staging</literal> 或 <literal>@AustralianTaxLaw</literal>。我們會將標記套用至應透過該方案來建置的 Web Bean 中。建置類型能透過單行的配置來允許整組 Web Bean 被條件性地建置。"
+#~ msgid ""
+#~ "Binding types are represented by user-defined annotations that are "
+#~ "themselves annotated <literal>@BindingType</literal>. For example, the "
+#~ "following injection point has API type <literal>PaymentProcessor</"
+#~ "literal> and binding type <literal>@CreditCard</literal>:"
+#~ msgstr ""
+#~ "綁定類型是透過用戶定義、本身已被標記為 <literal>@BindingType</literal> 的"
+#~ "標記來表示的。比方說,以下注入點含有一個 <literal>PaymentProcessor</"
+#~ "literal> API 類型以及 <literal>@CreditCard</literal> 綁定類型:"
 
-#. Tag: para
-#: intro.xml:226
-#, no-c-format
-msgid ""
-"Many Web Beans just use the default deployment type <literal>@Production</"
-"literal>, in which case no deployment type need be explicitly specified. All "
-"three Web Bean in our example have the deployment type <literal>@Production</"
-"literal>."
-msgstr "許多 Web Bean 只使用預設的建置類型 <literal>@Production</literal>,在此情況下無須明確地指定建置類型。我們範例中的所有三個 Web Bean 都擁有 <literal>@Production</literal> 這個建置類型。"
+#~ msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
+#~ msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
-#. Tag: para
-#: intro.xml:230
-#, no-c-format
-msgid ""
-"In a testing environment, we might want to replace the "
-"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "在測試環境中,我們可能會希望將 <literal>SentenceTranslator</literal> 這個 Web Bean 替換為一個「mock 物件」:"
+#~ msgid ""
+#~ "If no binding type is explicitly specified at an injection point, the "
+#~ "default binding type <literal>@Current</literal> is assumed."
+#~ msgstr ""
+#~ "若在注入點沒有綁定類型被明確指定的話,那麼預設的綁定類型 "
+#~ "<literal>@Current</literal> 就會被假設。"
 
-#. Tag: programlisting
-#: intro.xml:233
-#, no-c-format
-msgid ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Mock\n"
-"public class MockSentenceTranslator implements Translator {\n"
-"    public String translate(String sentence) {\n"
-"        return \"Lorem ipsum dolor sit amet\";\n"
-"    }\n"
-"}]]>"
+#~ msgid ""
+#~ "For each injection point, the Web Bean manager searches for a Web Bean "
+#~ "which satisfies the contract (implements the API, and has all the binding "
+#~ "types), and injects that Web Bean."
+#~ msgstr ""
+#~ "Web Bean 管理員會針對於各個注入點搜尋滿足合同(實做 API 並擁有所有綁定類"
+#~ "型)的 Web Bean,然後將該 Web Bean 注入。"
 
-#. Tag: para
-#: intro.xml:236
-#, no-c-format
-msgid ""
-"We would enable the deployment type <literal>@Mock</literal> in our testing "
-"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
-"any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "我們將在測試環境中啟用 <literal>@Mock</literal> 這個 deployment type 來表示 <literal>MockSentenceTranslator</literal> 以及任何其它被標記為 <literal>@Mock</literal> 的 Web Bean 都應該被使用。"
+#~ msgid ""
+#~ "The following Web Bean has the binding type <literal>@CreditCard</"
+#~ "literal> and implements the API type <literal>PaymentProcessor</literal>. "
+#~ "It could therefore be injected to the example injection point:"
+#~ msgstr ""
+#~ "下列 Web Bean 的綁定類型為 <literal>@CreditCard</literal> 並且實做了 "
+#~ "<literal>PaymentProcessor</literal> 這個 API 類型。因此它可被注入至範例的"
+#~ "注入點中:"
 
-#. Tag: para
-#: intro.xml:240
-#, no-c-format
-msgid ""
-"We'll talk more about this unique and powerful feature in <xref linkend="
-"\"deploymenttypes\"/>."
-msgstr "我們將在 <xref linkend=\"deploymenttypes\"/> 中更詳細地討論到這項獨特和強大的功能。"
+#~ msgid ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@CreditCard\n"
+#~ "public class CreditCardPaymentProcessor \n"
+#~ "    implements PaymentProcessor { ... }]]>"
 
-#. Tag: title
-#: intro.xml:246
-#, no-c-format
-msgid "Scope"
-msgstr "Scope"
+#~ msgid ""
+#~ "If a Web Bean does not explicitly specify a set of binding types, it has "
+#~ "exactly one binding type: the default binding type <literal>@Current</"
+#~ "literal>."
+#~ msgstr ""
+#~ "若 Web Bean 不明確指定一組綁定類型的話,它便會只有一個綁定類型:也就是預設"
+#~ "的綁定類型 <literal>@Current</literal>。"
 
-#. Tag: para
-#: intro.xml:248
-#, no-c-format
-msgid ""
-"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
-"instances of the Web Bean. The Web Beans context model is extensible, "
-"accommodating arbitrary scopes. However, certain important scopes are built-"
-"in to the specification, and provided by the Web Bean manager. A scope is "
-"represented by an annotation type."
-msgstr "<emphasis>Scope</emphasis> 定義了 Web Bean instance 的生命週期以及可見度。Web Bean 的 context model 可延伸、並能包容任意的 scope。不過,有些重要的特定 scope 則會被內建在 Web Bean 規格中,並透過 Web Bean 管理員來提供。Scope 是以一個標記類型來表示的。"
+#~ msgid ""
+#~ "Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+#~ "algorithm</emphasis> that helps the container decide what to do if there "
+#~ "is more than one Web Bean that satisfies a particular contract. We'll get "
+#~ "into the details in <xref linkend=\"injection\"/>."
+#~ msgstr ""
+#~ "Web Bean 會定義一個複雜不過不難理解的 <emphasis>resolution algorithm(解析"
+#~ "運算法)</emphasis>,它可在有超過一個滿足特定合同的 Web Bean 存在的情況下"
+#~ "協助 container 決定該怎麼作。我們將在 <xref linkend=\"injection\"/> 中詳細"
+#~ "討論。"
 
-#. Tag: para
-#: intro.xml:254
-#, no-c-format
-msgid ""
-"For example, any web application may have <emphasis>session scoped</"
-"emphasis> Web Beans:"
-msgstr "比方說,任何網站應用程式都能夠有 <emphasis>session scoped</emphasis> 的 Web Bean:"
+#~ msgid "Deployment types"
+#~ msgstr "建置類型(Deployment type)"
 
-#. Tag: programlisting
-#: intro.xml:257
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+#~ "deployment scenario. A deployment type is an annotation that represents a "
+#~ "particular deployment scenario, for example <literal>@Mock</literal>, "
+#~ "<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+#~ "apply the annotation to Web Beans which should be deployed in that "
+#~ "scenario. A deployment type allows a whole set of Web Beans to be "
+#~ "conditionally deployed, with a just single line of configuration."
+#~ msgstr ""
+#~ "<emphasis>Deployment type</emphasis> 可讓我們透過建置方案(deployment "
+#~ "scenario)來為我們的 Web Bean 歸類。建置類型是個表示特定建置方案的標記,例"
+#~ "如 <literal>@Mock</literal>、<literal>@Staging</literal> 或 "
+#~ "<literal>@AustralianTaxLaw</literal>。我們會將標記套用至應透過該方案來建置"
+#~ "的 Web Bean 中。建置類型能透過單行的配置來允許整組 Web Bean 被條件性地建"
+#~ "置。"
 
-#. Tag: para
-#: intro.xml:259
-#, no-c-format
-msgid ""
-"An instance of a session scoped Web Bean is bound to a user session and is "
-"shared by all requests that execute in the context of that session."
-msgstr "一個 session scoped 的 Web Bean 的 instance 會被綁定至一個用戶的 session,並且會被所有執行於該 session 的 context 中的請求共享。"
+#~ msgid ""
+#~ "Many Web Beans just use the default deployment type <literal>@Production</"
+#~ "literal>, in which case no deployment type need be explicitly specified. "
+#~ "All three Web Bean in our example have the deployment type "
+#~ "<literal>@Production</literal>."
+#~ msgstr ""
+#~ "許多 Web Bean 只使用預設的建置類型 <literal>@Production</literal>,在此情"
+#~ "況下無須明確地指定建置類型。我們範例中的所有三個 Web Bean 都擁有 "
+#~ "<literal>@Production</literal> 這個建置類型。"
 
-#. Tag: para
-#: intro.xml:262
-#, no-c-format
-msgid ""
-"By default, Web Beans belong to a special scope called the "
-"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
-"pure dependent objects of the object into which they are injected, and their "
-"lifecycle is bound to the lifecycle of that object."
-msgstr "就預設值,Web Bean 屬於一個稱為 <emphasis>dependent pseudo-scope</emphasis> 的特殊 scope。含有這個 scope 的 Web Bean 純粹就是它們所被注入的物件的相依物件,並且它們的生命週期綁定至該物件的生命週期。"
+#~ msgid ""
+#~ "In a testing environment, we might want to replace the "
+#~ "<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+#~ msgstr ""
+#~ "在測試環境中,我們可能會希望將 <literal>SentenceTranslator</literal> 這個 "
+#~ "Web Bean 替換為一個「mock 物件」:"
 
-#. Tag: para
-#: intro.xml:267
-#, no-c-format
-msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr "我們將在 <xref linkend=\"scopescontexts\"/> 中詳細討論 scope。"
+#~ msgid ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Mock\n"
+#~ "public class MockSentenceTranslator implements Translator {\n"
+#~ "    public String translate(String sentence) {\n"
+#~ "        return \"Lorem ipsum dolor sit amet\";\n"
+#~ "    }\n"
+#~ "}]]>"
 
-#. Tag: title
-#: intro.xml:272
-#, no-c-format
-msgid "Web Bean names and Unified EL"
-msgstr "Web Bean 名稱和 Unified EL"
+#~ msgid ""
+#~ "We would enable the deployment type <literal>@Mock</literal> in our "
+#~ "testing environment, to indicate that <literal>MockSentenceTranslator</"
+#~ "literal> and any other Web Bean annotated <literal>@Mock</literal> should "
+#~ "be used."
+#~ msgstr ""
+#~ "我們將在測試環境中啟用 <literal>@Mock</literal> 這個 deployment type 來表"
+#~ "示 <literal>MockSentenceTranslator</literal> 以及任何其它被標記為 "
+#~ "<literal>@Mock</literal> 的 Web Bean 都應該被使用。"
 
-#. Tag: para
-#: intro.xml:274
-#, no-c-format
-msgid ""
-"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
-"Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "Web Bean 能夠擁有一個<emphasis>名稱</emphasis>,這能允許它被使用於 Unified EL 表示式中。要指定 Web Bean 的名稱相當容易:"
+#~ msgid ""
+#~ "We'll talk more about this unique and powerful feature in <xref linkend="
+#~ "\"deploymenttypes\"/>."
+#~ msgstr ""
+#~ "我們將在 <xref linkend=\"deploymenttypes\"/> 中更詳細地討論到這項獨特和強"
+#~ "大的功能。"
 
-#. Tag: programlisting
-#: intro.xml:278
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named(\"cart\")\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid "Scope"
+#~ msgstr "Scope"
 
-#. Tag: para
-#: intro.xml:280
-#, no-c-format
-msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr "現在我們能輕易地在任何 JSF 或 JSP 網頁中使用 Web Bean:"
+#~ msgid ""
+#~ "The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+#~ "instances of the Web Bean. The Web Beans context model is extensible, "
+#~ "accommodating arbitrary scopes. However, certain important scopes are "
+#~ "built-in to the specification, and provided by the Web Bean manager. A "
+#~ "scope is represented by an annotation type."
+#~ msgstr ""
+#~ "<emphasis>Scope</emphasis> 定義了 Web Bean instance 的生命週期以及可見度。"
+#~ "Web Bean 的 context model 可延伸、並能包容任意的 scope。不過,有些重要的特"
+#~ "定 scope 則會被內建在 Web Bean 規格中,並透過 Web Bean 管理員來提供。"
+#~ "Scope 是以一個標記類型來表示的。"
 
-#. Tag: programlisting
-#: intro.xml:282
-#, no-c-format
-msgid ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
-msgstr ""
-"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
-"    ....\n"
-"</h:dataTable>]]>"
+#~ msgid ""
+#~ "For example, any web application may have <emphasis>session scoped</"
+#~ "emphasis> Web Beans:"
+#~ msgstr ""
+#~ "比方說,任何網站應用程式都能夠有 <emphasis>session scoped</emphasis> 的 "
+#~ "Web Bean:"
 
-#. Tag: para
-#: intro.xml:284
-#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
-msgstr "讓 Web Bean 管理員來預設這個名稱可能會更加容易:"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: programlisting
-#: intro.xml:287
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Named\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "An instance of a session scoped Web Bean is bound to a user session and "
+#~ "is shared by all requests that execute in the context of that session."
+#~ msgstr ""
+#~ "一個 session scoped 的 Web Bean 的 instance 會被綁定至一個用戶的 session,"
+#~ "並且會被所有執行於該 session 的 context 中的請求共享。"
 
-#. Tag: para
-#: intro.xml:289
-#, no-c-format
-msgid ""
-"In this case, the name defaults to <literal>shoppingCart</literal> &#151; the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "在此情況下,名稱將被預設為 <literal>shoppingCart</literal> &#151; 這是個不完整的 class 名稱,並且第一個字元已被改變為小寫。"
+#~ msgid ""
+#~ "By default, Web Beans belong to a special scope called the "
+#~ "<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope "
+#~ "are pure dependent objects of the object into which they are injected, "
+#~ "and their lifecycle is bound to the lifecycle of that object."
+#~ msgstr ""
+#~ "就預設值,Web Bean 屬於一個稱為 <emphasis>dependent pseudo-scope</"
+#~ "emphasis> 的特殊 scope。含有這個 scope 的 Web Bean 純粹就是它們所被注入的"
+#~ "物件的相依物件,並且它們的生命週期綁定至該物件的生命週期。"
 
-#. Tag: title
-#: intro.xml:295
-#, no-c-format
-msgid "Interceptor binding types"
-msgstr "攔截器綁定類型"
+#~ msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
+#~ msgstr "我們將在 <xref linkend=\"scopescontexts\"/> 中詳細討論 scope。"
 
-#. Tag: para
-#: intro.xml:297
-#, no-c-format
-msgid ""
-"Web Beans supports the interceptor functionality defined by EJB 3, not only "
-"for EJB beans, but also for plain Java classes. In addition, Web Beans "
-"provides a new approach to binding interceptors to EJB beans and other Web "
-"Beans."
-msgstr "Web Bean 支援 EJB 3 所定義的攔截器功能,不只是 EJB bean 支援,純 Java 的 class 也支援。另外,Web Bean 也提供了一個新的方法來將攔截器綁定至 EJB bean 和其它的 Web Bean。"
+#~ msgid "Web Bean names and Unified EL"
+#~ msgstr "Web Bean 名稱和 Unified EL"
 
-#. Tag: para
-#: intro.xml:302
-#, no-c-format
-msgid ""
-"It remains possible to directly specify the interceptor class via use of the "
-"<literal>@Interceptors</literal> annotation:"
-msgstr "您也能直接地透過使用 <literal>@Interceptors</literal> 標記來指定攔截器(interceptor)class:"
+#~ msgid ""
+#~ "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used "
+#~ "in Unified EL expressions. It's easy to specify the name of a Web Bean:"
+#~ msgstr ""
+#~ "Web Bean 能夠擁有一個<emphasis>名稱</emphasis>,這能允許它被使用於 "
+#~ "Unified EL 表示式中。要指定 Web Bean 的名稱相當容易:"
 
-#. Tag: programlisting
-#: intro.xml:305
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped \n"
-"@Interceptors(TransactionInterceptor.class)\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named(\"cart\")\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:307
-#, no-c-format
-msgid ""
-"However, it is more elegant, and better practice, to indirect the "
-"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "不過,透過 <emphasis>interceptor binding type(攔截器綁定類型)</emphasis>來將攔截器綁定重定向會是較好的作法:"
+#~ msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
+#~ msgstr "現在我們能輕易地在任何 JSF 或 JSP 網頁中使用 Web Bean:"
 
-#. Tag: programlisting
-#: intro.xml:311
-#, no-c-format
-msgid ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
-msgstr ""
-"<![CDATA[@SessionScoped @Transactional\n"
-"public class ShoppingCart { ... }]]>"
+#~ msgid ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+#~ "    ....\n"
+#~ "</h:dataTable>]]>"
 
-#. Tag: para
-#: intro.xml:313
-#, no-c-format
-msgid ""
-"We'll discuss Web Beans interceptors and decorators in <xref linkend="
-"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "我們將在 <xref linkend=\"interceptors\"/> 和 <xref linkend=\"decorators\"/> 中更詳細地討論 Web Bean 攔截器與裝飾器。"
+#~ msgid ""
+#~ "It's even easier to just let the name be defaulted by the Web Bean "
+#~ "manager:"
+#~ msgstr "讓 Web Bean 管理員來預設這個名稱可能會更加容易:"
 
-#. Tag: title
-#: intro.xml:321
-#, no-c-format
-msgid "What kinds of objects can be Web Beans?"
-msgstr "哪種物件屬於 Web Bean?"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Named\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:323
-#, no-c-format
-msgid ""
-"We've already seen that JavaBeans, EJBs and some other Java classes can be "
-"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "我們已經看過 JavaBean、EJB 和一些其它的 Java class 都能屬於 Web Bean。不過 Web Bean 到底是哪種物件呢?"
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> &#151; "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "在此情況下,名稱將被預設為 <literal>shoppingCart</literal> &#151; 這是個不"
+#~ "完整的 class 名稱,並且第一個字元已被改變為小寫。"
 
-#. Tag: title
-#: intro.xml:327
-#, no-c-format
-msgid "Simple Web Beans"
-msgstr "基本的 Web Bean"
+#~ msgid "Interceptor binding types"
+#~ msgstr "攔截器綁定類型"
 
-#. Tag: para
-#: intro.xml:329
-#, no-c-format
-msgid ""
-"The Web Beans specification says that a concrete Java class is a "
-"<emphasis>simple</emphasis> Web Bean if:"
-msgstr "Web Bean 規格談到了一個具備下列條件的具體 Java class 就是個 <emphasis>simple(基本)</emphasis>Web Bean:"
+#~ msgid ""
+#~ "Web Beans supports the interceptor functionality defined by EJB 3, not "
+#~ "only for EJB beans, but also for plain Java classes. In addition, Web "
+#~ "Beans provides a new approach to binding interceptors to EJB beans and "
+#~ "other Web Beans."
+#~ msgstr ""
+#~ "Web Bean 支援 EJB 3 所定義的攔截器功能,不只是 EJB bean 支援,純 Java 的 "
+#~ "class 也支援。另外,Web Bean 也提供了一個新的方法來將攔截器綁定至 EJB "
+#~ "bean 和其它的 Web Bean。"
 
-#. Tag: para
-#: intro.xml:334
-#, no-c-format
-msgid ""
-"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
-"entity,"
-msgstr "它不像 EJB、Servlet 或 JPA 實體都是個 EE container 所管理的元件、"
+#~ msgid ""
+#~ "It remains possible to directly specify the interceptor class via use of "
+#~ "the <literal>@Interceptors</literal> annotation:"
+#~ msgstr ""
+#~ "您也能直接地透過使用 <literal>@Interceptors</literal> 標記來指定攔截器"
+#~ "(interceptor)class:"
 
-#. Tag: para
-#: intro.xml:338
-#, no-c-format
-msgid "it is not a non-static static inner class,"
-msgstr "它不是個非靜態的靜態內部類別(static inner class)、"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped \n"
+#~ "@Interceptors(TransactionInterceptor.class)\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:341
-#, no-c-format
-msgid "it is not a parameterized type, and"
-msgstr "它不是個被參數化的類型,並且"
+#~ msgid ""
+#~ "However, it is more elegant, and better practice, to indirect the "
+#~ "interceptor binding through an <emphasis>interceptor binding type</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "不過,透過 <emphasis>interceptor binding type(攔截器綁定類型)</emphasis>"
+#~ "來將攔截器綁定重定向會是較好的作法:"
 
-#. Tag: para
-#: intro.xml:344
-#, no-c-format
-msgid ""
-"it has a constructor with no parameters, or a constructor annotated "
-"<literal>@Initializer</literal>."
-msgstr "它有個無參數的 constructor,或一個標記為 <literal>@Initializer</literal> 的 constructor。"
+#~ msgid ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
+#~ msgstr ""
+#~ "<![CDATA[@SessionScoped @Transactional\n"
+#~ "public class ShoppingCart { ... }]]>"
 
-#. Tag: para
-#: intro.xml:349
-#, no-c-format
-msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr "因此,幾乎所有 JavaBean 都屬於基本的 Web Bean。"
+#~ msgid ""
+#~ "We'll discuss Web Beans interceptors and decorators in <xref linkend="
+#~ "\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+#~ msgstr ""
+#~ "我們將在 <xref linkend=\"interceptors\"/> 和 <xref linkend=\"decorators\"/"
+#~ "> 中更詳細地討論 Web Bean 攔截器與裝飾器。"
 
-#. Tag: para
-#: intro.xml:351
-#, no-c-format
-msgid ""
-"Every interface implemented directly or indirectly by a simple Web Bean is "
-"an API type of the simple Web Bean. The class and its superclasses are also "
-"API types."
-msgstr "基本 Web Bean 所直接或間接實做的所有介面都屬於基本 Web Bean 的 API 類型。Class 和它的 superclass 也都屬於 API 類型。"
+#~ msgid "What kinds of objects can be Web Beans?"
+#~ msgstr "哪種物件屬於 Web Bean?"
 
-#. Tag: title
-#: intro.xml:358
-#, no-c-format
-msgid "Enterprise Web Beans"
-msgstr "企業級的 Web Bean"
+#~ msgid ""
+#~ "We've already seen that JavaBeans, EJBs and some other Java classes can "
+#~ "be Web Beans. But exactly what kinds of objects are Web Beans?"
+#~ msgstr ""
+#~ "我們已經看過 JavaBean、EJB 和一些其它的 Java class 都能屬於 Web Bean。不"
+#~ "過 Web Bean 到底是哪種物件呢?"
 
-#. Tag: para
-#: intro.xml:360
-#, no-c-format
-msgid ""
-"The specification says that all EJB 3-style session and singleton beans are "
-"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
-"Beans &#151; since they are not intended to be injected into other "
-"objects &#151; but they can take advantage of most of the functionality of Web "
-"Beans, including dependency injection and interceptors."
-msgstr "Web Bean 的規格顯示了所有 EJB 3 類型的 session 和 singleton 的 bean 都屬於<emphasis>企業級</emphasis>的 Web Bean。訊息導向的 bean 則不屬於 Web Bean &#151; 因為它們不會被注入其它的物件中 &#151; 不過它們能夠有效利用 Web Bean 大部分的功能,這包括依賴注入(dependency injection)以及攔截器(interceptor)。"
+#~ msgid "Simple Web Beans"
+#~ msgstr "基本的 Web Bean"
 
-#. Tag: para
-#: intro.xml:366
-#, no-c-format
-msgid ""
-"Every local interface of an enterprise Web Bean that does not have a "
-"wildcard type parameter or type variable, and every one of its "
-"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
-"has a bean class local view, the bean class, and every one of its "
-"superclasses, is also an API type."
-msgstr "所有沒有 wildcard 類型參數或是類型變數的企業級 Web Bean 的本地介面以及它所有的 superinterface 都屬於企業級 Web Bean 的 API 類型。若 EJB bean 有個 bean class local view 的話,那麼這個 bean class 以及它所有的 superclass 也都會是個 API 類型。"
+#~ msgid ""
+#~ "The Web Beans specification says that a concrete Java class is a "
+#~ "<emphasis>simple</emphasis> Web Bean if:"
+#~ msgstr ""
+#~ "Web Bean 規格談到了一個具備下列條件的具體 Java class 就是個 "
+#~ "<emphasis>simple(基本)</emphasis>Web Bean:"
 
-#. Tag: para
-#: intro.xml:372
-#, no-c-format
-msgid ""
-"Stateful session beans should declare a remove method with no parameters or "
-"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
-"manager calls this method to destroy the stateful session bean instance at "
-"the end of its lifecycle. This method is called the <emphasis>destructor</"
-"emphasis> method of the enterprise Web Bean."
-msgstr "有狀態的 session bean 應宣告一個無參數的 remove method 或是一個標記為 <literal>@Destructor</literal> 的 remove method。Web Bean 管理員會調用這個 method 來在它的生命週期結束時刪除有狀態的 session bean instance。這個 method 亦稱為企業級 Web Bean 的 <emphasis>destructor</emphasis> method。"
+#~ msgid ""
+#~ "it is not an EE container-managed component, like an EJB, a Servlet or a "
+#~ "JPA entity,"
+#~ msgstr "它不像 EJB、Servlet 或 JPA 實體都是個 EE container 所管理的元件、"
 
-#. Tag: programlisting
-#: intro.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Stateful @SessionScoped\n"
-"public class ShoppingCart {\n"
-"\n"
-"    ...\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"\n"
-"}]]>"
+#~ msgid "it is not a non-static static inner class,"
+#~ msgstr "它不是個非靜態的靜態內部類別(static inner class)、"
 
-#. Tag: para
-#: intro.xml:380
-#, no-c-format
-msgid ""
-"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
-"Well, whenever we need the advanced enterprise services offered by EJB, such "
-"as:"
-msgstr "所以我們該何時使用企業級的 Web Bean 何時使用基本 Web Bean 呢?每當我們需要 EJB 所提供的進階企業級服務時,例如:"
+#~ msgid "it is not a parameterized type, and"
+#~ msgstr "它不是個被參數化的類型,並且"
 
-#. Tag: para
-#: intro.xml:387
-#, no-c-format
-msgid "method-level transaction management and security,"
-msgstr "method 層級的交易管理與安全性、"
+#~ msgid ""
+#~ "it has a constructor with no parameters, or a constructor annotated "
+#~ "<literal>@Initializer</literal>."
+#~ msgstr ""
+#~ "它有個無參數的 constructor,或一個標記為 <literal>@Initializer</literal> "
+#~ "的 constructor。"
 
-#. Tag: para
-#: intro.xml:390
-#, no-c-format
-msgid "concurrency management,"
-msgstr "並行管理(concurrency management)、"
+#~ msgid "Thus, almost every JavaBean is a simple Web Bean."
+#~ msgstr "因此,幾乎所有 JavaBean 都屬於基本的 Web Bean。"
 
-#. Tag: para
-#: intro.xml:393
-#, no-c-format
-msgid ""
-"instance-level passivation for stateful session beans and instance-pooling "
-"for stateless session beans,"
-msgstr "有狀態的 session bean 的 instance 層級的 passivation 以及無狀態 session bean 的類別儲備(instance-pooling)、"
+#~ msgid ""
+#~ "Every interface implemented directly or indirectly by a simple Web Bean "
+#~ "is an API type of the simple Web Bean. The class and its superclasses are "
+#~ "also API types."
+#~ msgstr ""
+#~ "基本 Web Bean 所直接或間接實做的所有介面都屬於基本 Web Bean 的 API 類型。"
+#~ "Class 和它的 superclass 也都屬於 API 類型。"
 
-#. Tag: para
-#: intro.xml:397
-#, no-c-format
-msgid "remote and web service invocation, and"
-msgstr "遠端和網站服務調用,以及"
+#~ msgid "Enterprise Web Beans"
+#~ msgstr "企業級的 Web Bean"
 
-#. Tag: para
-#: intro.xml:400
-#, no-c-format
-msgid "timers and asynchronous methods,"
-msgstr "計時器與非同步的 method,"
+#~ msgid ""
+#~ "The specification says that all EJB 3-style session and singleton beans "
+#~ "are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are "
+#~ "not Web Beans &#151; since they are not intended to be injected into "
+#~ "other objects &#151; but they can take advantage of most of the "
+#~ "functionality of Web Beans, including dependency injection and "
+#~ "interceptors."
+#~ msgstr ""
+#~ "Web Bean 的規格顯示了所有 EJB 3 類型的 session 和 singleton 的 bean 都屬於"
+#~ "<emphasis>企業級</emphasis>的 Web Bean。訊息導向的 bean 則不屬於 Web Bean "
+#~ "&#151; 因為它們不會被注入其它的物件中 &#151; 不過它們能夠有效利用 Web "
+#~ "Bean 大部分的功能,這包括依賴注入(dependency injection)以及攔截器"
+#~ "(interceptor)。"
 
-#. Tag: para
-#: intro.xml:404
-#, no-c-format
-msgid ""
-"we should use an enterprise Web Bean. When we don't need any of these "
-"things, a simple Web Bean will serve just fine."
-msgstr "當需要以上服務時我們便應使用企業級的 Web Bean。當我們不需要任何的這些服務時,使用基本的 Web Bean 即可。"
+#~ msgid ""
+#~ "Every local interface of an enterprise Web Bean that does not have a "
+#~ "wildcard type parameter or type variable, and every one of its "
+#~ "superinterfaces, is an API type of the enterprise Web Bean. If the EJB "
+#~ "bean has a bean class local view, the bean class, and every one of its "
+#~ "superclasses, is also an API type."
+#~ msgstr ""
+#~ "所有沒有 wildcard 類型參數或是類型變數的企業級 Web Bean 的本地介面以及它所"
+#~ "有的 superinterface 都屬於企業級 Web Bean 的 API 類型。若 EJB bean 有個 "
+#~ "bean class local view 的話,那麼這個 bean class 以及它所有的 superclass 也"
+#~ "都會是個 API 類型。"
 
-#. Tag: para
-#: intro.xml:407
-#, no-c-format
-msgid ""
-"Many Web Beans (including any session or application scoped Web Bean) are "
-"available for concurrent access. Therefore, the concurrency management "
-"provided by EJB 3.1 is especially useful. Most session and application "
-"scoped Web Beans should be EJBs."
-msgstr "許多 Web Bean(包括任何 session 或 application scoped 的 Web Bean)都能被並行存取(concurrent access)。因此,EJB 3.1 所提供的並行管理(concurrency management)特別地有幫助。大部分的 session 和 application scoped 的 Web Bean 都應屬於 EJB。"
+#~ msgid ""
+#~ "Stateful session beans should declare a remove method with no parameters "
+#~ "or a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+#~ "manager calls this method to destroy the stateful session bean instance "
+#~ "at the end of its lifecycle. This method is called the "
+#~ "<emphasis>destructor</emphasis> method of the enterprise Web Bean."
+#~ msgstr ""
+#~ "有狀態的 session bean 應宣告一個無參數的 remove method 或是一個標記為 "
+#~ "<literal>@Destructor</literal> 的 remove method。Web Bean 管理員會調用這"
+#~ "個 method 來在它的生命週期結束時刪除有狀態的 session bean instance。這個 "
+#~ "method 亦稱為企業級 Web Bean 的 <emphasis>destructor</emphasis> method。"
 
-#. Tag: para
-#: intro.xml:412
-#, no-c-format
-msgid ""
-"Web Beans which hold references to heavy-weight resources, or hold a lot of "
-"internal state benefit from the advanced container-managed lifecycle defined "
-"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
-"<literal>@Singleton</literal> model, with its support for passivation and "
-"instance pooling."
-msgstr "持有重量級資源之參照或持有許多內部狀態的 Web Bean 皆可受益于支援 passivation 和類別儲備的 EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> 模型所定義並由進階 container 所管理的生命週期。"
+#~ msgid ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Stateful @SessionScoped\n"
+#~ "public class ShoppingCart {\n"
+#~ "\n"
+#~ "    ...\n"
+#~ "    \n"
+#~ "    @Remove\n"
+#~ "    public void destroy() {}\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: para
-#: intro.xml:417
-#, no-c-format
-msgid ""
-"Finally, it's usually obvious when method-level transaction management, "
-"method-level security, timers, remote methods or asynchronous methods are "
-"needed."
-msgstr "最後,一般來講,何時需要使用到 method 層級的交易性管理、method 層級的安全性、計時器、遠端 method 或是非同步的 method 其實都是非常顯而易見的。"
+#~ msgid ""
+#~ "So when should we use an enterprise Web Bean instead of a simple Web "
+#~ "Bean? Well, whenever we need the advanced enterprise services offered by "
+#~ "EJB, such as:"
+#~ msgstr ""
+#~ "所以我們該何時使用企業級的 Web Bean 何時使用基本 Web Bean 呢?每當我們需"
+#~ "要 EJB 所提供的進階企業級服務時,例如:"
 
-#. Tag: para
-#: intro.xml:420
-#, no-c-format
-msgid ""
-"It's usually easy to start with simple Web Bean, and then turn it into an "
-"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
-"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "通常從基本的 Web Bean 開始會較容易,然後只要再透過附加一個 <literal>@Stateless</literal>、<literal>@Stateful</literal> 或是 <literal>@Singleton</literal> 標記來將它轉換為一個 EJB 即可。"
+#~ msgid "method-level transaction management and security,"
+#~ msgstr "method 層級的交易管理與安全性、"
 
-#. Tag: title
-#: intro.xml:427
-#, no-c-format
-msgid "Producer methods"
-msgstr "Producer method"
+#~ msgid "concurrency management,"
+#~ msgstr "並行管理(concurrency management)、"
 
-#. Tag: para
-#: intro.xml:429
-#, no-c-format
-msgid ""
-"A <emphasis>producer method</emphasis> is a method that is called by the Web "
-"Bean manager to obtain an instance of the Web Bean when no instance exists "
-"in the current context. A producer method lets the application take full "
-"control of the instantiation process, instead of leaving instantiation to "
-"the Web Bean manager. For example:"
-msgstr "<emphasis>producer method</emphasis> 是個當目前 context 中沒有 instance 時會被 Web Bean 管理員調用來取得 Web Bean instance 的一個 method。Producer method 能讓應用程式完全掌控例示(instantiation)的程序,而不是留給 Web Bean 管理員去進行。例如:"
+#~ msgid ""
+#~ "instance-level passivation for stateful session beans and instance-"
+#~ "pooling for stateless session beans,"
+#~ msgstr ""
+#~ "有狀態的 session bean 的 instance 層級的 passivation 以及無狀態 session "
+#~ "bean 的類別儲備(instance-pooling)、"
 
-#. Tag: programlisting
-#: intro.xml:435
-#, no-c-format
-msgid ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@ApplicationScoped\n"
-"public class Generator {\n"
-"\n"
-"    private Random random = new Random( System.currentTimeMillis() );\n"
-"    \n"
-"    @Produces @Random int next() {\n"
-"        return random.nextInt(100);\n"
-"    }\n"
-"\n"
-"}]]>"
+#~ msgid "remote and web service invocation, and"
+#~ msgstr "遠端和網站服務調用,以及"
 
-#. Tag: para
-#: intro.xml:437
-#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "producer method 的結果會和其它任何 Web Bean 一樣地被注入。"
+#~ msgid "timers and asynchronous methods,"
+#~ msgstr "計時器與非同步的 method,"
 
-#. Tag: programlisting
-#: intro.xml:439
-#, no-c-format
-msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr "<![CDATA[@Random int randomNumber]]>"
+#~ msgid ""
+#~ "we should use an enterprise Web Bean. When we don't need any of these "
+#~ "things, a simple Web Bean will serve just fine."
+#~ msgstr ""
+#~ "當需要以上服務時我們便應使用企業級的 Web Bean。當我們不需要任何的這些服務"
+#~ "時,使用基本的 Web Bean 即可。"
 
-#. Tag: para
-#: intro.xml:441
-#, no-c-format
-msgid ""
-"The method return type and all interfaces it extends/implements directly or "
-"indirectly are API types of the producer method. If the return type is a "
-"class, all superclasses are also API types."
-msgstr "method 的回傳類型以及它所直接或間接延伸/實做的介面皆為 producer method 的 API 類型。若回傳的類型是個 class 的話,那麼所有的 superclass 也都會是 API 類型。"
+#~ msgid ""
+#~ "Many Web Beans (including any session or application scoped Web Bean) are "
+#~ "available for concurrent access. Therefore, the concurrency management "
+#~ "provided by EJB 3.1 is especially useful. Most session and application "
+#~ "scoped Web Beans should be EJBs."
+#~ msgstr ""
+#~ "許多 Web Bean(包括任何 session 或 application scoped 的 Web Bean)都能被"
+#~ "並行存取(concurrent access)。因此,EJB 3.1 所提供的並行管理"
+#~ "(concurrency management)特別地有幫助。大部分的 session 和 application "
+#~ "scoped 的 Web Bean 都應屬於 EJB。"
 
-#. Tag: para
-#: intro.xml:445
-#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction:"
-msgstr "有些 producer method 會回傳需要明確銷毀的物件:"
+#~ msgid ""
+#~ "Web Beans which hold references to heavy-weight resources, or hold a lot "
+#~ "of internal state benefit from the advanced container-managed lifecycle "
+#~ "defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</"
+#~ "literal>/<literal>@Singleton</literal> model, with its support for "
+#~ "passivation and instance pooling."
+#~ msgstr ""
+#~ "持有重量級資源之參照或持有許多內部狀態的 Web Bean 皆可受益于支援 "
+#~ "passivation 和類別儲備的 EJB <literal>@Stateless</literal>/"
+#~ "<literal>@Stateful</literal>/<literal>@Singleton</literal> 模型所定義並由"
+#~ "進階 container 所管理的生命週期。"
 
-#. Tag: programlisting
-#: intro.xml:447
-#, no-c-format
-msgid ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
-"    return createConnection( user.getId(), user.getPassword() );\n"
-"}]]>"
+#~ msgid ""
+#~ "Finally, it's usually obvious when method-level transaction management, "
+#~ "method-level security, timers, remote methods or asynchronous methods are "
+#~ "needed."
+#~ msgstr ""
+#~ "最後,一般來講,何時需要使用到 method 層級的交易性管理、method 層級的安全"
+#~ "性、計時器、遠端 method 或是非同步的 method 其實都是非常顯而易見的。"
 
-#. Tag: para
-#: intro.xml:449
-#, no-c-format
-msgid ""
-"These producer methods may define matching <emphasis>disposal methods</"
-"emphasis>:"
-msgstr "這些 producer method 可定義符合的 <emphasis>disposal methods</emphasis>:"
+#~ msgid ""
+#~ "It's usually easy to start with simple Web Bean, and then turn it into an "
+#~ "EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+#~ "<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+#~ msgstr ""
+#~ "通常從基本的 Web Bean 開始會較容易,然後只要再透過附加一個 "
+#~ "<literal>@Stateless</literal>、<literal>@Stateful</literal> 或是 "
+#~ "<literal>@Singleton</literal> 標記來將它轉換為一個 EJB 即可。"
 
-#. Tag: programlisting
-#: intro.xml:451
-#, no-c-format
-msgid ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
-msgstr ""
-"<![CDATA[void close(@Disposes Connection connection) {\n"
-"    connection.close();\n"
-"}]]>"
+#~ msgid "Producer methods"
+#~ msgstr "Producer method"
 
-#. Tag: para
-#: intro.xml:453
-#, no-c-format
-msgid ""
-"This disposal method is called automatically by the Web Bean manager at the "
-"end of the request."
-msgstr "這個 disposal method 會在請求結束後自動地被 Web Bean 管理員調用。"
+#~ msgid ""
+#~ "A <emphasis>producer method</emphasis> is a method that is called by the "
+#~ "Web Bean manager to obtain an instance of the Web Bean when no instance "
+#~ "exists in the current context. A producer method lets the application "
+#~ "take full control of the instantiation process, instead of leaving "
+#~ "instantiation to the Web Bean manager. For example:"
+#~ msgstr ""
+#~ "<emphasis>producer method</emphasis> 是個當目前 context 中沒有 instance 時"
+#~ "會被 Web Bean 管理員調用來取得 Web Bean instance 的一個 method。Producer "
+#~ "method 能讓應用程式完全掌控例示(instantiation)的程序,而不是留給 Web "
+#~ "Bean 管理員去進行。例如:"
 
-#. Tag: para
-#: intro.xml:456
-#, no-c-format
-msgid ""
-"We'll talk much more about producer methods in <xref linkend="
-"\"producermethods\"/>."
-msgstr "我們將在 <xref linkend=\"producermethods\"/> 中詳細討論 producer method。"
+#~ msgid ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@ApplicationScoped\n"
+#~ "public class Generator {\n"
+#~ "\n"
+#~ "    private Random random = new Random( System.currentTimeMillis() );\n"
+#~ "    \n"
+#~ "    @Produces @Random int next() {\n"
+#~ "        return random.nextInt(100);\n"
+#~ "    }\n"
+#~ "\n"
+#~ "}]]>"
 
-#. Tag: title
-#: intro.xml:461
-#, no-c-format
-msgid "JMS endpoints"
-msgstr "JMS 端點(endpoints)"
+#~ msgid ""
+#~ "The result of a producer method is injected just like any other Web Bean."
+#~ msgstr "producer method 的結果會和其它任何 Web Bean 一樣地被注入。"
 
-#. Tag: para
-#: intro.xml:463
-#, no-c-format
-msgid ""
-"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
-"developer from the tedium of managing the lifecycles of all the various JMS "
-"objects required to send messages to queues and topics. We'll discuss JMS "
-"endpoints in <xref linkend=\"jms\"/>."
-msgstr "最後,JMS 佇列(queue)或主題(topic)都能是個 Web Bean。Web Bean 能讓開發人員省去管理所有傳送訊息至佇列和主題所需的不同 JMS 物件生命週期的麻煩。我們將在 <xref linkend=\"jms\"/> 中詳細討論 JMS 端點。"
+#~ msgid "<![CDATA[@Random int randomNumber]]>"
+#~ msgstr "<![CDATA[@Random int randomNumber]]>"
 
+#~ msgid ""
+#~ "The method return type and all interfaces it extends/implements directly "
+#~ "or indirectly are API types of the producer method. If the return type is "
+#~ "a class, all superclasses are also API types."
+#~ msgstr ""
+#~ "method 的回傳類型以及它所直接或間接延伸/實做的介面皆為 producer method 的 "
+#~ "API 類型。若回傳的類型是個 class 的話,那麼所有的 superclass 也都會是 API "
+#~ "類型。"
+
+#~ msgid ""
+#~ "Some producer methods return objects that require explicit destruction:"
+#~ msgstr "有些 producer method 會回傳需要明確銷毀的物件:"
+
+#~ msgid ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+#~ "    return createConnection( user.getId(), user.getPassword() );\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "These producer methods may define matching <emphasis>disposal methods</"
+#~ "emphasis>:"
+#~ msgstr ""
+#~ "這些 producer method 可定義符合的 <emphasis>disposal methods</emphasis>:"
+
+#~ msgid ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[void close(@Disposes Connection connection) {\n"
+#~ "    connection.close();\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "This disposal method is called automatically by the Web Bean manager at "
+#~ "the end of the request."
+#~ msgstr "這個 disposal method 會在請求結束後自動地被 Web Bean 管理員調用。"
+
+#~ msgid ""
+#~ "We'll talk much more about producer methods in <xref linkend="
+#~ "\"producermethods\"/>."
+#~ msgstr ""
+#~ "我們將在 <xref linkend=\"producermethods\"/> 中詳細討論 producer method。"
+
+#~ msgid "JMS endpoints"
+#~ msgstr "JMS 端點(endpoints)"
+
+#~ msgid ""
+#~ "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+#~ "developer from the tedium of managing the lifecycles of all the various "
+#~ "JMS objects required to send messages to queues and topics. We'll discuss "
+#~ "JMS endpoints in <xref linkend=\"jms\"/>."
+#~ msgstr ""
+#~ "最後,JMS 佇列(queue)或主題(topic)都能是個 Web Bean。Web Bean 能讓開發"
+#~ "人員省去管理所有傳送訊息至佇列和主題所需的不同 JMS 物件生命週期的麻煩。我"
+#~ "們將在 <xref linkend=\"jms\"/> 中詳細討論 JMS 端點。"

Modified: doc/trunk/reference/zh-TW/master.po
===================================================================
--- doc/trunk/reference/zh-TW/master.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/master.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 10:09+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,58 +17,80 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
+#: master.xml:9
+#, no-c-format
+msgid "A note about naming and nomenclature"
+msgstr ""
+
+#. Tag: para
 #: master.xml:10
 #, no-c-format
-msgid "Note"
+msgid ""
+"Shortly before the final draft of JSR-299 was submitted, the specification "
+"changed its name from \"Web Beans\" to \"Java Contexts and Dependency "
+"Injection for the Java EE platform\", abbreviated CDI. For a brief period "
+"after the renaming, the reference implementation adopted the name \"Web Beans"
+"\". However, this ended up causing more confusion than it solved and Red Hat "
+"decided to change the name of the reference implementation to \"Weld\". You "
+"may still find other documentation, blogs, forum posts, etc. that use the "
+"old nomenclature. Please update any references you can. The naming game is "
+"over."
 msgstr ""
 
 #. Tag: para
-#: master.xml:11
+#: master.xml:19
 #, no-c-format
 msgid ""
-"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
+"You'll also find that some of the functionality that once existed in the "
+"specification is now missing, such as defining beans in XML. These features "
+"will be available as portable extensions for CDI in the Weld project, and "
+"perhaps other implementations."
 msgstr ""
 
 #. Tag: para
-#: master.xml:20
+#: master.xml:25
 #, no-c-format
 msgid ""
-"You'll also find that some of the more recent functionality to be specified "
-"is missing (such as producer fields, realization, asynchronous events, XML "
-"mapping of EE resources)."
+"Note that this reference guide was started while changes were still being "
+"made to the specification. We've done our best to update it for accuracy. If "
+"you discover a conflict between what is written in this guide and the "
+"specification, the specification is the authority&#8212;assume it is "
+"correct. If you believe you have found an error in the specification, please "
+"report it to the JSR-299 EG."
 msgstr ""
 
 #. Tag: title
-#: master.xml:30
+#: master.xml:36
 #, no-c-format
-msgid "Using contextual objects"
-msgstr "使用概念上的物件"
+msgid "Beans"
+msgstr ""
 
 #. Tag: title
-#: master.xml:43
+#: master.xml:49
 #, no-c-format
-msgid "Developing loosely-coupled code"
-msgstr "開發鬆散耦合(loosely-coupled)的程式碼"
+msgid "Weld, the CDI Reference Implementation"
+msgstr ""
 
 #. Tag: title
-#: master.xml:53
-#, no-c-format
-msgid "Making the most of strong typing"
+#: master.xml:59
+#, fuzzy, no-c-format
+msgid "Loose coupling with strong typing"
 msgstr "最大程度地使用強類型(strong typing)"
 
 #. Tag: title
-#: master.xml:64
-#, no-c-format
-msgid "Web Beans and the Java EE ecosystem"
+#: master.xml:75
+#, fuzzy, no-c-format
+msgid "CDI and the Java EE ecosystem"
 msgstr "Web Beans 與 Java EE 應用系統"
 
 #. Tag: title
-#: master.xml:76
+#: master.xml:87
 #, no-c-format
-msgid "Web Beans Reference"
+msgid "Weld reference"
 msgstr ""
+
+#~ msgid "Using contextual objects"
+#~ msgstr "使用概念上的物件"
+
+#~ msgid "Developing loosely-coupled code"
+#~ msgstr "開發鬆散耦合(loosely-coupled)的程式碼"

Modified: doc/trunk/reference/zh-TW/next.po
===================================================================
--- doc/trunk/reference/zh-TW/next.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/next.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: next\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-08 10:54+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -26,28 +26,122 @@
 #: next.xml:6
 #, no-c-format
 msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
-msgstr "因為 Web Beans 非常地新,因此還尚未有大量線上資訊以供參閱。"
+"Because CDI is so new, there's not yet a lot of information available "
+"online. That will change over time. Regardless, the CDI specification "
+"remains the authority for information on CDI. The spec less than 100 pages "
+"and is quite readable (don't worry, it's not like your Blu-ray player "
+"manual). Of course, it covers many details we've skipped over here. The spec "
+"is available on the <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
+msgstr ""
 
 #. Tag: para
-#: next.xml:9
+#: next.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink src=\"http://in.relation.to\">in."
+"relation.to</ulink>. This guide was originally based on a series of blog "
+"entries published there while the specification was being developed. It's "
+"probably the best source of information about the future of CDI, Weld and "
+"Seam."
+msgstr ""
+"Web Beans Reference 的實做開發於 <literal>http://seamframework.org/WebBeans</"
+"literal>。RI 開發團隊以及 Web Beans spec lead 的 blog 位於 <literal>http://"
+"in.relation.to</literal>。本文件大體上基於發佈於該網頁上的一系列 blog 項目。"
+
+#. Tag: para
+#: next.xml:22
 #, no-c-format
 msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr "當然,Web Beans 的規格為有關於 Web Beans 的最佳來源資訊。該資訊的數量約為 100 頁,只比此文件的長度多出兩倍,並且一樣地容易閱讀。不過,當然它亦包含了許多我們所跳過的細節。您可藉由 <literal>http://jcp.org/en/jsr/detail?id=299</literal> 來取得該規格資訊。"
+"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink src=\"http://seamframework.org/Weld/Development\">development</"
+"ulink>. If you are reading this guide, you likely have something to offer."
+msgstr ""
 
 #. Tag: para
-#: next.xml:15
+#: next.xml:28
 #, no-c-format
 msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
-msgstr "Web Beans Reference 的實做開發於 <literal>http://seamframework.org/WebBeans</literal>。RI 開發團隊以及 Web Beans spec lead 的 blog 位於 <literal>http://in.relation.to</literal>。本文件大體上基於發佈於該網頁上的一系列 blog 項目。"
+"We are eager to find volunteers to help revise, proofread or translate this "
+"guide. The first step is getting the source of this guide checked out. To "
+"build against the trunk (latest source), follow these steps:"
+msgstr ""
 
+#. Tag: para
+#: next.xml:35
+#, no-c-format
+msgid ""
+"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
+"ulink> using SVN"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:40
+#, no-c-format
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:43
+#, no-c-format
+msgid ""
+"Edit the pom.xml file in the root of the checkout and remove the \"-SNAPSHOT"
+"\" from the version element (so you don't have to build other Weld modules)."
+msgstr ""
+
+#. Tag: para
+#: next.xml:49
+#, no-c-format
+msgid "Build using Maven 2"
+msgstr ""
+
+#. Tag: programlisting
+#: next.xml:52
+#, no-c-format
+msgid "<![CDATA[$> mvn]]>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:54
+#, no-c-format
+msgid ""
+"If you experience an out of memory error, try setting this environment "
+"variable: <literal>MAVEN_OPTS=-Xmx1024m</literal>"
+msgstr ""
+
+#. Tag: para
+#: next.xml:61
+#, no-c-format
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in target/docbook/publish/en-US/html"
+msgstr ""
+
+#. Tag: para
+#: next.xml:66
+#, no-c-format
+msgid "We look forward to your participation!"
+msgstr ""
+
+#~ msgid ""
+#~ "Because Web Beans is so new, there's not yet a lot of information "
+#~ "available online."
+#~ msgstr "因為 Web Beans 非常地新,因此還尚未有大量線上資訊以供參閱。"
+
+#~ msgid ""
+#~ "Of course, the Web Beans specification is the best source of more "
+#~ "information about Web Beans. The spec is about 100 pages long, only twice "
+#~ "the length of this article, and almost as readable. But, of course, it "
+#~ "covers many details that we've skipped over. The spec is available from "
+#~ "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+#~ msgstr ""
+#~ "當然,Web Beans 的規格為有關於 Web Beans 的最佳來源資訊。該資訊的數量約為 "
+#~ "100 頁,只比此文件的長度多出兩倍,並且一樣地容易閱讀。不過,當然它亦包含了"
+#~ "許多我們所跳過的細節。您可藉由 <literal>http://jcp.org/en/jsr/detail?"
+#~ "id=299</literal> 來取得該規格資訊。"

Modified: doc/trunk/reference/zh-TW/part1.po
===================================================================
--- doc/trunk/reference/zh-TW/part1.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/part1.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part1\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-15 12:16+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,144 +17,261 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: para
-#: part1.xml:5
-#, no-c-format
+#: part1.xml:14
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans (JSR-299) specification defines a set of services for the Java "
-"EE environment that makes applications much easier to develop. Web Beans "
-"layers an enhanced lifecycle and interaction model over existing Java "
-"component types including JavaBeans and Enterprise Java Beans. As a "
-"complement to the traditional Java EE programming model, the Web Beans "
-"services provide:"
-msgstr "Web Beans(JSR-299)規格為 Java EE 環境定義了一組簡化應用程式開發的服務。Web Bean 針對於現有的 Java 元件類型(包含 JavaBeans 以及 Enterprise Java Beans)提供了增強的生命週期與互動模型(interaction model)。為了補充傳統的 Java EE 程式撰寫模型(Programming Model),Web Bean 服務提供了:"
+"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"specification (CDI) defines a set of complementary services that help "
+"improve the structure of application code. CDI layers an enhanced lifecycle "
+"and interaction model over existing Java component types, including managed "
+"beans and Enterprise Java Beans. The CDI services provide:"
+msgstr ""
+"Web Beans(JSR-299)規格為 Java EE 環境定義了一組簡化應用程式開發的服務。Web "
+"Bean 針對於現有的 Java 元件類型(包含 JavaBeans 以及 Enterprise Java Beans)"
+"提供了增強的生命週期與互動模型(interaction model)。為了補充傳統的 Java EE "
+"程式撰寫模型(Programming Model),Web Bean 服務提供了:"
 
 #. Tag: para
-#: part1.xml:14
-#, no-c-format
+#: part1.xml:23
+#, fuzzy, no-c-format
 msgid ""
-"an improved lifecycle for stateful components, bound to well-defined "
+"an improved lifecycle for stateful objects, bound to well-defined "
 "<emphasis>contexts</emphasis>,"
-msgstr "狀態元件上的生命週期改善,並綁定至明確定義的 <emphasis>contexts</emphasis>、"
+msgstr ""
+"狀態元件上的生命週期改善,並綁定至明確定義的 <emphasis>contexts</emphasis>、"
 
 #. Tag: para
-#: part1.xml:18
+#: part1.xml:28
 #, no-c-format
 msgid "a typesafe approach to <emphasis>dependency injection</emphasis>,"
-msgstr "一個用來進行 <emphasis>dependency injection</emphasis>(依賴注入)的 typesafe(類型安全列舉)方式、"
+msgstr ""
+"一個用來進行 <emphasis>dependency injection</emphasis>(依賴注入)的 typesafe"
+"(類型安全列舉)方式、"
 
 #. Tag: para
-#: part1.xml:21
+#: part1.xml:33
+#, fuzzy, no-c-format
+msgid ""
+"object interaction via an <emphasis>event notification facility</emphasis>,"
+msgstr ""
+"透過 <emphasis>event notification</emphasis>(事件通知)功能來進行的互動,以"
+"及"
+
+#. Tag: para
+#: part1.xml:38
+#, fuzzy, no-c-format
+msgid ""
+"a better approach to binding <emphasis>interceptors</emphasis> to objects, "
+"along with a new kind of interceptor, called a <emphasis>decorator</"
+"emphasis>, that is more appropriate for use in solving business problems, and"
+msgstr ""
+"一個將 <emphasis>interceptors</emphasis>(攔截器)綁定至元件的較佳方式,以及"
+"一個稱為 <emphasis>decorator</emphasis>(裝飾器)的新型攔截器,它適用於解決商"
+"業上的相關問題。"
+
+#. Tag: para
+#: part1.xml:45
 #, no-c-format
-msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
-msgstr "透過 <emphasis>event notification</emphasis>(事件通知)功能來進行的互動,以及"
+msgid ""
+"an <emphasis>SPI</emphasis> for developing portable extensions to the "
+"container."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:25
+#: part1.xml:51
 #, no-c-format
 msgid ""
-"a better approach to binding <emphasis>interceptors</emphasis> to "
-"components, along with a new kind of interceptor, called a "
-"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
-"business problems."
-msgstr "一個將 <emphasis>interceptors</emphasis>(攔截器)綁定至元件的較佳方式,以及一個稱為 <emphasis>decorator</emphasis>(裝飾器)的新型攔截器,它適用於解決商業上的相關問題。"
+"The CDI services are a core aspect of the Java EE platform and include full "
+"support for Java EE modularity and the Java EE component architecture. But "
+"the specification does not limit the use of CDI to the Java EE environment. "
+"In the Java SE environment, the services might be provided by a standalone "
+"CDI implementation like Weld (see <xref linkend=\"weld-se\"/>), or even by a "
+"container that also implements the subset of EJB defined for embedded usage "
+"by the EJB 3.1 specification. CDI is especially useful in the context of web "
+"application development, but the problems it solves are general development "
+"concerns and it is therefore applicable to a wide variety of application."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:32
+#: part1.xml:61
 #, no-c-format
 msgid ""
-"Dependency injection, together with contextual lifecycle management, saves "
-"the user of an unfamiliar API from having to ask and answer the following "
-"questions:"
-msgstr "依賴注入和 contextual 生命週期管理這兩者組合起來可讓一個不熟悉的 API 的用戶無須過問下列問題:"
+"An object bound to a lifecycle context is called a bean. CDI includes built-"
+"in support for several different kinds of bean, including the following Java "
+"EE component types:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:38
+#: part1.xml:68
 #, no-c-format
-msgid "what is the lifecycle of this object?"
-msgstr "這個物件的生命週期為何?"
+msgid "managed beans, and"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:41
+#: part1.xml:71
 #, no-c-format
-msgid "how many simultaneous clients can it have?"
-msgstr "它一次能同時有幾個客戶端?"
+msgid "EJB session beans."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:44
+#: part1.xml:75
 #, no-c-format
-msgid "is it multithreaded?"
-msgstr "它是否為多執行緒(multithread)?"
+msgid ""
+"Both managed beans and EJB session beans may inject other beans. But some "
+"other objects, which are not themselves beans in the sense used here, may "
+"also have beans injected via CDI. In the Java EE platform, the following "
+"kinds of component may have beans injected:"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:47
+#: part1.xml:83
 #, no-c-format
-msgid "where can I get one from?"
-msgstr "我能從哪裡取得呢?"
+msgid "message-driven beans,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:50
+#: part1.xml:86
 #, no-c-format
-msgid "do I need to explicitly destroy it?"
-msgstr "我是否需要明確地將它毀掉呢?"
+msgid "interceptors,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:53
+#: part1.xml:89
 #, no-c-format
-msgid "where should I keep my reference to it when I'm not using it directly?"
-msgstr "當我沒有在直接使用它時,我應該將它的參照保留在哪裡呢?"
+msgid "servlets, servlet filters and servlet event listeners,"
+msgstr ""
 
 #. Tag: para
-#: part1.xml:57
+#: part1.xml:92
 #, no-c-format
+msgid "JAX-WS service endpoints and handlers, and"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:95
+#, no-c-format
+msgid "JSP tag handlers and tag library event listeners."
+msgstr ""
+
+#. Tag: para
+#: part1.xml:99
+#, fuzzy, no-c-format
 msgid ""
-"how can I add an indirection layer, so that the implementation of this "
-"object can vary at deployment time?"
-msgstr "我該如何新增一個 indirection layer 來使這個物件在建置時的實做可呈多樣化?"
+"CDI relieves the user of an unfamiliar API of the need to answer the "
+"following questions:"
+msgstr ""
+"依賴注入和 contextual 生命週期管理這兩者組合起來可讓一個不熟悉的 API 的用戶無"
+"須過問下列問題:"
 
 #. Tag: para
-#: part1.xml:61
+#: part1.xml:105
+#, fuzzy, no-c-format
+msgid "What is the lifecycle of this object?"
+msgstr "這個物件的生命週期為何?"
+
+#. Tag: para
+#: part1.xml:108
+#, fuzzy, no-c-format
+msgid "How many simultaneous clients can it have?"
+msgstr "它一次能同時有幾個客戶端?"
+
+#. Tag: para
+#: part1.xml:111
+#, fuzzy, no-c-format
+msgid "Is it multithreaded?"
+msgstr "它是否為多執行緒(multithread)?"
+
+#. Tag: para
+#: part1.xml:114
 #, no-c-format
-msgid "how should I go about sharing this object between other objects?"
+msgid "How do I get access to it from a client?"
+msgstr ""
+
+#. Tag: para
+#: part1.xml:117
+#, fuzzy, no-c-format
+msgid "Do I need to explicitly destroy it?"
+msgstr "我是否需要明確地將它毀掉呢?"
+
+#. Tag: para
+#: part1.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"Where should I keep the reference to it when I'm not currently using it?"
+msgstr "當我沒有在直接使用它時,我應該將它的參照保留在哪裡呢?"
+
+#. Tag: para
+#: part1.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"How can I define an alternative implementation, so that the implementation "
+"can vary at deployment time?"
+msgstr ""
+"我該如何新增一個 indirection layer 來使這個物件在建置時的實做可呈多樣化?"
+
+#. Tag: para
+#: part1.xml:131
+#, fuzzy, no-c-format
+msgid "How should I go about sharing this object between other objects?"
 msgstr "我該如何在其它物件之間共享這個物件?"
 
 #. Tag: para
-#: part1.xml:65
+#: part1.xml:137
 #, no-c-format
 msgid ""
-"A Web Bean specifies only the type and semantics of other Web Beans it "
-"depends upon. It need not be aware of the actual lifecycle, concrete "
-"implementation, threading model or other clients of any Web Bean it depends "
-"upon. Even better, the concrete implementation, lifecycle and threading "
-"model of a Web Bean it depends upon may vary according to the deployment "
-"scenario, without affecting any client."
-msgstr "Web Bean 只會指定它所依賴的 Web Bean 的類型和語意。它無須知道實際的生命週期、具體的實做、執行緒模型,或是任何它所依賴的 Web Bean 的其它客戶端。更好的是,它所依賴的 Web Bean 的具體實做、生命週期和執行緒模型可根據建置的情況來改變,並且不影響到任何的客戶端。"
+"CDI is more than a framework. It's a whole, rich programming model. The "
+"<emphasis>theme</emphasis> of CDI is <emphasis>loose-coupling with strong "
+"typing</emphasis>. Let's study what that phrase means."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:72
-#, no-c-format
+#: part1.xml:142
+#, fuzzy, no-c-format
 msgid ""
-"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
-"emphasis> that is inherent in this model:"
-msgstr "事件、攔截器以及裝飾器可增強在此模型中所繼承的 <emphasis>loose-coupling</emphasis>(鬆散結合性):"
+"A bean specifies only the type and semantics of other beans it depends upon. "
+"It need not be aware of the actual lifecycle, concrete implementation, "
+"threading model or other clients of any bean it interacts with. Even better, "
+"the concrete implementation, lifecycle and threading model of a bean may "
+"vary according to the deployment scenario, without affecting any client. "
+"This loose-coupling makes your code easier to maintain."
+msgstr ""
+"Web Bean 只會指定它所依賴的 Web Bean 的類型和語意。它無須知道實際的生命週期、"
+"具體的實做、執行緒模型,或是任何它所依賴的 Web Bean 的其它客戶端。更好的是,"
+"它所依賴的 Web Bean 的具體實做、生命週期和執行緒模型可根據建置的情況來改變,"
+"並且不影響到任何的客戶端。"
 
 #. Tag: para
-#: part1.xml:77
+#: part1.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"Events, interceptors and decorators enhance the loose-coupling inherent in "
+"this model:"
+msgstr ""
+"事件、攔截器以及裝飾器可增強在此模型中所繼承的 <emphasis>loose-coupling</"
+"emphasis>(鬆散結合性):"
+
+#. Tag: para
+#: part1.xml:155
 #, no-c-format
 msgid ""
 "<emphasis>event notifications</emphasis> decouple event producers from event "
 "consumers,"
-msgstr "<emphasis>event notifications</emphasis>(事件通知)會 decouple producer 和 event consumer(事件用戶),"
+msgstr ""
+"<emphasis>event notifications</emphasis>(事件通知)會 decouple producer 和 "
+"event consumer(事件用戶),"
 
 #. Tag: para
-#: part1.xml:81
+#: part1.xml:159
 #, no-c-format
 msgid ""
 "<emphasis>interceptors</emphasis> decouple technical concerns from business "
 "logic, and"
-msgstr "<emphasis>interceptors</emphasis>(攔截器)可由商業邏輯去 decouple 技術問題,並且"
+msgstr ""
+"<emphasis>interceptors</emphasis>(攔截器)可由商業邏輯去 decouple 技術問題,"
+"並且"
 
 #. Tag: para
-#: part1.xml:85
+#: part1.xml:163
 #, no-c-format
 msgid ""
 "<emphasis>decorators</emphasis> allow business concerns to be "
@@ -162,71 +279,96 @@
 msgstr "<emphasis>decorators</emphasis>(裝飾器)可將商業問題分為若干部分。"
 
 #. Tag: para
-#: part1.xml:90
-#, no-c-format
+#: part1.xml:168
+#, fuzzy, no-c-format
 msgid ""
-"Most importantly, Web Beans provides all these facilities in a "
-"<emphasis>typesafe</emphasis> way. Web Beans never uses string-based "
-"identifiers to determine how collaborating objects fit together. And XML, "
-"though it remains an option, is rarely used. Instead, Web Beans uses the "
-"typing information that is already available in the Java object model, "
-"together with a new pattern, called <emphasis>binding annotations</"
-"emphasis>, to wire together Web Beans, their dependencies, their "
-"interceptors and decorators and their event consumers."
-msgstr "最重要的是,Web Bean 以一種 <emphasis>typesafe</emphasis> 的方式來提供了所有的這些功能。Web Bean 從不使用基於字串的識別符號(identifier)來斷定共同協作的物件如何相輔相成。雖然 XML 也是選項之一不過卻很少被使用到。取而代之,Web Bean 使用了 Java 物件模型中可使用的 typing 資訊並統合了一個稱為 <emphasis>binding annotations(綁定標記)</emphasis>的新格式,它可將 Web Bean、它們的相依性、它們的攔截器和裝飾器以及它們的事件用戶聯繫在一起。"
+"What's even more powerful (and comforting) is that CDI provides all these "
+"facilities in a <emphasis>typesafe</emphasis> way. CDI never relies on "
+"string-based identifiers to determine how collaborating objects fit "
+"together. Instead, CDI uses the typing information that is already available "
+"in the Java object model, augmented using a new programming pattern, called "
+"<emphasis>qualifier annotations</emphasis>, to wire together beans, their "
+"dependencies, their interceptors and decorators, and their event consumers. "
+"Usage of XML descriptors is minimized to truly deployment-specific "
+"information."
+msgstr ""
+"最重要的是,Web Bean 以一種 <emphasis>typesafe</emphasis> 的方式來提供了所有"
+"的這些功能。Web Bean 從不使用基於字串的識別符號(identifier)來斷定共同協作的"
+"物件如何相輔相成。雖然 XML 也是選項之一不過卻很少被使用到。取而代之,Web "
+"Bean 使用了 Java 物件模型中可使用的 typing 資訊並統合了一個稱為 "
+"<emphasis>binding annotations(綁定標記)</emphasis>的新格式,它可將 Web "
+"Bean、它們的相依性、它們的攔截器和裝飾器以及它們的事件用戶聯繫在一起。"
 
 #. Tag: para
-#: part1.xml:100
+#: part1.xml:177
 #, no-c-format
 msgid ""
-"The Web Beans services are general and apply to the following types of "
-"components that exist in the Java EE environment:"
-msgstr "Web Bean 服務為通用的並且適用於下列位於 Java EE 環境中的元件類型:"
+"But CDI isn't a restrictive programming model. It doesn't tell you how you "
+"should to structure your application into layers, how you should handle "
+"persistence, or what web framework you have to use. You'll have to decide "
+"those kinds of things for yourself."
+msgstr ""
 
 #. Tag: para
-#: part1.xml:105
-#, no-c-format
-msgid "all JavaBeans,"
-msgstr "所有 JavaBean、"
-
-#. Tag: para
-#: part1.xml:108
-#, no-c-format
-msgid "all EJBs, and"
-msgstr "所有 EJB,以及"
-
-#. Tag: para
-#: part1.xml:111
-#, no-c-format
-msgid "all Servlets."
-msgstr "所有 Servlet。"
-
-#. Tag: para
-#: part1.xml:115
-#, no-c-format
+#: part1.xml:183
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans even provides the necessary integration points so that other kinds "
-"of components defined by future Java EE specifications or by non-standard "
-"frameworks may be cleanly integrated with Web Beans, take advantage of the "
-"Web Beans services, and interact with any other kind of Web Bean."
-msgstr "Web Bean 甚至提供了必要的整合點來讓未來 Java EE 規格或是非標準架構所定義的其它類型元件能夠利落地與 Web Bean 整合、有效利用 Web Bean 服務,並與任何其它類型的 Web Bean 進行互動。"
+"CDI even provides a comprehensive SPI, allowing other kinds of object "
+"defined by future Java EE specifications or by third-party frameworks to be "
+"cleanly integrated with CDI, take advantage of the CDI services, and "
+"interact with any other kind of bean."
+msgstr ""
+"Web Bean 甚至提供了必要的整合點來讓未來 Java EE 規格或是非標準架構所定義的其"
+"它類型元件能夠利落地與 Web Bean 整合、有效利用 Web Bean 服務,並與任何其它類"
+"型的 Web Bean 進行互動。"
 
 #. Tag: para
-#: part1.xml:120
-#, no-c-format
+#: part1.xml:189
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans was influenced by a number of existing Java frameworks, including "
-"Seam, Guice and Spring. However, Web Beans has its own very distinct "
-"character: more typesafe than Seam, more stateful and less XML-centric than "
-"Spring, more web and enterprise-application capable than Guice."
-msgstr "Web Bean 受到了幾個現有的 Java framework(包括 Seam、Guice 以及 Spring)的影響。不過,Web Bean 擁有它自己獨特的特性:比 Seam 還要完善的 typesafe、比 Spring 更 stateful 而沒有那麼地以 XML 為中心,並且針對於網站和企業級的應用程式上的處理能力比 Guice 完善。"
+"CDI was influenced by a number of existing Java frameworks, including Seam, "
+"Guice and Spring. However, CDI has its own, very distinct, character: more "
+"typesafe than Seam, more stateful and less XML-centric than Spring, more web "
+"and enterprise-application capable than Guice. But it couldn't have been any "
+"of these without inspiration from the frameworks mentioned and "
+"<emphasis>lots</emphasis> of collaboration and hard work by the JSR-299 "
+"Expert Group (EG)."
+msgstr ""
+"Web Bean 受到了幾個現有的 Java framework(包括 Seam、Guice 以及 Spring)的影"
+"響。不過,Web Bean 擁有它自己獨特的特性:比 Seam 還要完善的 typesafe、比 "
+"Spring 更 stateful 而沒有那麼地以 XML 為中心,並且針對於網站和企業級的應用程"
+"式上的處理能力比 Guice 完善。"
 
 #. Tag: para
-#: part1.xml:125
+#: part1.xml:197
 #, no-c-format
 msgid ""
-"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
-"Java EE, and with any Java SE environment where embeddable EJB Lite is "
-"available."
-msgstr "最重要的是,Web Bean 是一個能與 Java EE 以及可使用崁入式的 EJB Lite 的任何 Java SE 環境整合的 JCP 標準。"
+"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"ulink> (JCP) standard. Java EE 6 requires that all compliant application "
+"servers provide support for JSR-299 (even in the web profile)."
+msgstr ""
 
+#~ msgid "where can I get one from?"
+#~ msgstr "我能從哪裡取得呢?"
+
+#~ msgid ""
+#~ "The Web Beans services are general and apply to the following types of "
+#~ "components that exist in the Java EE environment:"
+#~ msgstr "Web Bean 服務為通用的並且適用於下列位於 Java EE 環境中的元件類型:"
+
+#~ msgid "all JavaBeans,"
+#~ msgstr "所有 JavaBean、"
+
+#~ msgid "all EJBs, and"
+#~ msgstr "所有 EJB,以及"
+
+#~ msgid "all Servlets."
+#~ msgstr "所有 Servlet。"
+
+#~ msgid ""
+#~ "Most importantly, Web Beans is a JCP standard that integrates cleanly "
+#~ "with Java EE, and with any Java SE environment where embeddable EJB Lite "
+#~ "is available."
+#~ msgstr ""
+#~ "最重要的是,Web Bean 是一個能與 Java EE 以及可使用崁入式的 EJB Lite 的任"
+#~ "何 Java SE 環境整合的 JCP 標準。"

Modified: doc/trunk/reference/zh-TW/part2.po
===================================================================
--- doc/trunk/reference/zh-TW/part2.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/part2.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part2\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-14 12:31+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -20,88 +20,104 @@
 #: part2.xml:5
 #, no-c-format
 msgid ""
-"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
-"We've already seen three means of achieving loose coupling:"
-msgstr "Web Bean 的第一個重點就是 <emphasis>loose coupling(鬆散結合性)</emphasis>。我們已經看過了三種 loose coupling 的方式:"
+"Weld, the JSR-299 Reference Implementation (RI), is being developed as part "
+"of the <ulink url=\"http://seamframework.org/Weld\">Seam project</ulink>. "
+"You can download the latest community release of Weld from the <ulink url="
+"\"http://seamframework.org/Download\">download page</ulink>. Information "
+"about the Weld source code repository and instructions about how to obtain "
+"and build the source can be found on the same page."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:10
+#: part2.xml:12
 #, no-c-format
-msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr "<emphasis>deployment types(建置類型)</emphasis>可啟用建置時間多型性(deployment time polymorphism)、"
+msgid ""
+"Weld provides a complete SPI allowing Java EE containers such as JBoss AS "
+"and GlassFish to use Weld as their built-in CDI implementation. Weld also "
+"runs in servlet engines like Tomcat and Jetty, or even in a plain Java SE "
+"environment."
+msgstr ""
 
 #. Tag: para
-#: part2.xml:14
-#, no-c-format
-msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr "<emphasis>producer methods</emphasis> 可啟用 runtime Polymorphism(執行期多型性),以及"
-
-#. Tag: para
 #: part2.xml:18
 #, no-c-format
 msgid ""
-"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
-"lifecycles."
-msgstr "<emphasis>contextual lifecycle management</emphasis> 可 decouple Web Bean 的生命週期。"
+"Weld comes with an extensive library of examples, which are a great starting "
+"point from which to learn CDI."
+msgstr ""
 
-#. Tag: para
-#: part2.xml:23
-#, no-c-format
-msgid ""
-"These techniques serve to enable loose coupling of client and server. The "
-"client is no longer tightly bound to an implementation of an API, nor is it "
-"required to manage the lifecycle of the server object. This approach lets "
-"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr "這些技巧都可用來啟用客戶端以及伺服器的 loose coupling。客戶端已不再固定綁定至一個特定 API 的實做,並且它亦無須管理伺服器物件的生命週期。這個方法能讓<emphasis>有狀態的物件被視為服務一般地來進行互動</emphasis>。"
+#~ msgid ""
+#~ "The first major theme of Web Beans is <emphasis>loose coupling</"
+#~ "emphasis>. We've already seen three means of achieving loose coupling:"
+#~ msgstr ""
+#~ "Web Bean 的第一個重點就是 <emphasis>loose coupling(鬆散結合性)</"
+#~ "emphasis>。我們已經看過了三種 loose coupling 的方式:"
 
-#. Tag: para
-#: part2.xml:28
-#, no-c-format
-msgid ""
-"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
-"can respond to change in a well-defined manner. In the past, frameworks that "
-"attempted to provide the facilities listed above invariably did it by "
-"sacrificing type safety. Web Beans is the first technology that achieves "
-"this level of loose coupling in a typesafe way."
-msgstr "Loose coupling 會使系統變得更加<emphasis>動態式</emphasis>。系統可透過充足定義的方式來回應變更。過去,有許多 framework 嘗試了提供以上所列出的功能,不過卻都是藉由犧牲了 type safety 來達成的。Web Bean 是第一個以 typesafe 的方式來實現此層級的 loose coupling 的技術。"
+#~ msgid ""
+#~ "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+#~ msgstr ""
+#~ "<emphasis>deployment types(建置類型)</emphasis>可啟用建置時間多型性"
+#~ "(deployment time polymorphism)、"
 
-#. Tag: para
-#: part2.xml:34
-#, no-c-format
-msgid ""
-"Web Beans provides three extra important facilities that further the goal of "
-"loose coupling:"
-msgstr "Web Bean 提供了三個額外的重要功能以用來達成 loose coupling:"
+#~ msgid ""
+#~ "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+#~ msgstr ""
+#~ "<emphasis>producer methods</emphasis> 可啟用 runtime Polymorphism(執行期"
+#~ "多型性),以及"
 
-#. Tag: para
-#: part2.xml:39
-#, no-c-format
-msgid ""
-"<emphasis>interceptors</emphasis> decouple technical concerns from business "
-"logic,"
-msgstr "<emphasis>interceptors(攔截器)</emphasis>可區分技術問題與商業邏輯,"
+#~ msgid ""
+#~ "<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
+#~ "lifecycles."
+#~ msgstr ""
+#~ "<emphasis>contextual lifecycle management</emphasis> 可 decouple Web Bean "
+#~ "的生命週期。"
 
-#. Tag: para
-#: part2.xml:43
-#, no-c-format
-msgid ""
-"<emphasis>decorators</emphasis> may be used to decouple some business "
-"concerns, and"
-msgstr "<emphasis>decorators(裝飾器)</emphasis>可被用來區分一些商業問題,並且"
+#~ msgid ""
+#~ "These techniques serve to enable loose coupling of client and server. The "
+#~ "client is no longer tightly bound to an implementation of an API, nor is "
+#~ "it required to manage the lifecycle of the server object. This approach "
+#~ "lets <emphasis>stateful objects interact as if they were services</"
+#~ "emphasis>."
+#~ msgstr ""
+#~ "這些技巧都可用來啟用客戶端以及伺服器的 loose coupling。客戶端已不再固定綁"
+#~ "定至一個特定 API 的實做,並且它亦無須管理伺服器物件的生命週期。這個方法能"
+#~ "讓<emphasis>有狀態的物件被視為服務一般地來進行互動</emphasis>。"
 
-#. Tag: para
-#: part2.xml:47
-#, no-c-format
-msgid ""
-"<emphasis>event notifications</emphasis> decouple event producers from event "
-"consumers."
-msgstr ""
-"<emphasis>event notifications(事件通知)</emphasis>可區分事件產生器(event producer)與事件用戶(event "
-"consumer)。"
+#~ msgid ""
+#~ "Loose coupling makes a system more <emphasis>dynamic</emphasis>. The "
+#~ "system can respond to change in a well-defined manner. In the past, "
+#~ "frameworks that attempted to provide the facilities listed above "
+#~ "invariably did it by sacrificing type safety. Web Beans is the first "
+#~ "technology that achieves this level of loose coupling in a typesafe way."
+#~ msgstr ""
+#~ "Loose coupling 會使系統變得更加<emphasis>動態式</emphasis>。系統可透過充足"
+#~ "定義的方式來回應變更。過去,有許多 framework 嘗試了提供以上所列出的功能,"
+#~ "不過卻都是藉由犧牲了 type safety 來達成的。Web Bean 是第一個以 typesafe 的"
+#~ "方式來實現此層級的 loose coupling 的技術。"
 
-#. Tag: para
-#: part2.xml:52
-#, no-c-format
-msgid "Let's explore interceptors first."
-msgstr "讓我們先來探討攔截器(interceptor)。"
+#~ msgid ""
+#~ "Web Beans provides three extra important facilities that further the goal "
+#~ "of loose coupling:"
+#~ msgstr "Web Bean 提供了三個額外的重要功能以用來達成 loose coupling:"
 
+#~ msgid ""
+#~ "<emphasis>interceptors</emphasis> decouple technical concerns from "
+#~ "business logic,"
+#~ msgstr ""
+#~ "<emphasis>interceptors(攔截器)</emphasis>可區分技術問題與商業邏輯,"
+
+#~ msgid ""
+#~ "<emphasis>decorators</emphasis> may be used to decouple some business "
+#~ "concerns, and"
+#~ msgstr ""
+#~ "<emphasis>decorators(裝飾器)</emphasis>可被用來區分一些商業問題,並且"
+
+#~ msgid ""
+#~ "<emphasis>event notifications</emphasis> decouple event producers from "
+#~ "event consumers."
+#~ msgstr ""
+#~ "<emphasis>event notifications(事件通知)</emphasis>可區分事件產生器"
+#~ "(event producer)與事件用戶(event consumer)。"
+
+#~ msgid "Let's explore interceptors first."
+#~ msgstr "讓我們先來探討攔截器(interceptor)。"

Modified: doc/trunk/reference/zh-TW/part3.po
===================================================================
--- doc/trunk/reference/zh-TW/part3.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/part3.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part3\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-14 16:07+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -20,24 +20,112 @@
 #: part3.xml:5
 #, no-c-format
 msgid ""
-"The second major theme of Web Beans is <emphasis>strong typing</emphasis>. "
-"The information about the dependencies, interceptors and decorators of a Web "
-"Bean, and the information about event consumers for an event producer, is "
-"contained in typesafe Java constructs that may be validated by the compiler."
-msgstr "Web Bean 的第二個重點就是 <emphasis>strong typing(強類型)</emphasis>。有關於 Web Bean 的相依性、攔截器與裝飾器的相關資訊,以及有關於某個事件產生器的事件用戶的相關資訊都包含在編譯器可驗證的 typesafe Java 架構中。"
+"The first major theme of CDI is <emphasis>loose coupling</emphasis>. We've "
+"already seen three means of achieving loose coupling:"
+msgstr ""
 
 #. Tag: para
-#: part3.xml:10
+#: part3.xml:12
 #, no-c-format
+msgid "<emphasis>alternatives</emphasis> enable deployment time polymorphism,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:17
+#, no-c-format
+msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:21
+#, no-c-format
 msgid ""
-"You don't see string-based identifiers in Web Beans code, not because the "
-"framework is hiding them from you using clever defaulting rules &#151; so-"
-"called \"configuration by convention\" &#151; but because there are simply no "
+"<emphasis>contextual lifecycle management</emphasis> decouples bean "
+"lifecycles."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:27
+#, no-c-format
+msgid ""
+"These techniques serve to enable loose coupling of client and server. The "
+"client is no longer tightly bound to an implementation of an interface, nor "
+"is it required to manage the lifecycle of the implementation. This approach "
+"lets <emphasis>stateful objects interact as if they were services</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:33
+#, no-c-format
+msgid ""
+"Loose coupling makes a system more <emphasis>dynamic</emphasis>. The system "
+"can respond to change in a well-defined manner. In the past, frameworks that "
+"attempted to provide the facilities listed above invariably did it by "
+"sacrificing type safety (most notably by using XML descriptors). CDI is the "
+"first technology, and certainly the first specification in the Java EE "
+"platform, that achieves this level of loose coupling in a typesafe way."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:40
+#, no-c-format
+msgid ""
+"CDI provides three extra important facilities that further the goal of loose "
+"coupling:"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:46
+#, no-c-format
+msgid ""
+"<emphasis>interceptors</emphasis> decouple technical concerns from business "
+"logic,"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:51
+#, no-c-format
+msgid ""
+"<emphasis>decorators</emphasis> may be used to decouple some business "
+"concerns, and"
+msgstr ""
+
+#. Tag: para
+#: part3.xml:56
+#, no-c-format
+msgid ""
+"<emphasis>event notifications</emphasis> decouple event producers from event "
+"consumers."
+msgstr ""
+
+#. Tag: para
+#: part3.xml:62
+#, fuzzy, no-c-format
+msgid ""
+"The second major theme of CDI is <emphasis>strong typing</emphasis>. The "
+"information about the dependencies, interceptors and decorators of a bean, "
+"and the information about event consumers for an event producer, is "
+"contained in typesafe Java constructs that may be validated by the compiler."
+msgstr ""
+"Web Bean 的第二個重點就是 <emphasis>strong typing(強類型)</emphasis>。有關"
+"於 Web Bean 的相依性、攔截器與裝飾器的相關資訊,以及有關於某個事件產生器的事"
+"件用戶的相關資訊都包含在編譯器可驗證的 typesafe Java 架構中。"
+
+#. Tag: para
+#: part3.xml:68
+#, fuzzy, no-c-format
+msgid ""
+"You don't see string-based identifiers in CDI code, not because the "
+"framework is hiding them from you using clever defaulting rules&#8212;so-"
+"called \"configuration by convention\"&#8212;but because there are simply no "
 "strings there to begin with!"
-msgstr "您在 Web Bean 的程式碼中不會看見基於字串的識別符號,這不是因為 framework 透過使用預設的規則來將它隱藏起來 &#151; 又稱為「configuration by convention」 &#151; 而是因為一開始根本就沒有任何字串!"
+msgstr ""
+"您在 Web Bean 的程式碼中不會看見基於字串的識別符號,這不是因為 framework 透過"
+"使用預設的規則來將它隱藏起來 &#151; 又稱為「configuration by convention」 "
+"&#151; 而是因為一開始根本就沒有任何字串!"
 
 #. Tag: para
-#: part3.xml:15
+#: part3.xml:74
 #, no-c-format
 msgid ""
 "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
@@ -46,109 +134,125 @@
 "It turns out that when you start thinking of identifying objects, events or "
 "interceptors via annotations instead of names, you have an opportunity to "
 "lift the semantic level of your code."
-msgstr "這個作法明顯的好處就是<emphasis>任何</emphasis> IDE 都可在不使用特殊工具的情況下提供自動完成(autocompletion)、驗證(validation)和重整(refactoring)。還有一個較沒那麼明顯且直接的好處。當您希望透過標記來識別物件、事件或是攔截器而不是透過名稱時,您可提昇您程式碼的語意層級(semantic level)。"
+msgstr ""
+"這個作法明顯的好處就是<emphasis>任何</emphasis> IDE 都可在不使用特殊工具的情"
+"況下提供自動完成(autocompletion)、驗證(validation)和重整(refactoring)。"
+"還有一個較沒那麼明顯且直接的好處。當您希望透過標記來識別物件、事件或是攔截器"
+"而不是透過名稱時,您可提昇您程式碼的語意層級(semantic level)。"
 
 #. Tag: para
-#: part3.xml:21
-#, no-c-format
+#: part3.xml:81
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans encourages you develop annotations that model concepts, for "
-"example,"
+"CDI encourages you develop annotations that model concepts, for example,"
 msgstr "Web Bean 鼓勵您使用塑造概念的標記,例如"
 
 #. Tag: para
-#: part3.xml:26
+#: part3.xml:87
 #, no-c-format
 msgid "<literal>@Asynchronous</literal>,"
 msgstr "<literal>@Asynchronous</literal>、"
 
 #. Tag: para
-#: part3.xml:29
+#: part3.xml:90
 #, no-c-format
 msgid "<literal>@Mock</literal>,"
 msgstr "<literal>@Mock</literal>、"
 
 #. Tag: para
-#: part3.xml:32
+#: part3.xml:93
 #, no-c-format
 msgid "<literal>@Secure</literal> or"
 msgstr "<literal>@Secure</literal> 或"
 
 #. Tag: para
-#: part3.xml:35
+#: part3.xml:96
 #, no-c-format
 msgid "<literal>@Updated</literal>,"
 msgstr "<literal>@Updated</literal>、"
 
 #. Tag: para
-#: part3.xml:39
+#: part3.xml:100
 #, no-c-format
 msgid "instead of using compound names like"
 msgstr "而不是使用像是"
 
 #. Tag: para
-#: part3.xml:43
+#: part3.xml:104
 #, no-c-format
 msgid "<literal>asyncPaymentProcessor</literal>,"
 msgstr "<literal>asyncPaymentProcessor</literal>、"
 
 #. Tag: para
-#: part3.xml:46
+#: part3.xml:107
 #, no-c-format
 msgid "<literal>mockPaymentProcessor</literal>,"
 msgstr "<literal>mockPaymentProcessor</literal>、"
 
 #. Tag: para
-#: part3.xml:49
+#: part3.xml:110
 #, no-c-format
 msgid "<literal>SecurityInterceptor</literal> or"
 msgstr "<literal>SecurityInterceptor</literal> 或是"
 
 #. Tag: para
-#: part3.xml:52
+#: part3.xml:113
 #, no-c-format
 msgid "<literal>DocumentUpdatedEvent</literal>."
 msgstr "<literal>DocumentUpdatedEvent</literal> 的複合式名稱。"
 
 #. Tag: para
-#: part3.xml:56
+#: part3.xml:117
 #, no-c-format
 msgid ""
 "The annotations are reusable. They help describe common qualities of "
 "disparate parts of the system. They help us categorize and understand our "
 "code. They help us deal with common concerns in a common way. They make our "
 "code more literate and more understandable."
-msgstr "這些標記可重複使用。它們協助描述系統不同部份的通用要點(common qualities)。它們協助我們分類和理解我們的程式碼。它們協助我們利用通用的方式來處理一般的問題。它們讓我們的程式碼變得更文字化且更容易理解。"
+msgstr ""
+"這些標記可重複使用。它們協助描述系統不同部份的通用要點(common qualities)。"
+"它們協助我們分類和理解我們的程式碼。它們協助我們利用通用的方式來處理一般的問"
+"題。它們讓我們的程式碼變得更文字化且更容易理解。"
 
 #. Tag: para
-#: part3.xml:61
-#, no-c-format
+#: part3.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A "
+"CDI <emphasis>stereotypes</emphasis> take this idea a step further. A "
 "stereotype models a common <emphasis>role</emphasis> in your application "
 "architecture. It encapsulates various properties of the role, including "
-"scope, interceptor bindings, deployment type, etc, into a single reusable "
-"package."
-msgstr "Web Bean <emphasis>stereotype</emphasis> 將這個概念帶領到了另一個更為進階的領域。固定刻板模式(stereotype model)是您應用程式架構中的一個通用<emphasis>角色(role)</emphasis>。它將該角色的各種屬性(包括 scope、攔截器綁定〔interceptor binding〕,建置類型〔deployment type〕等等)壓縮進了一個單獨、可重複使用的套件中。"
+"scope, interceptor bindings, qualifiers, etc, into a single reusable "
+"package. (Of course, there is also the benefit of tucking some of those "
+"annotations away)."
+msgstr ""
+"Web Bean <emphasis>stereotype</emphasis> 將這個概念帶領到了另一個更為進階的領"
+"域。固定刻板模式(stereotype model)是您應用程式架構中的一個通用<emphasis>角"
+"色(role)</emphasis>。它將該角色的各種屬性(包括 scope、攔截器綁定"
+"〔interceptor binding〕,建置類型〔deployment type〕等等)壓縮進了一個單獨、"
+"可重複使用的套件中。"
 
 #. Tag: para
-#: part3.xml:66
-#, no-c-format
+#: part3.xml:138
+#, fuzzy, no-c-format
 msgid ""
-"Even Web Beans XML metadata is strongly typed! There's no compiler for XML, "
-"so Web Beans takes advantage of XML schemas to validate the Java types and "
-"attributes that appear in XML. This approach turns out to make the XML more "
-"literate, just like annotations made our Java code more literate."
-msgstr "就連 Web Bean XML 的 metadata 也屬於強類型!XML 沒有編譯器,因此 Web Bean 利用了 XML schema 來驗證出現在 XML 中的 Java 類型和屬性。這個方法使得 XML 變得更文字化,就和標記使得我們的 Java 程式碼變得更容易理解一樣。"
-
-#. Tag: para
-#: part3.xml:71
-#, no-c-format
-msgid ""
-"We're now ready to meet some more advanced features of Web Beans. Bear in "
-"mind that these features exist to make our code both easier to validate and "
-"more understandable. Most of the time you don't ever really <emphasis>need</"
+"We're now ready to meet some more advanced features of CDI. Bear in mind "
+"that these features exist to make our code both easier to validate and more "
+"understandable. Most of the time you don't ever really <emphasis>need</"
 "emphasis> to use these features, but if you use them wisely, you'll come to "
 "appreciate their power."
-msgstr "我們現在已準備好談到一些更為進階的 Web Bean 功能。請記得,這些功能是為了使我們的程式碼變得易於驗證和較容易理解。實際上大部分的時候您都不會真的<emphasis>需要</emphasis>使用到這些功能,不過若您可有效地利用這些功能的話,您將可體會到這些功能的強大。"
+msgstr ""
+"我們現在已準備好談到一些更為進階的 Web Bean 功能。請記得,這些功能是為了使我"
+"們的程式碼變得易於驗證和較容易理解。實際上大部分的時候您都不會真的<emphasis>"
+"需要</emphasis>使用到這些功能,不過若您可有效地利用這些功能的話,您將可體會到"
+"這些功能的強大。"
 
+#~ msgid ""
+#~ "Even Web Beans XML metadata is strongly typed! There's no compiler for "
+#~ "XML, so Web Beans takes advantage of XML schemas to validate the Java "
+#~ "types and attributes that appear in XML. This approach turns out to make "
+#~ "the XML more literate, just like annotations made our Java code more "
+#~ "literate."
+#~ msgstr ""
+#~ "就連 Web Bean XML 的 metadata 也屬於強類型!XML 沒有編譯器,因此 Web Bean "
+#~ "利用了 XML schema 來驗證出現在 XML 中的 Java 類型和屬性。這個方法使得 XML "
+#~ "變得更文字化,就和標記使得我們的 Java 程式碼變得更容易理解一樣。"

Modified: doc/trunk/reference/zh-TW/part4.po
===================================================================
--- doc/trunk/reference/zh-TW/part4.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/part4.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: part4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-14 16:59+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -20,37 +20,63 @@
 #: part4.xml:5
 #, no-c-format
 msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
-msgstr "Web Bean 的第三個主題為 <emphasis>integration(整合性)</emphasis>。Web Bean 本身就是設計來與其它技術整合用的,它可協助應用程式開發員將不同的技術統合在一起。Web Bean 是個開放式技術。它形成了 Java EE 生態系統的一部分,並且它本身身為一個 portable extension 的新生態系統基礎,同時也是和現有 framework 和技術整合上的一個根本。"
+"The third theme of CDI is <emphasis>integration</emphasis>. We've already "
+"seen how CDI helps integrate EJB and JSF, allowing EJBs to be bound directly "
+"to JSF pages. That's just the beginning. The CDI services are integrated "
+"into the very core of the Java EE platform. Even EJB session beans can take "
+"advantage of the dependency injection, event bus, and contextual lifecycle "
+"management that CDI provides."
+msgstr ""
 
 #. Tag: para
 #: part4.xml:12
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
-msgstr "我們已經看到了 Web Bean 如何協助整合 EJB 與 JSF,它讓 EJB 能夠直接地綁定至 JSF 頁面。那僅是一開始而已。Web Bean 也提供了能夠使其它技術(例如商業流程管理、其它網站 Framework 以及第三方元件模型)變得多變化的功能。Java EE 平台永遠也無法標準化全部使用於 Java 應用程式開發領域中的技術,不過 Web Bean 能使得在 Java EE 環境下使用還未屬於該平台的技術變得更為容易。"
+"CDI is also designed to work in concert with technologies outside of the "
+"platform by providing integration points into the Java EE platform via an "
+"SPI. This SPI positions CDI as the foundation for a new ecosystem of "
+"<emphasis>portable</emphasis> extensions and integration with existing "
+"frameworks and technologies. The CDI services will be able to reach a "
+"diverse collection of technologies, such as business process management "
+"(BPM) engines, existing web frameworks and de facto standard component "
+"models. Of course, The Java EE platform will never be able to standardize "
+"all the interesting technologies that are used in the world of Java "
+"application development, but CDI makes it easier to use the technologies "
+"which are not yet part of the platform seamlessly within the Java EE "
+"environment."
+msgstr ""
+"我們已經看到了 Web Bean 如何協助整合 EJB 與 JSF,它讓 EJB 能夠直接地綁定至 "
+"JSF 頁面。那僅是一開始而已。Web Bean 也提供了能夠使其它技術(例如商業流程管"
+"理、其它網站 Framework 以及第三方元件模型)變得多變化的功能。Java EE 平台永遠"
+"也無法標準化全部使用於 Java 應用程式開發領域中的技術,不過 Web Bean 能使得在 "
+"Java EE 環境下使用還未屬於該平台的技術變得更為容易。"
 
 #. Tag: para
-#: part4.xml:21
-#, no-c-format
+#: part4.xml:23
+#, fuzzy, no-c-format
 msgid ""
 "We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
-msgstr "我們正要探討如何在一個使用 Web Bean 的應用程式中有效地利用 Java EE 平台。我們也將簡短地探討一組提供來讓 Web Bean 支援 portable extension 的 SPI。您可能永遠也不會需要直接使用到這些 SPI,不過知道它們的存在以備不時之需總是較好的。最重要的是,每當您使用第三方的 extension 時,您便會間接地利用到它們。"
+"application that uses CDI. We'll also briefly meet a set of SPIs that are "
+"provided to support portable extensions to CDI. You might not ever need to "
+"use these SPIs directly, but don't take them for granted. You will likely be "
+"using them indirectly, every time you use a third-party extension, such as "
+"Seam."
+msgstr ""
+"我們正要探討如何在一個使用 Web Bean 的應用程式中有效地利用 Java EE 平台。我們"
+"也將簡短地探討一組提供來讓 Web Bean 支援 portable extension 的 SPI。您可能永"
+"遠也不會需要直接使用到這些 SPI,不過知道它們的存在以備不時之需總是較好的。最"
+"重要的是,每當您使用第三方的 extension 時,您便會間接地利用到它們。"
 
+#~ msgid ""
+#~ "The third theme of Web Beans is <emphasis>integration</emphasis>. Web "
+#~ "Beans was designed to work in concert with other technologies, helping "
+#~ "the application developer fit the other technologies together. Web Beans "
+#~ "is an open technology. It forms a part of the Java EE ecosystem, and is "
+#~ "itself the foundation for a new ecosystem of portable extensions and "
+#~ "integration with existing frameworks and technologies."
+#~ msgstr ""
+#~ "Web Bean 的第三個主題為 <emphasis>integration(整合性)</emphasis>。Web "
+#~ "Bean 本身就是設計來與其它技術整合用的,它可協助應用程式開發員將不同的技術"
+#~ "統合在一起。Web Bean 是個開放式技術。它形成了 Java EE 生態系統的一部分,並"
+#~ "且它本身身為一個 portable extension 的新生態系統基礎,同時也是和現有 "
+#~ "framework 和技術整合上的一個根本。"

Modified: doc/trunk/reference/zh-TW/part5.po
===================================================================
--- doc/trunk/reference/zh-TW/part5.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/part5.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-28 17:09+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-03-28 17:09+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,22 +18,31 @@
 #: part5.xml:5
 #, no-c-format
 msgid ""
-"Web Beans is the reference implementation of JSR-299, and is used by JBoss "
-"AS and Glassfish to provide JSR-299 services for Java Enterprise Edition "
-"applications. Web Beans also goes beyond the environments and APIs defined "
-"by the JSR-299 specification and provides support for a number of other "
+"Weld is the reference implementation of JSR-299, and is used by JBoss AS and "
+"Glassfish to provide CDI services for Java Enterprise Edition (Java EE) "
+"applications. Weld also goes beyond the environments and APIs defined by the "
+"JSR-299 specification by providing support for a number of other "
 "environments (such as a servlet container such as Tomcat, or Java SE) and "
-"additional APIs and modules (such as logging, XSD generation for the JSR-299 "
-"XML deployment descriptors)."
+"additional APIs and modules (such as logging and bean utilities)."
 msgstr ""
 
 #. Tag: para
-#: part5.xml:15
+#: part5.xml:12
 #, no-c-format
 msgid ""
-"If you want to get started quickly using Web Beans with JBoss AS or Tomcat "
-"and experiment with one of the examples, take a look at <xref linkend=\"ri\"/"
-">. Otherwise read on for a exhaustive discussion of using Web Beans in all "
-"the environments and application servers it supports, as well the Web Beans "
-"extensions."
+"Some of the extensions in Weld are portable across JSR-299 implementations "
+"(like the logging and bean utilities) and some are specific to Weld (such as "
+"the servlet container support). Weld also provides an SPI on which to build "
+"extensions, so there are several layers involved."
 msgstr ""
+
+#. Tag: para
+#: part5.xml:18
+#, no-c-format
+msgid ""
+"If you want to get started quickly using Weld (and, in turn, CDI) with JBoss "
+"AS, GlassFish or Tomcat and experiment with one of the examples, take a look "
+"at <xref linkend=\"gettingstarted\"/>. Otherwise read on for a exhaustive "
+"discussion of using Weld in all the environments and application servers it "
+"supports and the Weld extensions."
+msgstr ""

Modified: doc/trunk/reference/zh-TW/producermethods.po
===================================================================
--- doc/trunk/reference/zh-TW/producermethods.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/producermethods.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: producermethods\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-06 02:29+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-16 12:31+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -24,13 +24,12 @@
 
 #. Tag: para
 #: producermethods.xml:7
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"Producer methods let us overcome certain limitations that arise when the Web "
-"Bean manager, instead of the application, is responsible for instantiating "
-"objects. They're also the easiest way to integrate objects which are not Web "
-"Beans into the Web Beans environment. (We'll meet a second approach in <xref "
-"linkend=\"xml\"/>.)"
+"Producer methods let us overcome certain limitations that arise when a "
+"container, instead of the application, is responsible for instantiating "
+"objects. They're also the easiest way to integrate objects which are not "
+"beans into the CDI environment."
 msgstr ""
 "Producer method 讓我們在當 Web Bean 管理員(而不是應用程式)負責舉例說明"
 "(instantiating)物件時能夠解決一些特定發生的問題。它們同時也是將非 Web Bean "
@@ -38,104 +37,96 @@
 "提及第二個方式。)"
 
 #. Tag: para
-#: producermethods.xml:12
+#: producermethods.xml:14
 #, no-c-format
 msgid "According to the spec:"
 msgstr "根據規格:"
 
 #. Tag: para
-#: producermethods.xml:16
+#: producermethods.xml:18
 #, no-c-format
-msgid ""
-"A Web Beans producer method acts as a source of objects to be injected, "
-"where:"
+msgid "A producer method acts as a source of objects to be injected, where:"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:20
+#: producermethods.xml:22
 #, no-c-format
-msgid ""
-"the objects to be injected are not required to be instances of Web Beans,"
+msgid "the objects to be injected are not required to be instances of beans,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:23
+#: producermethods.xml:25
 #, no-c-format
 msgid "the concrete type of the objects to be injected may vary at runtime or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:26
+#: producermethods.xml:28
 #, no-c-format
 msgid ""
 "the objects require some custom initialization that is not performed by the "
-"Web Bean constructor"
+"bean constructor"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:33
+#: producermethods.xml:36
 #, fuzzy, no-c-format
 msgid "For example, producer methods let us:"
 msgstr "producer method çš„ scope"
 
 #. Tag: para
-#: producermethods.xml:37
+#: producermethods.xml:40
 #, no-c-format
-msgid "expose a JPA entity as a Web Bean,"
+msgid "expose a JPA entity as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:40
+#: producermethods.xml:43
 #, no-c-format
-msgid "expose any JDK class as a Web Bean,"
+msgid "expose any JDK class as a bean,"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:43
+#: producermethods.xml:46
 #, no-c-format
 msgid ""
-"define multiple Web Beans, with different scopes or initialization, for the "
-"same implementation class, or"
+"define multiple beans, with different scopes or initialization, for the same "
+"implementation class, or"
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:47
+#: producermethods.xml:51
 #, no-c-format
-msgid "vary the implementation of an API type at runtime."
+msgid "vary the implementation of a bean type at runtime."
 msgstr ""
 
 #. Tag: para
-#: producermethods.xml:51
+#: producermethods.xml:55
 #, no-c-format
 msgid ""
-"In particular, producer methods let us use runtime polymorphism with Web "
-"Beans. As we've seen, deployment types are a powerful solution to the "
-"problem of deployment-time polymorphism. But once the system is deployed, "
-"the Web Bean implementation is fixed. A producer method has no such "
-"limitation:"
+"In particular, producer methods let us use runtime polymorphism with CDI. As "
+"we've seen, alternative beans are one solution to the problem of deployment-"
+"time polymorphism. But once the system is deployed, the CDI implementation "
+"is fixed. A producer method has no such limitation:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:56
+#: producermethods.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@SessionScoped\n"
-"public class Preferences {\n"
-"    \n"
-"    private PaymentStrategyType paymentStrategy;\n"
-"    \n"
-"    ...\n"
-"    \n"
-"    @Produces @Preferred \n"
-"    public PaymentStrategy getPaymentStrategy() {\n"
-"        switch (paymentStrategy) {\n"
-"            case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
-"            case CHEQUE: return new ChequePaymentStrategy();\n"
-"            case PAYPAL: return new PayPalPaymentStrategy();\n"
-"            default: return null;\n"
-"        } \n"
-"    }\n"
-"    \n"
+"public class Preferences implements Serializable {\n"
+"   private PaymentStrategyType paymentStrategy;\n"
+"   ...\n"
+"   @Produces @Preferred \n"
+"   public PaymentStrategy getPaymentStrategy() {\n"
+"       switch (paymentStrategy) {\n"
+"           case CREDIT_CARD: return new CreditCardPaymentStrategy();\n"
+"           case CHECK: return new CheckPaymentStrategy();\n"
+"           case PAYPAL: return new PayPalPaymentStrategy();\n"
+"           default: return null;\n"
+"       } \n"
+"   }\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -151,15 +142,15 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:58
+#: producermethods.xml:63
 #, no-c-format
 msgid "Consider an injection point:"
 msgstr ""
 
 #. Tag: programlisting
-#: producermethods.xml:60
+#: producermethods.xml:65
 #, fuzzy, no-c-format
-msgid "<![CDATA[@Preferred PaymentStrategy paymentStrat;]]>"
+msgid "<![CDATA[@Inject @Preferred PaymentStrategy paymentStrategy;]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
@@ -167,29 +158,29 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:62
+#: producermethods.xml:67
 #, no-c-format
 msgid ""
-"This injection point has the same type and binding annotations as the "
-"producer method, so it resolves to the producer method using the usual Web "
-"Beans injection rules. The producer method will be called by the Web Bean "
-"manager to obtain an instance to service this injection point."
+"This injection point has the same type and qualifier annotations as the "
+"producer method, so it resolves to the producer method using the usual CDI "
+"injection rules. The producer method will be called by the container to "
+"obtain an instance to service this injection point."
 msgstr ""
 
 #. Tag: title
-#: producermethods.xml:68
+#: producermethods.xml:74
 #, no-c-format
 msgid "Scope of a producer method"
 msgstr "producer method çš„ scope"
 
 #. Tag: para
-#: producermethods.xml:70
-#, no-c-format
+#: producermethods.xml:76
+#, fuzzy, no-c-format
 msgid ""
 "The scope of the producer method defaults to <literal>@Dependent</literal>, "
-"and so it will be called <emphasis>every time</emphasis> the Web Bean "
-"manager injects this field or any other field that resolves to the same "
-"producer method. Thus, there could be multiple instances of the "
+"and so it will be called <emphasis>every time</emphasis> the container "
+"injects this field or any other field that resolves to the same producer "
+"method. Thus, there could be multiple instances of the "
 "<literal>PaymentStrategy</literal> object for each user session."
 msgstr ""
 "producer method 的預設 scope 為 <literal>@Dependent</literal>,所以<emphasis>"
@@ -199,7 +190,7 @@
 "現。"
 
 #. Tag: para
-#: producermethods.xml:75
+#: producermethods.xml:83
 #, no-c-format
 msgid ""
 "To change this behavior, we can add a <literal>@SessionScoped</literal> "
@@ -209,12 +200,12 @@
 "method。"
 
 #. Tag: programlisting
-#: producermethods.xml:78
-#, no-c-format
+#: producermethods.xml:87
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy() {\n"
-"    ...\n"
+"   ...\n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -223,7 +214,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:80
+#: producermethods.xml:89
 #, no-c-format
 msgid ""
 "Now, when the producer method is called, the returned "
@@ -235,13 +226,13 @@
 "調用。"
 
 #. Tag: title
-#: producermethods.xml:87
+#: producermethods.xml:97
 #, no-c-format
 msgid "Injection into producer methods"
 msgstr "注入 producer method"
 
 #. Tag: para
-#: producermethods.xml:89
+#: producermethods.xml:99
 #, no-c-format
 msgid ""
 "There's one potential problem with the code above. The implementations of "
@@ -256,29 +247,29 @@
 "攔截器。"
 
 #. Tag: para
-#: producermethods.xml:94
-#, no-c-format
+#: producermethods.xml:106
+#, fuzzy, no-c-format
 msgid ""
-"If this isn't what we want we can use dependency injection into the producer "
-"method to obtain Web Bean instances:"
+"If this isn't what we want, we can use dependency injection into the "
+"producer method to obtain bean instances:"
 msgstr ""
 "若這不是我們所想要的,我們可使用依賴注入至 producer method 之中來取得 Web "
 "Bean 的 instance:"
 
 #. Tag: programlisting
-#: producermethods.xml:97
-#, no-c-format
+#: producermethods.xml:111
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
-"                                          ChequePaymentStrategy cps,\n"
+"                                          CheckPaymentStrategy cps,\n"
 "                                          PayPalPaymentStrategy ppps) {\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -294,17 +285,17 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:99
-#, no-c-format
+#: producermethods.xml:113
+#, fuzzy, no-c-format
 msgid ""
-"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request "
-"scoped Web Bean? Then the producer method has the effect of \"promoting\" "
-"the current request scoped instance into session scope. This is almost "
-"certainly a bug! The request scoped object will be destroyed by the Web Bean "
-"manager before the session ends, but the reference to the object will be "
-"left \"hanging\" in the session scope. This error will <emphasis>not</"
-"emphasis> be detected by the Web Bean manager, so please take extra care "
-"when returning Web Bean instances from producer methods!"
+"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
+"scoped bean? Then the producer method has the effect of \"promoting\" the "
+"current request scoped instance into session scope. This is almost certainly "
+"a bug! The request scoped object will be destroyed by the container before "
+"the session ends, but the reference to the object will be left \"hanging\" "
+"in the session scope. This error will <emphasis>not</emphasis> be detected "
+"by the container, so please take extra care when returning bean instances "
+"from producer methods!"
 msgstr ""
 "請稍等,若 <literal>CreditCardPaymentStrategy</literal> 是個請求 scope 的 "
 "Web Bean 的話要怎麼辦?若是如此那麼 producer method 便有將現有的 request "
@@ -315,13 +306,13 @@
 "外小心!"
 
 #. Tag: para
-#: producermethods.xml:107
-#, no-c-format
+#: producermethods.xml:122
+#, fuzzy, no-c-format
 msgid ""
 "There's at least three ways we could go about fixing this bug. We could "
 "change the scope of the <literal>CreditCardPaymentStrategy</literal> "
-"implementation, but this would affect other clients of that Web Bean. A "
-"better option would be to change the scope of the producer method to "
+"implementation, but this would affect other clients of that bean. A better "
+"option would be to change the scope of the producer method to "
 "<literal>@Dependent</literal> or <literal>@RequestScoped</literal>."
 msgstr ""
 "我們有三種可修正這項錯誤的方法。我們可更改 "
@@ -330,41 +321,41 @@
 "<literal>@Dependent</literal> 或 <literal>@RequestScoped</literal>。"
 
 #. Tag: para
-#: producermethods.xml:113
-#, no-c-format
+#: producermethods.xml:129
+#, fuzzy, no-c-format
 msgid ""
 "But a more common solution is to use the special <literal>@New</literal> "
-"binding annotation."
+"qualifier annotation."
 msgstr "不過較普遍的解決方式就是使用特殊的 <literal>@New</literal> 綁定標記。"
 
 #. Tag: title
-#: producermethods.xml:119
+#: producermethods.xml:134
 #, no-c-format
 msgid "Use of <literal>@New</literal> with producer methods"
 msgstr "使用 <literal>@New</literal> 和 producer method"
 
 #. Tag: para
-#: producermethods.xml:121
+#: producermethods.xml:136
 #, no-c-format
 msgid "Consider the following producer method:"
 msgstr "考慮下列 producer method:"
 
 #. Tag: programlisting
-#: producermethods.xml:123
-#, no-c-format
+#: producermethods.xml:138
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
 "public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
 "ccps,\n"
-"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New CheckPaymentStrategy cps,\n"
 "                                          @New PayPalPaymentStrategy ppps) "
 "{\n"
-"    switch (paymentStrategy) {\n"
-"        case CREDIT_CARD: return ccps;\n"
-"        case CHEQUE: return cps;\n"
-"        case PAYPAL: return ppps;\n"
-"        default: return null;\n"
-"    } \n"
+"   switch (paymentStrategy) {\n"
+"      case CREDIT_CARD: return ccps;\n"
+"      case CHEQUE: return cps;\n"
+"      case PAYPAL: return ppps;\n"
+"      default: return null;\n"
+"   } \n"
 "}]]>"
 msgstr ""
 "<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -382,7 +373,7 @@
 "}]]>"
 
 #. Tag: para
-#: producermethods.xml:125
+#: producermethods.xml:140
 #, no-c-format
 msgid ""
 "Then a new <emphasis>dependent</emphasis> instance of "
@@ -398,6 +389,60 @@
 "<literal>Preferences</literal> 物件於 session 結束時被毀掉之前,dependent 物"
 "件不會被毀掉。"
 
+#. Tag: title
+#: producermethods.xml:150
+#, fuzzy, no-c-format
+msgid "Disposer methods"
+msgstr "Producer method"
+
+#. Tag: para
+#: producermethods.xml:152
+#, no-c-format
+msgid ""
+"Some producer methods return objects that require explicit destruction. For "
+"example, somebody needs to close this JDBC connection:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"   return createConnection(user.getId(), user.getPassword());\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:159
+#, no-c-format
+msgid ""
+"Destruction can be performed by a matching <emphasis>disposer method</"
+"emphasis>, defined by the same class as the producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: producermethods.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"   connection.close();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: producermethods.xml:164
+#, no-c-format
+msgid ""
+"The disposer method must have at least one parameter, annotated "
+"<literal>@Disposes</literal>, with the same type and qualifiers as the "
+"producer method. The disposer method is called automatically when the "
+"context ends (in this case, at the end of the request), and this parameter "
+"receives the object produced by the producer method. If the disposer method "
+"has additional method parameters, the container will look for a bean that "
+"satisfies the type and qualifiers of each parameter and pass it to the "
+"method automatically."
+msgstr ""
+
 #~ msgid ""
 #~ "<blockquote> <para>A Web Beans producer method acts as a source of "
 #~ "objects to be injected, where:</para> <itemizedlist> <listitem> <para>the "

Added: doc/trunk/reference/zh-TW/resources.po
===================================================================
--- doc/trunk/reference/zh-TW/resources.po	                        (rev 0)
+++ doc/trunk/reference/zh-TW/resources.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,220 @@
+# Language zh-TW translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: resources.xml:5
+#, no-c-format
+msgid "Java EE component environment resources"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:7
+#, no-c-format
+msgid ""
+"Java EE 5 already introduced some limited support for dependency injection, "
+"in the form of component environment injection. A component environment "
+"resource is a Java EE component, for example a JDBC datasource, JMS queue or "
+"topic, JPA persistence context, remote EJB or web service."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:13
+#, no-c-format
+msgid ""
+"Naturally, there is now a slight mismatch with the new style of dependency "
+"injection in CDI. Most notably, component environment injection relies on "
+"string-based names to qualify ambiguous types, and there is no real "
+"consistency as to the nature of the names (sometimes a JNDI name, sometimes "
+"a persistence unit name, sometimes an EJB link, sometimes a nonportable "
+"\"mapped name\"). Producer fields turned out to be an elegant adaptor to "
+"reduce all this complexity to a common model and get component environment "
+"resources to participate in the CDI system just like any other kind of bean."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:22
+#, no-c-format
+msgid ""
+"Fields have a duality in that they can both be the target of Java EE "
+"component environment injection and be declared as a CDI producer field. "
+"Therefore, they can define a mapping from a string-based name in the "
+"component environment, to a combination of type and qualifiers used in the "
+"world of typesafe injection. We call a producer field that represents a "
+"reference to an object in the Java EE component environment a "
+"<emphasis>resource</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:31
+#, no-c-format
+msgid "Defining a resource"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:33
+#, no-c-format
+msgid ""
+"We declare a resource by annotating a producer field with a component "
+"environment injection annotation: <literal>@Resource</literal>, "
+"<literal>@EJB</literal>, <literal>@PersistenceContext</literal>, "
+"<literal>@PersistenceUnit</literal> or <literal>@WebServiceRef</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
+"Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
+"@CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:41
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
+"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
+"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:45
+#, no-c-format
+msgid ""
+"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
+"PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:47
+#, no-c-format
+msgid "The field may be static (but not final)."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid ""
+"It might feel strange to be declaring resources in Java code. Isn't this "
+"stuff that might be deployment-specific? Certainly, and that's why it makes "
+"sense to declare your resources in a class annotation <literal>@Alternative</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: resources.xml:56
+#, no-c-format
+msgid "Typesafe resource injection"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:58
+#, no-c-format
+msgid "These resources can now be injected in the usual way."
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:62
+#, no-c-format
+msgid "<![CDATA[@Inject Catalog catalog;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:63
+#, no-c-format
+msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:64
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:66
+#, no-c-format
+msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:68
+#, no-c-format
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:72
+#, no-c-format
+msgid ""
+"It might seem like a pain to have to write these extra producer field "
+"declarations, just to gain an additional level of indirection. You could "
+"just as well use component environment injection directly, right? But "
+"remember that you're going to be using resources like the "
+"<literal>EntityManager</literal> in several different beans. Isn't it nicer "
+"and more typesafe to write"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:79
+#, no-c-format
+msgid "@Inject @CustomerDatabase EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:81
+#, no-c-format
+msgid "instead of"
+msgstr ""
+
+#. Tag: programlisting
+#: resources.xml:83
+#, no-c-format
+msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:85
+#, no-c-format
+msgid "all over the place?"
+msgstr ""

Modified: doc/trunk/reference/zh-TW/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-TW/ri-spi.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/ri-spi.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ri-spi\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:43+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -19,44 +19,65 @@
 #. Tag: title
 #: ri-spi.xml:4
 #, fuzzy, no-c-format
-msgid "Integrating Web Beans into other environments"
+msgid "Integrating Weld into other environments"
 msgstr "將 Web Bean RI 整合入其它環境中"
 
 #. Tag: para
 #: ri-spi.xml:6
+#, no-c-format
+msgid ""
+"If you want to use Weld in another environment, you will need to provide "
+"certain information to Weld via the integration SPI. In this Appendix we "
+"will briefly discuss the steps needed."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:12
 #, fuzzy, no-c-format
+msgid "Enterprise Services"
+msgstr "資源載入"
+
+#. Tag: para
+#: ri-spi.xml:13
+#, no-c-format
 msgid ""
-"Currently Web Beans only runs in JBoss AS 5; integrating the RI into other "
-"EE environments (for example another application server like Glassfish), "
-"into a servlet container (like Tomcat), or with an Embedded EJB3.1 "
-"implementation is fairly easy. In this Appendix we will briefly discuss the "
-"steps needed."
+"If you just want to use managed beans, and not take advantage of enterprise "
+"services (EE resource injection, CDI injection into EE component classes, "
+"transactional events, support for CDI services in EJBs) and non-flat "
+"deployments, then the generic servlet support provided by the \"Weld: "
+"Servlets\" extension will be sufficient, and will work in any container "
+"supporting the Servlet API."
 msgstr ""
-"目前,Web Bean RI 只能在 JBoss AS 5 中執行;要將 RI 整合入其它 EE 環境中(比"
-"方說另一個像是 Glassfish 的應用程式伺服器)、整合入一個 servlet 容器(例如 "
-"Tomcat)中,或是和一個崁入式的 EJB3.1 實做整合都是相當容易的。在此附錄中,我"
-"們將簡略地討論所需的步驟。"
 
+#. Tag: para
+#: ri-spi.xml:21
+#, no-c-format
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:15
+#: ri-spi.xml:27
 #, fuzzy, no-c-format
-msgid "The Web Beans SPI"
+msgid "The Weld SPI"
 msgstr "Web Beans RI SPI"
 
 #. Tag: para
-#: ri-spi.xml:17
+#: ri-spi.xml:29
 #, fuzzy, no-c-format
 msgid ""
-"The Web Beans SPI is located in the <literal>webbeans-spi</literal> module, "
-"and packaged as <literal>webbeans-spi.jar</literal>. Some SPIs are optional, "
-"if you need to override the default behavior, others are required."
+"The Weld SPI is located in the <literal>weld-spi</literal> module, and "
+"packaged as <literal>weld-spi.jar</literal>. Some SPIs are optional, and "
+"should only be implemented if you need to override the default behavior; "
+"others are required."
 msgstr ""
 "Web Bean SPI 位於 <literal>webbeans-ri-spi</literal> 模組中,並且被封裝為 "
 "<literal>webbeans-ri-spi.jar</literal>。有些 SPI 為可選的,若您需要置換預設的"
 "特性,您則需要其它 SPI。"
 
 #. Tag: para
-#: ri-spi.xml:24
+#: ri-spi.xml:35
 #, no-c-format
 msgid ""
 "All interfaces in the SPI support the decorator pattern and provide a "
@@ -66,382 +87,352 @@
 "sub package."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:41
+#, no-c-format
+msgid ""
+"Weld supports multiple environments. An environment is defined by an "
+"implementation of the <literal>Environment</literal> interface. A number of "
+"standard environments are built in, and described by the "
+"<literal>Environments</literal> enumeration. Different environments require "
+"different services to be present (for example a Servlet container doesn't "
+"require transaction, EJB or JPA services). By default an EE environment is "
+"assumed, but you can adjust the environment by calling <literal>bootstrap."
+"setEnvironment()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:50
+#, no-c-format
+msgid ""
+"Weld uses a generic-typed service registry to allow services to be "
+"registered. All services implement the <literal>Service</literal> interface. "
+"The service registry allows services to be added and retrieved."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:33
+#: ri-spi.xml:56
 #, no-c-format
-msgid "Web Bean Discovery"
-msgstr "Web Bean 搜尋"
+msgid "Deployment structure"
+msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:35
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:58
+#, no-c-format
 msgid ""
-"<![CDATA[/**\n"
-"    * Gets list of all classes in classpath archives with META-INF/beans.xml "
-"(or\n"
-"    * for WARs WEB-INF/beans.xml) files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all deployment descriptors in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();]]>"
+"An application is often comprised of a number of modules. For example, a "
+"Java EE deployment may contain a number of EJB modules (containing business "
+"logic) and WAR modules (containing the user interface). A container may "
+"enforce certain <emphasis>accessibility</emphasis> rules which limit the "
+"visibility of classes between modules. CDI allows these same rules to apply "
+"to bean and observer method resolution. As the accessibility rules vary "
+"between containers, Weld requires the container to <emphasis>describe</"
+"emphasis> the deployment structure, via the <literal>Deployment</literal> "
+"SPI."
 msgstr ""
-"<![CDATA[public interface WebBeanDiscovery {\n"
-"   /**\n"
-"    * Gets list of all classes in classpath archives with web-beans.xml "
-"files\n"
-"    * \n"
-"    * @return An iterable over the classes \n"
-"    */\n"
-"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
-"   \n"
-"   /**\n"
-"    * Gets a list of all web-beans.xml files in the app classpath\n"
-"    * \n"
-"    * @return An iterable over the web-beans.xml files \n"
-"    */\n"
-"   public Iterable<URL> discoverWebBeansXml();\n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:37
-#, fuzzy, no-c-format
+#: ri-spi.xml:67
+#, no-c-format
 msgid ""
-"The discovery of Web Bean classes and <literal>beans.xml</literal> files is "
-"self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 "
-"specification, and isn't repeated here)."
+"The CDI specification discusses <emphasis>Bean Deployment Archives</"
+"emphasis> (BDAs)&#8212;archives which are marked as containing beans which "
+"should be deployed to the CDI container, and made available for injection "
+"and resolution. Weld reuses this description of <emphasis>Bean Deployment "
+"Archives</emphasis> in its deployment structure SPI. Each deployment exposes "
+"the BDAs which it contains; each BDA may also reference other which it can "
+"access. Together, the transitive closure of this graph forms the beans which "
+"are deployed in the application."
 msgstr ""
-"Web Bean 類別和 <literal>web-bean.xml</literal> 檔案的搜尋相當明顯(演算法描"
-"述於 JSR-299 規格的章節 11.1 中,在此不重複)。"
 
+#. Tag: para
+#: ri-spi.xml:76
+#, no-c-format
+msgid ""
+"To describe the deployment structure to Weld, the container should provide "
+"an implementation of <literal>Deployment</literal>. <literal>Deployment."
+"getBeanDeploymentArchives()</literal> allows Weld to discover the modules "
+"which make up the application. The CDI specification also allows beans to be "
+"specified programmatically as part of the bean deployment. These beans may, "
+"or may not, be in an existing BDA. For this reason, Weld will call "
+"<literal>Deployment.loadBeanDeploymentArchive(Class clazz)</literal> for "
+"each programmatically described bean."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:85
+#, no-c-format
+msgid ""
+"As programmatically described beans may result in additional BDAs being "
+"added to the graph, Weld will discover the BDA structure every time an "
+"unknown BDA is returned by <literal>Deployment.loadBeanDeploymentArchive</"
+"literal>."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:46
+#: ri-spi.xml:92
 #, no-c-format
-msgid "EJB services"
+msgid "Virtual BDAs"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:49
+#: ri-spi.xml:93
 #, no-c-format
 msgid ""
-"Web Beans will run without an EJB container; in this case you don't need to "
-"implement the EJB SPI."
+"In a strict container, each BDA might have to explicitly specify which other "
+"BDAs it can access. However many containers will allow an easy mechanism to "
+"make BDAs bi-directionally accessible (such as a library directory). In this "
+"case, it is allowable (and reasonable) to describe all such archives as a "
+"single, 'virtual' <literal>BeanDeploymentArchive</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:55
-#, fuzzy, no-c-format
+#: ri-spi.xml:100
+#, no-c-format
 msgid ""
-"Web Beans also delegates EJB3 bean discovery to the container so that it "
-"doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
-"literal>. For each EJB in the application an EJBDescriptor should be "
-"discovered:"
+"A container, might, for example, use a flat accessibility structure for the "
+"application. In this case, a single <literal>BeanDeploymentArchive</literal> "
+"would be attached to the <literal>Deployment</literal>."
 msgstr ""
-"Web Bean RI 也會委派 EJB3 bean discovery 至 container,因此它便無須掃描 EJB3 "
-"記號或剖析 <literal>ejb-jar.xml</literal>。針對於應用程式中的各個 EJB 都應該"
-"能發現一個 EJBDescriptor:"
 
-#. Tag: programlisting
-#: ri-spi.xml:62
-#, fuzzy, no-c-format
+#. Tag: para
+#: ri-spi.xml:106
+#, no-c-format
 msgid ""
-"<![CDATA[public interface EjbDescriptor<T>\n"
-"{\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();]]>"
+"<literal>BeanDeploymentArchive</literal> provides three methods which allow "
+"it's contents to be discovered by Weld&#8212;<literal>BeanDeploymentArchive."
+"getBeanClasses()</literal> must return all the classes in the BDA, "
+"<literal>BeanDeploymentArchive.getBeansXml()</literal> must return all the "
+"deployment descriptors in the archive, and <literal>BeanDeploymentArchive."
+"getEjbs()</literal> must provide an EJB descriptor for every EJB in the BDA, "
+"or an empty list if it is not an EJB archive."
 msgstr ""
-"<![CDATA[public interface EjbDescriptor<T> {\n"
-"   \n"
-"   /**\n"
-"    * Gets the EJB type\n"
-"    * \n"
-"    * @return The EJB Bean class\n"
-"    */\n"
-"   public Class<T> getType();\n"
-"\n"
-"   /**\n"
-"    * Gets the local business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the local business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
-"();\n"
-"   \n"
-"   /**\n"
-"    * Gets the remote business interfaces of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remote business interfaces\n"
-"    */\n"
-"   public Iterable<BusinessInterfaceDescriptor<?>> "
-"getRemoteBusinessInterfaces();\n"
-"   \n"
-"   /**\n"
-"    * Get the remove methods of the EJB\n"
-"    * \n"
-"    * @return An iterator over the remove methods\n"
-"    */\n"
-"   public Iterable<Method> getRemoveMethods();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is stateless\n"
-"    * \n"
-"    * @return True if stateless, false otherwise\n"
-"    */\n"
-"   public boolean isStateless();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the bean is a EJB 3.1 Singleton\n"
-"    * \n"
-"    * @return True if the bean is a singleton, false otherwise\n"
-"    */\n"
-"   public boolean isSingleton();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is stateful\n"
-"    * \n"
-"    * @return True if the bean is stateful, false otherwise\n"
-"    */\n"
-"   public boolean isStateful();\n"
-"\n"
-"   /**\n"
-"    * Indicates if the EJB is and MDB\n"
-"    * \n"
-"    * @return True if the bean is an MDB, false otherwise\n"
-"    */\n"
-"   public boolean isMessageDriven();\n"
-"\n"
-"   /**\n"
-"    * Gets the EJB name\n"
-"    * \n"
-"    * @return The name\n"
-"    */\n"
-"   public String getEjbName();\n"
-"   \n"
-"   \n"
-"}]]>"
 
 #. Tag: para
-#: ri-spi.xml:64
+#: ri-spi.xml:114
 #, no-c-format
 msgid ""
-"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
-"return the relevant metadata as defined in the EJB specification. In "
-"addition to these two interfaces, there is "
-"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
-"business interface (encapsulating the interface class and jndi name used to "
-"look up an instance of the EJB)."
+"BDA X may also reference another BDA Y whose beans can be resolved by, and "
+"injected into, any bean in BDA X. These are the accessible BDAs, and every "
+"BDA that is directly accessible by BDA X should be returned. A BDA will also "
+"have BDAs which are accessible transitively, and the transitive closure of "
+"the sub-graph of BDA X describes all the beans resolvable by BDA X."
 msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:122
+#, no-c-format
+msgid "Matching the classloader structure for the deployment"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:124
+#, no-c-format
+msgid ""
+"In practice, you can regard the deployment structure represented by "
+"<literal>Deployment</literal>, and the virtual BDA graph as a mirror of the "
+"classloader structure for a deployment. If a class can from BDA X can be "
+"loaded by another in BDA Y, it is accessible, and therefore BDA Y's "
+"accessible BDAs should include BDA X."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:132
+#, no-c-format
+msgid ""
+"To specify the directly accessible BDAs, the container should provide an "
+"implementation of <literal>BeanDeploymentArchive.getBeanDeploymentArchives()"
+"</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"Weld allows the container to describe a circular graph, and will convert a "
+"graph to a tree as part of the deployment process."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:144
+#, no-c-format
+msgid ""
+"Certain services are provided for the whole deployment, whilst some are "
+"provided per-BDA. BDA services are provided using "
+"<literal>BeanDeploymentArchive.getServices()</literal> and only apply to the "
+"BDA on which they are provided."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:153
+#, no-c-format
+msgid "EJB descriptors"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:155
+#, no-c-format
+msgid ""
+"Weld delegates EJB 3 bean discovery to the container so that it doesn't "
+"duplicate the work done by the EJB container, and respects any vendor-"
+"extensions to the EJB definition."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:160
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> should return the relevant metadata as "
+"defined in the EJB specification. Each business interface of a session bean "
+"should be described using a <literal>BusinessInterfaceDescriptor</literal>."
+msgstr ""
 "<literal>EjbDescriptor</literal> 本身已不解自明並且不需加以說明,它應會依照 "
 "EJB 規格中所定義地來回傳相關的 metadata。除了這兩個介面,還有個代表本地商業介"
 "面的 <literal>BusinessInterfaceDescriptor</literal>(包含了使用來查詢某個 "
 "EJB instance 的 interface class 以及 jndi 名稱)。"
 
+#. Tag: title
+#: ri-spi.xml:169
+#, no-c-format
+msgid "EE resource injection and resolution services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:73
+#: ri-spi.xml:171
 #, no-c-format
 msgid ""
-"The resolution of <literal>@EJB</literal> (for injection into simple beans), "
-"the resolution of local EJBs (for backing session beans) and remote EJBs "
-"(for injection as a Java EE resource) is delegated to the container. You "
-"must provide an implementation of <literal>org.jboss.webbeans.ejb.spi."
-"EjbServices</literal> which provides these operations. For resolving the "
-"<literal>@EJB</literal> injection point, Web Beans will provide the "
-"<literal>InjectionPoint</literal>; for resolving local EJBs, the "
-"<literal>EjbDescriptor</literal> will be provided, and for remote EJBs the "
-"<literal>jndiName</literal>, <literal>mappedName</literal>, or "
-"<literal>ejbLink</literal> will be provided."
+"All the EE resource services are per-BDA services, and may be provided using "
+"one of two methods. Which method to use is at the discretion of the "
+"integrator."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:87
+#: ri-spi.xml:176
 #, no-c-format
 msgid ""
-"When resolving local EJBs (used to back session beans) a wrapper "
-"(<literal>SessionObjectReference</literal>) around the EJB reference is "
-"returned. This wrapper allows Web Beans to request a reference that "
-"implements the given business interface, and, in the case of SFSBs, request "
-"the removal of the EJB from the container."
+"The integrator may choose to provide all EE resource injection services "
+"themselves, using another library or framework. In this case the integrator "
+"should use the <literal>EE</literal> environment, and implement the <xref "
+"linkend=\"injection.services\"/> SPI."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:98
+#. Tag: para
+#: ri-spi.xml:182
 #, no-c-format
-msgid "JPA services"
+msgid ""
+"Alternatively, the integrator may choose to use CDI to provide EE resource "
+"injection. In this case, the <literal>EE_INJECT</literal> environment should "
+"be used, and the integrator should implement the <xref linkend=\"ejb."
+"services.resolution\"/>, <xref linkend=\"resource.services\"/> and <xref "
+"linkend=\"jpa.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:100
+#: ri-spi.xml:189
 #, no-c-format
 msgid ""
-"Just as EJB resolution is delegated to the container, resolution of "
-"<literal>@PersistenceContext</literal> for injection into simple beans (with "
-"the <literal>InjectionPoint</literal> provided), and resolution of "
-"persistence contexts and persistence units (with the <literal>unitName</"
-"literal> provided) for injection as a Java EE resource is delegated to the "
-"container."
+"CDI only provides annotation-based EE resource injection; if you wish to "
+"provide deployment descriptor (e.g. <literal>ejb-jar.xml</literal>) "
+"injection, you must use <xref linkend=\"injection.services\"/>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:109
+#: ri-spi.xml:195
 #, no-c-format
 msgid ""
-"To allow JPA integration, the <literal>JpaServices</literal> interface "
-"should be implemented."
+"If the container performs EE resource injection, the injected resources must "
+"be serializable. If EE resource injection is provided by Weld, the resolved "
+"resource must be serializable."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:114
+#: ri-spi.xml:201
 #, no-c-format
 msgid ""
-"Web Beans also needs to know what entities are in a deployment (so that they "
-"aren't managed by Web Beans). An implementation that detects entities "
-"through <literal>@Entity</literal> and <literal>orm.xml</literal> is "
-"provided by default. If you want to provide support for a entities defined "
-"by a JPA provider (such as Hibernate's <literal>.hbm.xml</literal> you can "
-"wrap or replace the default implementation."
+"If you use a non-EE environment then you may implement any of the EE service "
+"SPIs, and Weld will provide the associated functionality. There is no need "
+"to implement those services you don't need!"
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:124
+#. Tag: title
+#: ri-spi.xml:210
 #, no-c-format
+msgid "EJB services"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:212
+#, no-c-format
+msgid "EJB services are split between two interfaces which are both per-BDA."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:216
+#, no-c-format
 msgid ""
-"<![CDATA[EntityDiscovery delegate = bootstrap.getServices().get"
-"(EntityDiscovery.class);]]>"
+"<literal>EJBServices</literal> is used to resolve local EJBs used to back "
+"session beans, and must always be provided in an EE environment. "
+"<literal>EJBServices.resolveEjb(EjbDescriptor ejbDescriptor)</literal> "
+"returns a wrapper&#8212;<literal>SessionObjectReference</literal>&#8212;"
+"around the EJB reference. This wrapper allows Weld to request a reference "
+"that implements the given business interface, and, in the case of SFSBs, "
+"both request the removal of the EJB from the container and query whether the "
+"EJB has been previously removed."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:225
+#, no-c-format
+msgid ""
+"<literal>EJBResolutionServices.resolveEjb(InjectionPoint ij)</literal> "
+"allows the resolution of <literal>@EJB</literal> (for injection into managed "
+"beans). This service is not required if the implementation of <xref linkend="
+"\"injection.services\"/> takes care of <literal>@EJB</literal> injection."
+msgstr ""
+
 #. Tag: title
-#: ri-spi.xml:129
+#: ri-spi.xml:234
 #, no-c-format
-msgid "Transaction Services"
+msgid "JPA services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:131
+#: ri-spi.xml:236
 #, no-c-format
 msgid ""
-"Web Beans must delegate JTA activities to the container. The SPI provides a "
-"couple hooks to easily achieve this with the <literal>TransactionServices</"
-"literal> interface."
+"Just as EJB resolution is delegated to the container, resolution of "
+"<literal>@PersistenceContext</literal> for injection into managed beans "
+"(with the <literal>InjectionPoint</literal> provided), is delegated to the "
+"container."
 msgstr ""
 
-#. Tag: programlisting
-#: ri-spi.xml:137
+#. Tag: para
+#: ri-spi.xml:242
 #, no-c-format
 msgid ""
-"<![CDATA[public interface TransactionServices\n"
-"{\n"
-"   /**\n"
-"    * Possible status conditions for a transaction. This can be used by SPI\n"
-"    * providers to keep track for which status an observer is used.\n"
-"    */\n"
-"   public static enum Status\n"
-"   {\n"
-"      ALL, SUCCESS, FAILURE\n"
-"   }\n"
-"\n"
-"   /**\n"
-"    * Registers a synchronization object with the currently executing\n"
-"    * transaction.\n"
-"    * \n"
-"    * @see javax.transaction.Synchronization\n"
-"    * @param synchronizedObserver\n"
-"    */\n"
-"   public void registerSynchronization(Synchronization "
-"synchronizedObserver);\n"
-"\n"
-"   /**\n"
-"    * Queries the status of the current execution to see if a transaction "
-"is\n"
-"    * currently active.\n"
-"    * \n"
-"    * @return true if a transaction is active\n"
-"    */\n"
-"   public boolean isTransactionActive();\n"
-"}]]>"
+"To allow JPA integration, the <literal>JpaServices</literal> interface "
+"should be implemented. This service is not required if the implementation of "
+"<xref linkend=\"injection.services\"/> takes care of "
+"<literal>@PersistenceContext</literal> injection."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:251
+#, no-c-format
+msgid "Transaction Services"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:139
+#: ri-spi.xml:253
 #, no-c-format
 msgid ""
-"The enumeration <literal>Status</literal> is a convenience for implementors "
-"to be able to keep track of whether a synchronization is supposed to notify "
-"an observer only when the transaction is successful, or after a failure, or "
-"regardless of the status of the transaction."
+"Weld delegates JTA activities to the container. The SPI provides a couple "
+"hooks to easily achieve this with the <literal>TransactionServices</literal> "
+"interface."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:147
+#: ri-spi.xml:258
 #, no-c-format
 msgid ""
 "Any <literal>javax.transaction.Synchronization</literal> implementation may "
@@ -451,7 +442,7 @@
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:155
+#: ri-spi.xml:264
 #, no-c-format
 msgid ""
 "To make it easier to determine whether or not a transaction is currently "
@@ -461,423 +452,465 @@
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:165
-#, no-c-format
-msgid "JMS services"
-msgstr ""
+#: ri-spi.xml:272
+#, fuzzy, no-c-format
+msgid "Resource Services"
+msgstr "資源載入"
 
 #. Tag: para
-#: ri-spi.xml:167
+#: ri-spi.xml:274
 #, no-c-format
 msgid ""
-"A number of JMS operations are not container specific, and so should be "
-"provided via the SPI <literal>JmsServices</literal>. JMS does not specify "
-"how to obtain a <literal>ConnectionFactory</literal> so the SPI provides a "
-"method which should be used to look up a factory. Web Beans also delegates "
-"<literal>Destination</literal> lookup to the container via the SPI."
+"The resolution of <literal>@Resource</literal> (for injection into managed "
+"beans) is delegated to the container. You must provide an implementation of "
+"<literal>ResourceServices</literal> which provides these operations. This "
+"service is not required if the implementation of <xref linkend=\"injection."
+"services\"/> takes care of <literal>@Resource</literal> injection."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:178
+#: ri-spi.xml:283
 #, fuzzy, no-c-format
-msgid "Resource Services"
+msgid "Injection Services"
 msgstr "資源載入"
 
 #. Tag: para
-#: ri-spi.xml:180
+#: ri-spi.xml:285
 #, no-c-format
 msgid ""
-"The resolution of <literal>@Resource</literal> (for injection into simple "
-"beans) and the resolution of resources (for injection as a Java EE resource) "
-"is delegated to the container. You must provide an implementation of "
-"<literal>ResourceServices</literal> which provides these operations. For "
-"resolving the <literal>@Resource</literal> injection, Web Beans will provide "
-"the <literal>InjectionPoint</literal>; and for Java EE resources, the "
-"<literal>jndiName</literal> or <literal>mappedName</literal> will be "
-"provided."
+"An integrator may wish to use <literal>InjectionServices</literal> to "
+"provide additional field or method injection over-and-above that provided by "
+"Weld. An integration into a Java EE environment may use "
+"<literal>InjectionServices</literal> to provide EE resource injection for "
+"managed beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:194
+#. Tag: para
+#: ri-spi.xml:291
 #, no-c-format
-msgid "Web Services"
+msgid ""
+"<literal>InjectionServices</literal> provides a very simple contract, the "
+"<literal>InjectionServices.aroundInject(InjectionContext ic);</literal> "
+"intercepter will be called for every instance that CDI injects, whether it "
+"is a contextual instance, or a non-contextual instance injected by "
+"<literal>InjectionTarget.inject()</literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:196
+#: ri-spi.xml:298
 #, no-c-format
 msgid ""
-"The resolution of web service references (for injection as a Java EE "
-"resource) is delegated to the container. You must provide an implementation "
-"of <literal>WebServices</literal> whichprovides this operation. For "
-"resolving the Java EE resource, the <literal>jndiName</literal> or "
-"<literal>mappedName</literal> will be provided."
+"The <literal>InjectionContext</literal> can be used to discover additional "
+"information about the injection being performed, including the "
+"<literal>target</literal> being injected. <literal>ic.proceed()</literal> "
+"should be called to perform CDI-style injection, and call initializer "
+"methods."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:207
-#, no-c-format
-msgid "The bean store"
-msgstr ""
+#: ri-spi.xml:307
+#, fuzzy, no-c-format
+msgid "Security Services"
+msgstr "資源載入"
 
 #. Tag: para
-#: ri-spi.xml:209
+#: ri-spi.xml:309
 #, no-c-format
 msgid ""
-"Web Beans uses a map like structure to store bean instances - <literal>org."
-"jboss.webbeans.context.api.BeanStore</literal>. You may find <literal>org."
-"jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore</literal> "
-"useful."
+"In order to obtain the <literal>Principal</literal> representing the current "
+"caller identity, the container should provide an implementation of "
+"<literal>SecurityServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:219
+#: ri-spi.xml:317
 #, no-c-format
-msgid "The application context"
+msgid "Bean Validation Services"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:221
+#: ri-spi.xml:319
 #, no-c-format
 msgid ""
-"Web Beans expects the Application Server or other container to provide the "
-"storage for each application's context. The <literal>org.jboss.webbeans."
-"context.api.BeanStore</literal> should be implemented to provide an "
-"application scoped storage."
+"In order to obtain the default <literal>ValidatorFactory</literal> for the "
+"application deployment, the container should provide an implementation of "
+"<literal>ValidationServices</literal>."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:231
+#: ri-spi.xml:327
 #, no-c-format
-msgid "Bootstrap and shutdown"
+msgid "Identifying the BDA being addressed"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:232
+#: ri-spi.xml:329
 #, no-c-format
 msgid ""
-"The <literal>org.jboss.webbeans.bootstrap.api.Bootstrap</literal> interface "
-"defines the bootstrap for Web Beans. To boot Web Beans, you must obtain an "
-"instance of <literal>org.jboss.webbeans.bootstrap.WebBeansBootstrap</"
-"literal> (which implements <literal>Boostrap</literal>), tell it about the "
-"SPIs in use, and then request the container start."
+"When a client makes a request to an application which uses Weld, the request "
+"may be addressed at any of the BDAs in the application deployment. To allow "
+"Weld to correctly service the request, it needs to know which BDA the "
+"request is addressed at. Where possible, Weld will provide some context, but "
+"use of these by the integrator is optional."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:241
+#: ri-spi.xml:337
 #, no-c-format
 msgid ""
-"The bootstrap is split into phases, bootstrap initialization and boot and "
-"shutdown. Initialization will create a manager, and add the standard "
-"(specification defined) contexts. Bootstrap will discover EJBs, classes and "
-"XML; add beans defined using annotations; add beans defined using XML; and "
-"validate all beans."
+"Most Servlet contains use a classloader-per-WAR, this may provide a good way "
+"to identify the BDA in use for web requests."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:249
+#: ri-spi.xml:343
 #, no-c-format
 msgid ""
-"The bootstrap supports multiple environments. An environment is defined by "
-"an implementation of the <literal>Environment</literal> interface. A number "
-"of standard envrionments are built in as the enumeration "
-"<literal>Environments</literal>. Different environments require different "
-"services to be present (for example servlet doesn't require transaction, EJB "
-"or JPA services). By default an EE environment is assumed, but you can "
-"adjust the environment by calling <literal>bootstrap.setEnvironment()</"
-"literal>."
+"When Weld needs to identify the BDA, it will use one of these services, "
+"depending on what is servicing the request:"
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:260
+#. Tag: literal
+#: ri-spi.xml:350
 #, no-c-format
-msgid ""
-"Web Beans uses a generic-typed service registry to allow services to be "
-"registered. All services implement the <literal>Service</literal> interface. "
-"The service registry allows services to be added and retrieved."
+msgid "ServletServices.getBeanDeploymentArchive(ServletContext ctx)"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:267
+#: ri-spi.xml:352
 #, no-c-format
 msgid ""
-"To initialize the bootstrap you call <literal>Bootstrap.initialize()</"
-"literal>. Before calling <literal>initialize()</literal>, you must register "
-"any services required by your environment. You can do this by calling "
-"<literal>bootstrap.getServices().add(JpaServices.class, new MyJpaServices())"
-"</literal>. You must also provide the application context bean store."
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
 msgstr ""
 
+#. Tag: title
+#: ri-spi.xml:362
+#, no-c-format
+msgid "The bean store"
+msgstr ""
+
 #. Tag: para
-#: ri-spi.xml:276
+#: ri-spi.xml:364
 #, no-c-format
 msgid ""
-"Having called <literal>initialize()</literal>, the <literal>Manager</"
-"literal> can be obtained by calling <literal>Bootstrap.getManager()</"
-"literal>."
+"Weld uses a map like structure to store bean instances - <literal>org.jboss."
+"weld.context.api.BeanStore</literal>. You may find <literal>org.jboss.weld."
+"context.api.helpers.ConcurrentHashMapBeanStore</literal> useful."
 msgstr ""
 
-#. Tag: para
-#: ri-spi.xml:282
+#. Tag: title
+#: ri-spi.xml:372
 #, no-c-format
-msgid "To boot the container you call <literal>Bootstrap.boot()</literal>."
+msgid "The application context"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:286
+#: ri-spi.xml:374
 #, no-c-format
 msgid ""
-"To shutdown the container you call <literal>Bootstrap.shutdown()</literal> "
-"or <literal>webBeansManager.shutdown()</literal>. This allows the container "
-"to perform any cleanup operations needed."
+"Weld expects the Application Server or other container to provide the "
+"storage for each application's context. The <literal>org.jboss.weld.context."
+"api.BeanStore</literal> should be implemented to provide an application "
+"scoped storage."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:296
+#: ri-spi.xml:383
 #, no-c-format
-msgid "JNDI"
-msgstr "JNDI"
+msgid "Initialization and shutdown"
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:298
+#: ri-spi.xml:384
 #, no-c-format
 msgid ""
-"Web Beans delegates all JNDI operations to the container through the SPI."
+"The <literal>org.jboss.weld.bootstrap.api.Bootstrap</literal> interface "
+"defines the initialization for Weld, bean deployment and bean validation. To "
+"boot Weld, you must create an instance of <literal>org.jboss.weld.bootstrap."
+"WeldBeansBootstrap</literal> (which implements <literal>Boostrap</literal>), "
+"tell it about the services in use, and then request the container start."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:304
+#: ri-spi.xml:391
 #, no-c-format
 msgid ""
-"A number of the SPI interface require JNDI lookup, and the class "
-"<literal>AbstractResourceServices</literal> provides JNDI/Java EE spec "
-"compliant lookup methods."
+"The bootstrap is split into phases, container initialization, bean "
+"deployment, bean validation and shutdown. Initialization will create a "
+"manager, and add the built-in contexts, and examine the deployment "
+"structure. Bean deployment will deploy any beans (defined using annotations, "
+"programtically, or built in). Bean validation will validate all beans."
 msgstr ""
 
-#. Tag: title
-#: ri-spi.xml:315
+#. Tag: para
+#: ri-spi.xml:398
 #, no-c-format
-msgid "Resource loading"
-msgstr "資源載入"
+msgid ""
+"To initialize the container, you call <literal>Bootstrap.startInitialization"
+"()</literal>. Before calling <literal>startInitialization()</literal>, you "
+"must register any services required by the environment. You can do this by "
+"calling, for example, <literal>bootstrap.getServices().add(JpaServices."
+"class, new MyJpaServices())</literal>. You must also provide the application "
+"context bean store."
+msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:317
-#, fuzzy, no-c-format
+#: ri-spi.xml:405
+#, no-c-format
 msgid ""
-"Web Beans needs to load classes and resources from the classpath at various "
-"times. By default, they are loaded from the Thread Context ClassLoader if "
-"available, if not the same classloader that was used to load Web Beans, "
-"however this may not be correct for some environments. If this is case, you "
-"can implement <literal>org.jboss.webbeans.spi.ResourceLoader</literal>:"
+"Having called <literal>startInitialization()</literal>, the "
+"<literal>Manager</literal> for each BDA can be obtained by calling "
+"<literal>Bootstrap.getManager(BeanDeploymentArchive bda)</literal>."
 msgstr ""
-"Web Beans RI 需要在各個時段由 classpath 載入類別和資源。就預設值,它們會被由"
-"和使用來載入 RI 相同的 classloader 所載入,不過這對於某些環境來說可能不是不正"
-"確的。若是如此,您可實做 <literal>org.jboss.webbeans.spi.ResourceLoader</"
-"literal>:"
 
-#. Tag: programlisting
-#: ri-spi.xml:326
+#. Tag: para
+#: ri-spi.xml:410
 #, no-c-format
 msgid ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
+"To deploy the discovered beans, call <literal>Bootstrap.deployBeans()</"
+"literal>."
 msgstr ""
-"<![CDATA[\n"
-"         public interface ResourceLoader {\n"
-"    \n"
-"   /**\n"
-"    * Creates a class from a given FQCN\n"
-"    * \n"
-"    * @param name The name of the clsas\n"
-"    * @return The class\n"
-"    */\n"
-"   public Class<?> classForName(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets a resource as a URL by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An URL to the resource\n"
-"    */\n"
-"   public URL getResource(String name);\n"
-"   \n"
-"   /**\n"
-"    * Gets resources as URLs by name\n"
-"    * \n"
-"    * @param name The name of the resource\n"
-"    * @return An iterable reference to the URLS\n"
-"    */\n"
-"   public Iterable<URL> getResources(String name);\n"
-"   \n"
-"}\n"
-"         ]]>"
 
-#. Tag: title
-#: ri-spi.xml:331
-#, fuzzy, no-c-format
-msgid "Servlet injection"
-msgstr "Servlet listener"
-
 #. Tag: para
-#: ri-spi.xml:333
+#: ri-spi.xml:414
 #, no-c-format
 msgid ""
-"Java EE / Servlet does not provide any hooks which can be used to provide "
-"injection into Servlets, so Web Beans provides an API to allow the container "
-"to request JSR-299 injection for a Servlet."
+"To validate the deployed beans, call <literal>Bootstrap.validateBeans()</"
+"literal>."
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:339
+#: ri-spi.xml:418
 #, no-c-format
 msgid ""
-"To be compliant with JSR-299, the container should request servlet injection "
-"for each newly instantiated servlet after the constructor returns and before "
-"the servlet is placed into service."
+"To place the container into a state where it can service requests, call "
+"<literal>Bootstrap.endInitialization()</literal>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:345
+#: ri-spi.xml:423
 #, no-c-format
 msgid ""
-"To perform injection on a servlet call <literal>WebBeansManager.injectServlet"
-"()</literal>. The manager can be obtained from <literal>Bootstrap.getManager"
-"()</literal>."
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
 msgstr ""
 
 #. Tag: title
-#: ri-spi.xml:356
+#: ri-spi.xml:431
 #, no-c-format
+msgid "Resource loading"
+msgstr "資源載入"
+
+#. Tag: para
+#: ri-spi.xml:433
+#, fuzzy, no-c-format
+msgid ""
+"Weld needs to load classes and resources from the classpath at various "
+"times. By default, they are loaded from the Thread Context ClassLoader if "
+"available, if not the same classloader that was used to load Weld, however "
+"this may not be correct for some environments. If this is case, you can "
+"implement <literal>org.jboss.weld.spi.ResourceLoader</literal>."
+msgstr ""
+"Web Beans RI 需要在各個時段由 classpath 載入類別和資源。就預設值,它們會被由"
+"和使用來載入 RI 相同的 classloader 所載入,不過這對於某些環境來說可能不是不正"
+"確的。若是如此,您可實做 <literal>org.jboss.webbeans.spi.ResourceLoader</"
+"literal>:"
+
+#. Tag: title
+#: ri-spi.xml:445
+#, no-c-format
 msgid "The contract with the container"
 msgstr "與 container 的合同"
 
 #. Tag: para
-#: ri-spi.xml:358
-#, no-c-format
+#: ri-spi.xml:447
+#, fuzzy, no-c-format
 msgid ""
-"There are a number of requirements that the Web Beans RI places on the "
-"container for correct functioning that fall outside implementation of APIs"
+"There are a number of requirements that Weld places on the container for "
+"correct functioning that fall outside implementation of APIs."
 msgstr "Web Bean RI 對於 container 有些需求以便達到 API 實做之外的正確的功能。"
 
 #. Tag: term
-#: ri-spi.xml:366
+#: ri-spi.xml:454
 #, no-c-format
 msgid "Classloader isolation"
 msgstr "Classloader 隔離"
 
 #. Tag: para
-#: ri-spi.xml:370
-#, no-c-format
+#: ri-spi.xml:458
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans RI into an environment that supports "
-"deployment of multiple applications, you must enable, automatically, or "
-"through user configuation, classloader isolation for each Web Beans "
-"application."
+"If you are integrating Weld into an environment that supports deployment of "
+"multiple applications, you must enable, automatically, or through user "
+"configuation, classloader isolation for each CDI application."
 msgstr ""
 "若您要將 Web Bean RI 整合入某個支援多重應用程式建置的環境中,您就必須為各個 "
 "Web Bean 應用程式透過自動的方式,或是透過用戶配置來啟用 classloader 隔離。"
 
 #. Tag: term
-#: ri-spi.xml:379
+#: ri-spi.xml:466
 #, no-c-format
 msgid "Servlet"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:383
-#, no-c-format
+#: ri-spi.xml:470
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a Servlet environment you must "
-"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
-"Servlet listener, either automatically, or through user configuration, for "
-"each Web Beans application which uses Servlet."
+"If you are integrating Weld into a Servlet environment you must register "
+"<literal>org.jboss.weld.servlet.WeldListener</literal> as a Servlet "
+"listener, either automatically, or through user configuration, for each CDI "
+"application which uses Servlet."
 msgstr ""
 "若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
 "Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
 "webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
 
+#. Tag: para
+#: ri-spi.xml:475
+#, no-c-format
+msgid ""
+"You must ensure that that <literal>WeldListener.contextInitialized()</"
+"literal> is called after beans are deployed is complete (<literal>Bootstrap."
+"deployBeans()</literal> has been called)."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:394
+#: ri-spi.xml:482
 #, no-c-format
 msgid "<term>JSF</term>"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:399
+#: ri-spi.xml:487
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> as "
-"a phase listener, and <literal>org.jboss.webbeans.el.WebBeansELREsolver</"
-"literal> as an EL resolver, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.WeldPhaseListener</literal> as a phase listener."
 msgstr ""
 "若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
 "Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
 "webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
 
 #. Tag: para
-#: ri-spi.xml:410
+#: ri-spi.xml:492
 #, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into a JSF environment you must "
-"register <literal>org.jboss.webbeans.servlet.ConversationPropagationFilter</"
-"literal> as a Servlet listener, either automatically, or through user "
-"configuration, for each Web Beans application which uses JSF. This filter "
-"can be registered for all Servlet deployment safely."
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
 msgstr ""
 "若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
 "Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
 "webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
 
 #. Tag: para
-#: ri-spi.xml:421
+#: ri-spi.xml:497
 #, no-c-format
-msgid "Web Beans only supports JSF 1.2 and above."
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSF in "
+"this web application."
 msgstr ""
 
+#. Tag: para
+#: ri-spi.xml:504
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSF for this "
+"web application."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:511 ri-spi.xml:557
+#, no-c-format
+msgid ""
+"There are a number of ways you can obtain the bean manager for the module. "
+"You could call <literal>Bootstrap.getManager()</literal>, passing in the BDA "
+"for this module. Alternatively, you could use the injection into Java EE "
+"component classes, or look up the bean manager in JNDI."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:518
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.servlet.ConversationPropagationFilter</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each CDI application which uses JSF. This filter can be registered for all "
+"Servlet deployment safely."
+msgstr ""
+"若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
+"Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
+"webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
+
+#. Tag: para
+#: ri-spi.xml:526
+#, no-c-format
+msgid "Weld only supports JSF 1.2 and above."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:428
+#: ri-spi.xml:533
 #, no-c-format
+msgid "<term>JSP</term>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must register "
+"<literal>org.jboss.weld.el.WeldELContextListener</literal> as an EL Context "
+"listener."
+msgstr ""
+"若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
+"Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
+"webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
+
+#. Tag: para
+#: ri-spi.xml:543
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager."
+"wrapExpressionFactory()</literal>, passing <literal>Application."
+"getExpressionFactory()</literal> as the argument. The wrapped expression "
+"factory must be used in all EL expression evaluations performed by JSP."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:550
+#, no-c-format
+msgid ""
+"If you are integrating Weld into a JSP environment you must obtain the bean "
+"manager for the module and then call <literal>BeanManager.getELResolver()</"
+"literal>, The returned EL resolver should be registered with JSP for this "
+"web application."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:567
+#, no-c-format
 msgid "Session Bean Interceptor"
 msgstr "Session Bean 攔截器"
 
 #. Tag: para
-#: ri-spi.xml:432
-#, no-c-format
+#: ri-spi.xml:571
+#, fuzzy, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an EJB environment you must "
-"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
-"a EJB interceptor for all EJBs in the application, either automatically, or "
-"through user configuration, for each Web Beans application which uses "
-"enterprise beans."
+"If you are integrating Weld into an EJB environment you must register "
+"<literal>org.jboss.weld.ejb.SessionBeanInterceptor</literal> as a EJB "
+"interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each CDI application which uses enterprise "
+"beans."
 msgstr ""
 "若您要將 Web Bean 整合入一個 EJB 環境中,您就必須針對於各個使用 enterprise "
 "bean 的 Web Bean 應用程式來為應用程式中的所有 EJB 透過自動的方式,或是透過用"
@@ -885,7 +918,7 @@
 "註冊為一個 EJB 攔截器。"
 
 #. Tag: para
-#: ri-spi.xml:442
+#: ri-spi.xml:578
 #, no-c-format
 msgid ""
 "You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -893,42 +926,482 @@
 msgstr ""
 
 #. Tag: term
-#: ri-spi.xml:450
+#: ri-spi.xml:586
 #, fuzzy, no-c-format
-msgid "The <literal>webbeans-core.jar</literal>"
+msgid "The <literal>weld-core.jar</literal>"
 msgstr "<literal>webbeans-ri.jar</literal>"
 
 #. Tag: para
-#: ri-spi.xml:454
-#, fuzzy, no-c-format
+#: ri-spi.xml:590
+#, no-c-format
 msgid ""
-"If you are integrating the Web Beans into an environment that supports "
-"deployment of applications, you must insert the <literal>webbeans-core.jar</"
-"literal> into the applications isolated classloader. It cannot be loaded "
-"from a shared classloader."
+"Weld can reside on an isolated classloader, or on a shared classloader. If "
+"you choose to use an isolated classloader, the default "
+"<literal>SingletonProvider</literal>, "
+"<literal>IsolatedStaticSingletonProvider</literal>, can be used. If you "
+"choose to use a shared classloader, then you will need to choose another "
+"strategy."
 msgstr ""
-"若您要將 Web Bean 整合入一個支援應用程式建置的環境中,您就必須將 "
-"<literal>webbeans-ri.jar</literal> 插入應用程式隔離的 classholder 中。它無法"
-"藉由共享的 classloader 來被載入。"
 
+#. Tag: para
+#: ri-spi.xml:596
+#, no-c-format
+msgid ""
+"You can provide your own implementation of <literal>Singleton</literal> and "
+"<literal>SingletonProvider</literal> and register it for use using "
+"<literal>SingletonProvider.initialize(SingletonProvider provider)</literal>."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:601
+#, no-c-format
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgstr ""
+
 #. Tag: term
-#: ri-spi.xml:464
+#: ri-spi.xml:608
 #, no-c-format
 msgid "Binding the manager in JNDI"
 msgstr ""
 
 #. Tag: para
-#: ri-spi.xml:468
+#: ri-spi.xml:612
 #, no-c-format
 msgid ""
-"You should bind a <literal>Reference</literal> to the Manager "
-"<literal>ObjectFactory</literal> into JNDI at <literal>java:app/Manager</"
-"literal>. The type should be <literal>javax.inject.manager.Manager</literal> "
-"and the factory class is <literal>org.jboss.webbeans.resources."
-"ManagerObjectFactory</literal>"
+"You should bind the bean manager for the bean deployment archive into JNDI "
+"at <literal>java:comp/Manager</literal>. The type should be <literal>javax."
+"enterprise.inject.spi.BeanManager</literal>. To obtain the correct bean "
+"manager for the bean deployment archive, you may call <literal>bootstrap."
+"getBeanManager(beanDeploymentArchive)</literal>"
 msgstr ""
 
+#. Tag: term
+#: ri-spi.xml:622
+#, no-c-format
+msgid "Performing CDI injection on Java EE component classes"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:626
+#, no-c-format
+msgid ""
+"The CDI specification requires the container to provide injection into non-"
+"contextual resources for all Java EE component classes. Weld delegates this "
+"responsibility to the container. This can be achieved using the CDI defined "
+"<literal>InjectionTarget</literal> SPI. Furthermore, you must perform this "
+"operation on the correct bean manager for the bean deployment archive "
+"containing the EE component class."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:634
+#, no-c-format
+msgid ""
+"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
+"literal> event is fired for every Java EE component class. Furthermore, if "
+"an observer calls <literal>ProcessInjectionTarget.setInjectionTarget()</"
+"literal> the container must use <emphasis>the specified</emphasis> injection "
+"target to perform injection."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:641
+#, no-c-format
+msgid ""
+"To help the integrator, Weld provides <literal>WeldManager."
+"fireProcessInjectionTarget()</literal> which returns the "
+"<literal>InjectionTarget</literal> to use."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:646
+#, no-c-format
+msgid ""
+"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
+"// to use\n"
+"InjectionTarget it = weldBeanManager.fireProcessInjectionTarget(clazz);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = beanManager.createCreationalContext(null);\n"
+"\n"
+"// Produce the instance, performing any constructor injection required\n"
+"Object instance = it.produce();\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:647
+#, no-c-format
+msgid ""
+"The container may intersperse other operations between these calls. Further, "
+"the integrator may choose to implement any of these calls in another manner, "
+"assuming the contract is fulfilled."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:651
+#, no-c-format
+msgid ""
+"When performing injections on EJBs you must use the Weld-defined SPI, "
+"<literal>WeldManager</literal>. Furthermore, you must perform this operation "
+"on the correct bean manager for the bean deployment archive containing the "
+"EJB."
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:656
+#, no-c-format
+msgid ""
+"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
+"// You may choose to use this utility method to get the descriptor\n"
+"EjbDescriptor<?> ejbDescriptor = beanManager.getEjbDescriptor(ejbName);\n"
+"\n"
+"// Get an the Bean object\n"
+"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
+"\n"
+"// Create the injection target\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
+"\n"
+"// Per instance required, create the creational context\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
+"\n"
+"// Perform injection and call initializers\n"
+"it.inject(instance, cc);\n"
+"\n"
+"// You may choose to have CDI call the post construct and pre destroy\n"
+"// lifecycle callbacks\n"
+"\n"
+"// Call the post-construct callback\n"
+"it.postConstruct(instance);\n"
+"\n"
+"// Call the pre-destroy callback\n"
+"it.preDestroy(instance);\n"
+"\n"
+"// Clean up the instance\n"
+"it.dispose();\n"
+"cc.release();]]>"
+msgstr ""
+
+#, fuzzy
 #~ msgid ""
+#~ "Currently Web Beans only runs in JBoss AS 5; integrating the RI into "
+#~ "other EE environments (for example another application server like "
+#~ "Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+#~ "EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+#~ "discuss the steps needed."
+#~ msgstr ""
+#~ "目前,Web Bean RI 只能在 JBoss AS 5 中執行;要將 RI 整合入其它 EE 環境中"
+#~ "(比方說另一個像是 Glassfish 的應用程式伺服器)、整合入一個 servlet 容器"
+#~ "(例如 Tomcat)中,或是和一個崁入式的 EJB3.1 實做整合都是相當容易的。在此"
+#~ "附錄中,我們將簡略地討論所需的步驟。"
+
+#~ msgid "Web Bean Discovery"
+#~ msgstr "Web Bean 搜尋"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[/**\n"
+#~ "    * Gets list of all classes in classpath archives with META-INF/beans."
+#~ "xml (or\n"
+#~ "    * for WARs WEB-INF/beans.xml) files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all deployment descriptors in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface WebBeanDiscovery {\n"
+#~ "   /**\n"
+#~ "    * Gets list of all classes in classpath archives with web-beans.xml "
+#~ "files\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the classes \n"
+#~ "    */\n"
+#~ "   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a list of all web-beans.xml files in the app classpath\n"
+#~ "    * \n"
+#~ "    * @return An iterable over the web-beans.xml files \n"
+#~ "    */\n"
+#~ "   public Iterable<URL> discoverWebBeansXml();\n"
+#~ "   \n"
+#~ "}]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "The discovery of Web Bean classes and <literal>beans.xml</literal> files "
+#~ "is self-explanatory (the algorithm is described in Section 11.1 of the "
+#~ "JSR-299 specification, and isn't repeated here)."
+#~ msgstr ""
+#~ "Web Bean 類別和 <literal>web-bean.xml</literal> 檔案的搜尋相當明顯(演算法"
+#~ "描述於 JSR-299 規格的章節 11.1 中,在此不重複)。"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web Beans also delegates EJB3 bean discovery to the container so that it "
+#~ "doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+#~ "literal>. For each EJB in the application an EJBDescriptor should be "
+#~ "discovered:"
+#~ msgstr ""
+#~ "Web Bean RI 也會委派 EJB3 bean discovery 至 container,因此它便無須掃描 "
+#~ "EJB3 記號或剖析 <literal>ejb-jar.xml</literal>。針對於應用程式中的各個 "
+#~ "EJB 都應該能發現一個 EJBDescriptor:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public interface EjbDescriptor<T>\n"
+#~ "{\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();]]>"
+#~ msgstr ""
+#~ "<![CDATA[public interface EjbDescriptor<T> {\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the EJB type\n"
+#~ "    * \n"
+#~ "    * @return The EJB Bean class\n"
+#~ "    */\n"
+#~ "   public Class<T> getType();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the local business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the local business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getLocalBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets the remote business interfaces of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remote business interfaces\n"
+#~ "    */\n"
+#~ "   public Iterable<BusinessInterfaceDescriptor<?>> "
+#~ "getRemoteBusinessInterfaces();\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Get the remove methods of the EJB\n"
+#~ "    * \n"
+#~ "    * @return An iterator over the remove methods\n"
+#~ "    */\n"
+#~ "   public Iterable<Method> getRemoveMethods();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is stateless\n"
+#~ "    * \n"
+#~ "    * @return True if stateless, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateless();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the bean is a EJB 3.1 Singleton\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is a singleton, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isSingleton();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is stateful\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is stateful, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isStateful();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Indicates if the EJB is and MDB\n"
+#~ "    * \n"
+#~ "    * @return True if the bean is an MDB, false otherwise\n"
+#~ "    */\n"
+#~ "   public boolean isMessageDriven();\n"
+#~ "\n"
+#~ "   /**\n"
+#~ "    * Gets the EJB name\n"
+#~ "    * \n"
+#~ "    * @return The name\n"
+#~ "    */\n"
+#~ "   public String getEjbName();\n"
+#~ "   \n"
+#~ "   \n"
+#~ "}]]>"
+
+#~ msgid "JNDI"
+#~ msgstr "JNDI"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "         public interface ResourceLoader {\n"
+#~ "    \n"
+#~ "   /**\n"
+#~ "    * Creates a class from a given FQCN\n"
+#~ "    * \n"
+#~ "    * @param name The name of the clsas\n"
+#~ "    * @return The class\n"
+#~ "    */\n"
+#~ "   public Class<?> classForName(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets a resource as a URL by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An URL to the resource\n"
+#~ "    */\n"
+#~ "   public URL getResource(String name);\n"
+#~ "   \n"
+#~ "   /**\n"
+#~ "    * Gets resources as URLs by name\n"
+#~ "    * \n"
+#~ "    * @param name The name of the resource\n"
+#~ "    * @return An iterable reference to the URLS\n"
+#~ "    */\n"
+#~ "   public Iterable<URL> getResources(String name);\n"
+#~ "   \n"
+#~ "}\n"
+#~ "         ]]>"
+
+#, fuzzy
+#~ msgid "Servlet injection"
+#~ msgstr "Servlet listener"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into a JSF environment you must "
+#~ "register <literal>org.jboss.webbeans.jsf.WebBeansPhaseListener</literal> "
+#~ "as a phase listener, and <literal>org.jboss.webbeans.el."
+#~ "WebBeansELREsolver</literal> as an EL resolver, either automatically, or "
+#~ "through user configuration, for each Web Beans application which uses JSF."
+#~ msgstr ""
+#~ "若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet "
+#~ "的 Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
+#~ "webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are integrating the Web Beans into an environment that supports "
+#~ "deployment of applications, you must insert the <literal>webbeans-core."
+#~ "jar</literal> into the applications isolated classloader. It cannot be "
+#~ "loaded from a shared classloader."
+#~ msgstr ""
+#~ "若您要將 Web Bean 整合入一個支援應用程式建置的環境中,您就必須將 "
+#~ "<literal>webbeans-ri.jar</literal> 插入應用程式隔離的 classholder 中。它無"
+#~ "法藉由共享的 classloader 來被載入。"
+
+#~ msgid ""
 #~ "It should be possible to run Web Beans in an SE environment, but you'll "
 #~ "to do more work, adding your own contexts and lifecycle. The Web Beans RI "
 #~ "currently doesn't expose lifecycle extension points, so you would have to "

Modified: doc/trunk/reference/zh-TW/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-TW/scopescontexts.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/scopescontexts.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: scopescontexts\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 16:49+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,20 +17,19 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: scopescontexts.xml:4
+#: scopescontexts.xml:5
 #, no-c-format
 msgid "Scopes and contexts"
 msgstr "Scope 與 context"
 
 #. Tag: para
-#: scopescontexts.xml:6
-#, no-c-format
+#: scopescontexts.xml:7
+#, fuzzy, no-c-format
 msgid ""
 "So far, we've seen a few examples of <emphasis>scope type annotations</"
-"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
-"the Web Bean. The scope also determines which clients refer to which "
-"instances of the Web Bean. According to the Web Beans specification, a scope "
-"determines:"
+"emphasis>. The scope of a bean determines the lifecycle of instances of the "
+"bean. The scope also determines which clients refer to which instances of "
+"the bean. According to the CDI specification, a scope determines:"
 msgstr ""
 "到目前為止,我們已見過了一些 <emphasis>scope 類型標記(scope type "
 "annotations)</emphasis>的範例了。Web Bean 的 scope 可決定 Web Bean instance "
@@ -38,30 +37,30 @@
 "instance。根據 Web Bean 規格,scope 可決定:"
 
 #. Tag: para
-#: scopescontexts.xml:14
-#, no-c-format
-msgid "When a new instance of any Web Bean with that scope is created"
+#: scopescontexts.xml:16
+#, fuzzy, no-c-format
+msgid "When a new instance of any bean with that scope is created"
 msgstr "任何含有該 scope 的 Web Bean 的新 instance 應何時被建立"
 
 #. Tag: para
-#: scopescontexts.xml:17
-#, no-c-format
-msgid "When an existing instance of any Web Bean with that scope is destroyed"
+#: scopescontexts.xml:19
+#, fuzzy, no-c-format
+msgid "When an existing instance of any bean with that scope is destroyed"
 msgstr "任何含有該 scope 的 Web Bean 的現有 instance 應何時被刪除"
 
 #. Tag: para
-#: scopescontexts.xml:20
-#, no-c-format
+#: scopescontexts.xml:22
+#, fuzzy, no-c-format
 msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+"Which injected references refer to any instance of a bean with that scope"
 msgstr "哪個被注入的參照代表含有該 scope 的 Web Bean 的任何 instance"
 
 #. Tag: para
-#: scopescontexts.xml:25
-#, no-c-format
+#: scopescontexts.xml:27
+#, fuzzy, no-c-format
 msgid ""
-"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
-"literal>, all Web Beans that are called in the context of the same "
+"For example, if we have a session-scoped bean, <literal>CurrentUser</"
+"literal>, all beans that are called in the context of the same "
 "<literal>HttpSession</literal> will see the same instance of "
 "<literal>CurrentUser</literal>. This instance will be automatically created "
 "the first time a <literal>CurrentUser</literal> is needed in that session, "
@@ -73,29 +72,37 @@
 "<literal>CurrentUser</literal> 在該 session 中第一次被需要時,這個 instance "
 "就會自動地被建立,並且在這個 session 結束時被自動地刪除掉。"
 
+#. Tag: para
+#: scopescontexts.xml:35
+#, no-c-format
+msgid ""
+"There's actually no way to remove a bean from a context until the entire "
+"context is destroyed."
+msgstr ""
+
 #. Tag: title
-#: scopescontexts.xml:32
+#: scopescontexts.xml:41
 #, no-c-format
 msgid "Scope types"
 msgstr "Scope type"
 
 #. Tag: para
-#: scopescontexts.xml:34
-#, no-c-format
+#: scopescontexts.xml:43
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
-"possible to define new scopes by creating a new scope type annotation:"
+"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
+"to define new scopes by creating a new scope type annotation:"
 msgstr ""
 "Web Bean 含有著一個 <emphasis>extensible context model(可延伸的 context 模"
 "型)</emphasis>。您可藉由建立新的 scope 類型標記來定義新的 scope:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:37
-#, no-c-format
+#: scopescontexts.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@ScopeType\n"
+"@Retention(RUNTIME)\n"
 "@Target({TYPE, METHOD})\n"
-"@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -104,13 +111,15 @@
 "public @interface ClusterScoped {}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:39
-#, no-c-format
+#: scopescontexts.xml:50
+#, fuzzy, no-c-format
 msgid ""
 "Of course, that's the easy part of the job. For this scope type to be "
 "useful, we will also need to define a <literal>Context</literal> object that "
 "implements the scope! Implementing a <literal>Context</literal> is usually a "
-"very technical task, intended for framework development only."
+"very technical task, intended for framework development only. You can expect "
+"an implementation of the business scope, for instance, in a future version "
+"of Seam."
 msgstr ""
 "當然,那是這項工作中最簡單的部份。若要此 scope 類型能被有效使用,我們還需要定"
 "義一個能夠實做該 scope 的 <literal>Context</literal> 物件!實做一個 "
@@ -118,17 +127,17 @@
 "(framework development)上。"
 
 #. Tag: para
-#: scopescontexts.xml:44
-#, no-c-format
+#: scopescontexts.xml:57
+#, fuzzy, no-c-format
 msgid ""
-"We can apply a scope type annotation to a Web Bean implementation class to "
-"specify the scope of the Web Bean:"
+"We can apply a scope type annotation to a bean implementation class to "
+"specify the scope of the bean:"
 msgstr ""
 "我們可套用一個 scope 類型標記至一個 Web Bean 實做 class 來指定 Web Bean 的 "
 "scope:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:47
+#: scopescontexts.xml:61
 #, no-c-format
 msgid ""
 "<![CDATA[@ClusterScoped\n"
@@ -138,55 +147,55 @@
 "public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:58
-#, no-c-format
-msgid "Usually, you'll use one of Web Beans' built-in scopes."
+#: scopescontexts.xml:63
+#, fuzzy, no-c-format
+msgid "Usually, you'll use one of CDI's built-in scopes."
 msgstr "您通常會使用到其中一個 Web Bean 的內建 scope。"
 
 #. Tag: title
-#: scopescontexts.xml:63
+#: scopescontexts.xml:68
 #, no-c-format
 msgid "Built-in scopes"
 msgstr "內建 scope"
 
 #. Tag: para
-#: scopescontexts.xml:65
-#, no-c-format
-msgid "Web Beans defines four built-in scopes:"
+#: scopescontexts.xml:70
+#, fuzzy, no-c-format
+msgid "CDI defines four built-in scopes:"
 msgstr "Web Bean 定義了四個內建的 scope:"
 
 #. Tag: literal
-#: scopescontexts.xml:69
+#: scopescontexts.xml:74
 #, no-c-format
 msgid "@RequestScoped"
 msgstr "@RequestScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:72
+#: scopescontexts.xml:77
 #, no-c-format
 msgid "@SessionScoped"
 msgstr "@SessionScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:75
+#: scopescontexts.xml:80
 #, no-c-format
 msgid "@ApplicationScoped"
 msgstr "@ApplicationScoped"
 
 #. Tag: literal
-#: scopescontexts.xml:78
+#: scopescontexts.xml:83
 #, no-c-format
 msgid "@ConversationScoped"
 msgstr "@ConversationScoped"
 
 #. Tag: para
-#: scopescontexts.xml:82
-#, no-c-format
-msgid "For a web application that uses Web Beans:"
+#: scopescontexts.xml:87
+#, fuzzy, no-c-format
+msgid "For a web application that uses CDI:"
 msgstr "使用 Web Bean 的網站應用程式:"
 
 #. Tag: para
-#: scopescontexts.xml:86
+#: scopescontexts.xml:91
 #, no-c-format
 msgid ""
 "any servlet request has access to active request, session and application "
@@ -195,55 +204,63 @@
 "任何 servlet 請求都可存取 active request、session 和應用程式 scope,另外"
 
 #. Tag: para
-#: scopescontexts.xml:90
+#: scopescontexts.xml:96
 #, no-c-format
 msgid "any JSF request has access to an active conversation scope."
 msgstr "任何 JSF 請求也都能存取一個現行的 conversation scope。"
 
 #. Tag: para
-#: scopescontexts.xml:94
+#: scopescontexts.xml:101
 #, no-c-format
+msgid ""
+"A CDI extension can support the conversation scope for other frameworks as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:104
+#, no-c-format
 msgid "The request and application scopes are also active:"
 msgstr "請求和應用程式 scope 在下列情況中會是有效的:"
 
 #. Tag: para
-#: scopescontexts.xml:98
+#: scopescontexts.xml:108
 #, no-c-format
 msgid "during invocations of EJB remote methods,"
 msgstr "當調用 EJB 的遠端 method 時、"
 
 #. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:111
 #, no-c-format
 msgid "during EJB timeouts,"
 msgstr "當 EJB 逾時時、"
 
 #. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:114
 #, no-c-format
 msgid "during message delivery to a message-driven bean, and"
 msgstr "當訊息傳送給訊息導向的 bean 時,以及"
 
 #. Tag: para
-#: scopescontexts.xml:107
+#: scopescontexts.xml:117
 #, no-c-format
 msgid "during web service invocations."
 msgstr "當進行網路服務調用時。"
 
 #. Tag: para
-#: scopescontexts.xml:111
-#, no-c-format
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
 msgid ""
-"If the application tries to invoke a Web Bean with a scope that does not "
-"have an active context, a <literal>ContextNotActiveException</literal> is "
-"thrown by the Web Bean manager at runtime."
+"If the application tries to invoke a bean with a scope that does not have an "
+"active context, a <literal>ContextNotActiveException</literal> is thrown by "
+"the container at runtime."
 msgstr ""
 "若應用程式嘗試透過一個沒有有效 context 的 scope 來引動 Web Bean 的話,Web "
 "Bean 管理員便會在 runtime 時回傳一項 <literal>ContextNotActiveException</"
 "literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:115
+#: scopescontexts.xml:126
 #, no-c-format
 msgid ""
 "Three of the four built-in scopes should be extremely familiar to every Java "
@@ -254,56 +271,57 @@
 "我們將不花時間在此討論它們。不過在這之中有個 scope 則是新的。"
 
 #. Tag: title
-#: scopescontexts.xml:122
+#: scopescontexts.xml:134
 #, no-c-format
 msgid "The conversation scope"
 msgstr "conversation scope"
 
 #. Tag: para
-#: scopescontexts.xml:124
-#, no-c-format
+#: scopescontexts.xml:136
+#, fuzzy, no-c-format
 msgid ""
-"The Web Beans conversation scope is a bit like the traditional session scope "
-"in that it holds state associated with a user of the system, and spans "
-"multiple requests to the server. However, unlike the session scope, the "
-"conversation scope:"
+"The conversation scope is a bit like the traditional session scope in that "
+"it holds state associated with a user of the system, and spans multiple "
+"requests to the server. However, unlike the session scope, the conversation "
+"scope:"
 msgstr ""
 "Web Bean 的 conversation scope 和傳統的 session scope 類似,它們都持有著有關"
 "於系統用戶的狀態,並發出多重請求至伺服器。conversation scope 和 session "
 "scope 不同的地方在於:"
 
 #. Tag: para
-#: scopescontexts.xml:130
+#: scopescontexts.xml:144
 #, no-c-format
 msgid "is demarcated explicitly by the application, and"
 msgstr "conversation scope 已被應用程式明確區分,並且"
 
 #. Tag: para
-#: scopescontexts.xml:133
+#: scopescontexts.xml:147
 #, no-c-format
 msgid ""
 "holds state associated with a particular web browser tab in a JSF "
-"application."
-msgstr "它在 JSF 應用程式中會持有和特定網站瀏覽器分頁相關的狀態。"
+"application (browsers tend to share domain cookies, and hence the session "
+"cookie, between tabs, so this is not the case for the session scope)."
+msgstr ""
 
 #. Tag: para
-#: scopescontexts.xml:138
-#, no-c-format
+#: scopescontexts.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"A conversation represents a task, a unit of work from the point of view of "
-"the user. The conversation context holds state associated with what the user "
-"is currently working on. If the user is doing multiple things at the same "
-"time, there are multiple conversations."
+"A conversation represents a task&#8212;a unit of work from the point of view "
+"of the user. The conversation context holds state associated with what the "
+"user is currently working on. If the user is doing multiple things at the "
+"same time, there are multiple conversations."
 msgstr ""
 "Conversation(對話)代表一項工作,從用戶角度來看是項工作的單位。conversation "
 "的 context 持有和用戶目前工作相關的狀態。若用戶同時間一次進行多項工作的話,那"
 "就會有多個 conversation。"
 
 #. Tag: para
-#: scopescontexts.xml:143
-#, no-c-format
+#: scopescontexts.xml:160
+#, fuzzy, no-c-format
 msgid ""
-"The conversation context is active during any JSF request. However, most "
+"The conversation context is active during any JSF request. Most "
 "conversations are destroyed at the end of the request. If a conversation "
 "should hold state across multiple requests, it must be explicitly promoted "
 "to a <emphasis>long-running conversation</emphasis>."
@@ -313,30 +331,29 @@
 "狀態,它便需要被明確地轉為 <emphasis>long-running conversation</emphasis>。"
 
 #. Tag: title
-#: scopescontexts.xml:149
+#: scopescontexts.xml:167
 #, no-c-format
 msgid "Conversation demarcation"
 msgstr "Conversation demarcation(對話區分)"
 
 #. Tag: para
-#: scopescontexts.xml:151
-#, no-c-format
+#: scopescontexts.xml:169
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
-"conversations in a JSF application. This Web Bean may be obtained by "
-"injection:"
+"CDI provides a built-in bean for controlling the lifecycle of conversations "
+"in a JSF application. This bean may be obtained by injection:"
 msgstr ""
 "Web Bean 提供了一個內建的 Web Bean,它可被用來在 JSF 應用程式中控制 "
 "conversation 的生命週期。這個 Web Bean 能透過注入下列來取得:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:154
-#, no-c-format
-msgid "@Current Conversation conversation;"
+#: scopescontexts.xml:174
+#, fuzzy, no-c-format
+msgid "@Inject Conversation conversation;"
 msgstr "@Current Conversation conversation;"
 
 #. Tag: para
-#: scopescontexts.xml:156
+#: scopescontexts.xml:176
 #, no-c-format
 msgid ""
 "To promote the conversation associated with the current request to a long-"
@@ -351,49 +368,47 @@
 "()</literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:161
-#, no-c-format
+#: scopescontexts.xml:182
+#, fuzzy, no-c-format
 msgid ""
-"In the following example, a conversation-scoped Web Bean controls the "
+"In the following example, a conversation-scoped bean controls the "
 "conversation with which it is associated:"
 msgstr ""
 "在下列範例中,有個 conversation-scoped 的 Web Bean 會控制和它關聯的 "
 "conversation:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:164
-#, no-c-format
+#: scopescontexts.xml:186
+#, fuzzy, no-c-format
 msgid ""
-"@ConversationScoped @Stateful\n"
+"<![CDATA[@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
+"   private Order order;\n"
+"   private @Inject Conversation conversation;\n"
+"   private @PersistenceContext(type = EXTENDED) EntityManager em;\n"
+"   \n"
+"   @Produces public Order getOrder() {\n"
+"      return order;\n"
+"   }\n"
 "\n"
-"    private Order order;\n"
-"    private @Current Conversation conversation;\n"
-"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
-"    \n"
-"    @Produces public Order getOrder() {\n"
-"        return order;\n"
-"    }\n"
+"   public Order createOrder() {\n"
+"      order = new Order();\n"
+"      conversation.begin();\n"
+"      return order;\n"
+"   }\n"
+"   \n"
+"   public void addLineItem(Product product, int quantity) {\n"
+"      order.add(new LineItem(product, quantity));\n"
+"   }\n"
 "\n"
-"    public Order createOrder() {\n"
-"        order = new Order();\n"
-"        conversation.begin();\n"
-"        return order;\n"
-"    }\n"
-"    \n"
-"    public void addLineItem(Product product, int quantity) {\n"
-"        order.add( new LineItem(product, quantity) );\n"
-"    }\n"
-"\n"
-"    public void saveOrder(Order order) {\n"
-"        em.persist(order);\n"
-"        conversation.end();\n"
-"    }\n"
-"    \n"
-"    @Remove\n"
-"    public void destroy() {}\n"
-"    \n"
-"}"
+"   public void saveOrder(Order order) {\n"
+"      em.persist(order);\n"
+"      conversation.end();\n"
+"   }\n"
+"   \n"
+"   @Remove\n"
+"   public void destroy() {}\n"
+"}]]>"
 msgstr ""
 "@ConversationScoped @Stateful\n"
 "public class OrderBuilder {\n"
@@ -427,43 +442,43 @@
 "}"
 
 #. Tag: para
-#: scopescontexts.xml:166
-#, no-c-format
+#: scopescontexts.xml:188
+#, fuzzy, no-c-format
 msgid ""
-"This Web Bean is able to control its own lifecycle through use of the "
-"<literal>Conversation</literal> API. But some other Web Beans have a "
-"lifecycle which depends completely upon another object."
+"This bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other beans have a lifecycle "
+"which depends completely upon another object."
 msgstr ""
 "這個 Web Bean 能夠透過使用 <literal>Conversation</literal> API 來控制它自己的"
 "生命週期。不過有些其它 Web Bean 的生命週期完全取決於另一個物件。"
 
 #. Tag: title
-#: scopescontexts.xml:173
+#: scopescontexts.xml:196
 #, no-c-format
 msgid "Conversation propagation"
 msgstr "Conversation propagation(傳播)"
 
 #. Tag: para
-#: scopescontexts.xml:175
-#, no-c-format
+#: scopescontexts.xml:198
+#, fuzzy, no-c-format
 msgid ""
 "The conversation context automatically propagates with any JSF faces request "
-"(JSF form submission). It does not automatically propagate with non-faces "
-"requests, for example, navigation via a link."
+"(JSF form submission) or redirect. It does not automatically propagate with "
+"non-faces requests, for example, navigation via a link."
 msgstr ""
 "conversation context 會隨著任何 JSF face 的請求(JSF form submission)自動地"
 "傳播。它不會隨著 non-face 的請求(例如透過連結來瀏覽)自動地傳播。"
 
 #. Tag: para
-#: scopescontexts.xml:179
-#, no-c-format
+#: scopescontexts.xml:203
+#, fuzzy, no-c-format
 msgid ""
 "We can force the conversation to propagate with a non-faces request by "
 "including the unique identifier of the conversation as a request parameter. "
-"The Web Beans specification reserves the request parameter named "
-"<literal>cid</literal> for this use. The unique identifier of the "
-"conversation may be obtained from the <literal>Conversation</literal> "
-"object, which has the Web Beans name <literal>conversation</literal>."
+"The CDI specification reserves the request parameter named <literal>cid</"
+"literal> for this use. The unique identifier of the conversation may be "
+"obtained from the <literal>Conversation</literal> object, which has the EL "
+"bean name <literal>conversation</literal>."
 msgstr ""
 "我們能夠透過包含 conversation 的唯一識別碼(unique identifier)來作為一個請求"
 "參數以強制 conversation 隨著 non-face 的請求進行傳播。Web Bean 規格保留了一個"
@@ -472,13 +487,13 @@
 "為 <literal>conversation</literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:186
+#: scopescontexts.xml:210
 #, no-c-format
 msgid "Therefore, the following link propagates the conversation:"
 msgstr "因此,下列連結會傳播 conversation:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:188
+#: scopescontexts.xml:214
 #, no-c-format
 msgid ""
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -488,35 +503,50 @@
 ">"
 
 #. Tag: para
-#: scopescontexts.xml:190
+#: scopescontexts.xml:216
 #, no-c-format
+msgid "It's probably better to use one of the link components in JSF 2:"
+msgstr ""
+
+#. Tag: programlisting
+#: scopescontexts.xml:220
+#, no-c-format
 msgid ""
-"The Web Bean manager is also required to propagate conversations across any "
-"redirect, even if the conversation is not marked long-running. This makes it "
-"very easy to implement the common POST-then-redirect pattern, without resort "
-"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
-"manager automatically adds a request parameter to the redirect URL."
+"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
+"   <f:param name=\"cid\" value=\"#{conversation.id}\"/>\n"
+"</h:link>]]>"
 msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:223
+#, fuzzy, no-c-format
+msgid ""
+"The conversation context propagates across redirects, making it very easy to "
+"implement the common POST-then-redirect pattern, without resort to fragile "
+"constructs such as a \"flash\" object. The container automatically adds the "
+"conversation id to the redirect URL as a request parameter."
+msgstr ""
 "Web Bean 管理員也必須將 conversation 在任何重定向作業之間進行傳播,儘管該 "
 "conversation 沒有被標記為 long-running。這使得實做一般的 POST-then-redirect "
 "模式變得非常簡單,這樣便無須使用一些像是「flash」物件的脆弱 construct。在此情"
 "況下,Web Bean 管理員會自動地新增一個請求參數至重定向 URL。"
 
 #. Tag: title
-#: scopescontexts.xml:200
+#: scopescontexts.xml:233
 #, no-c-format
 msgid "Conversation timeout"
 msgstr "Conversation timeout(逾時)"
 
 #. Tag: para
-#: scopescontexts.xml:202
-#, no-c-format
+#: scopescontexts.xml:235
+#, fuzzy, no-c-format
 msgid ""
-"The Web Bean manager is permitted to destroy a conversation and all state "
-"held in its context at any time in order to preserve resources. A Web Bean "
-"manager implementation will normally do this on the basis of some kind of "
-"timeout &#151; though this is not required by the Web Beans specification. "
-"The timeout is the period of inactivity before the conversation is destroyed."
+"The container is permitted to destroy a conversation and all state held in "
+"its context at any time in order to conserve resources. A CDI implementation "
+"will normally do this on the basis of some kind of timeout&#8212;though this "
+"is not required by the specification. The timeout is the period of "
+"inactivity before the conversation is destroyed (as opposed to the amount of "
+"time the conversation is active)."
 msgstr ""
 "Web Bean 管理員能夠隨時隨地刪除它 context 中的 conversation 以及所有狀態以保"
 "留資源。一個 Web Bean 管理員實做一般會利用某種形式的 timeout 來這麼作 &#151; "
@@ -524,138 +554,114 @@
 "經過的休止狀態時間。"
 
 #. Tag: para
-#: scopescontexts.xml:208
-#, no-c-format
+#: scopescontexts.xml:242
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Conversation</literal> object provides a method to set the "
-"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"timeout. This is a hint to the container, which is free to ignore the "
 "setting."
 msgstr ""
 "<literal>Conversation</literal> 這個物件提供了一個能設置 timeout 的 method。"
 "這是個給 Web Bean 管理員的提示,您可忽略該設定。"
 
 #. Tag: programlisting
-#: scopescontexts.xml:212
+#: scopescontexts.xml:247
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
 msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
-#: scopescontexts.xml:218
+#: scopescontexts.xml:254
 #, no-c-format
 msgid "The dependent pseudo-scope"
 msgstr "dependent pseudo-scope"
 
 #. Tag: para
-#: scopescontexts.xml:220
-#, no-c-format
+#: scopescontexts.xml:256
+#, fuzzy, no-c-format
 msgid ""
-"In addition to the four built-in scopes, Web Beans features the so-called "
+"In addition to the four built-in scopes, CDI features the so-called "
 "<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
-"Web Bean which does not explicitly declare a scope type."
+"bean which does not explicitly declare a scope type."
 msgstr ""
 "除了這四個內建的 scope,Web Bean 還提供了一項稱為 <emphasis>dependent pseudo-"
 "scope</emphasis> 的功能。這是個未明確宣告 scope 類型的 Web Bean 的預設 "
 "scope。"
 
 #. Tag: para
-#: scopescontexts.xml:224
-#, no-c-format
+#: scopescontexts.xml:261
+#, fuzzy, no-c-format
 msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+"For example, this bean has the scope type <literal>@Dependent</literal>:"
 msgstr "比方說,這個 Web Bean 的 scope 類型為 <literal>@Dependent</literal>:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:226
+#: scopescontexts.xml:265
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
 msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:228
+#: scopescontexts.xml:267
 #, no-c-format
 msgid ""
-"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
-"new instance of the dependent Web Bean is created every time the first Web "
-"Bean is instantiated. Instances of dependent Web Beans are never shared "
-"between different Web Beans or different injection points. They are "
-"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+"An instances of a dependent bean is never shared between different clients "
+"or different injection points. It is strictly a <emphasis>dependent object</"
+"emphasis> of some other object. It is instantiated when the object it "
+"belongs to is created, and destroyed when the object it belongs to is "
+"destroyed."
 msgstr ""
-"當 Web Bean 的一個注入點解析至一個相依 Web Bean 時,每當第一個 Web Bean 被例"
-"示(instantiate)時,相依 Web Bean 的一個新的 instance 就會被建立。相依 Web "
-"Bean 的 instance 絕不會被共享於不同的 Web Bean 或不同的注入點之間。它們是其"
-"它 Web Bean instance 的 <emphasis>dependent object(相依物件)</emphasis>。"
 
 #. Tag: para
-#: scopescontexts.xml:234
-#, no-c-format
+#: scopescontexts.xml:273
+#, fuzzy, no-c-format
 msgid ""
-"Dependent Web Bean instances are destroyed when the instance they depend "
-"upon is destroyed."
+"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
+"is already declared as a bean with some other scope type."
 msgstr ""
-"相依 Web Bean 的 instance 會在它們所依賴的 instance 被刪除掉時跟著被一起刪"
-"除。"
-
-#. Tag: para
-#: scopescontexts.xml:242
-#, no-c-format
-msgid ""
-"Web Beans makes it easy to obtain a dependent instance of a Java class or "
-"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
-"with some other scope type."
-msgstr ""
 "Web Bean 使得取得 Java class 或是 EJB bean 的相依 instance 變得相當容易,儘管"
 "該 class 或是 EJB bean 已被宣告為一個含有其牠 scope 類型的 Web Bean。"
 
 #. Tag: title
-#: scopescontexts.xml:247
-#, no-c-format
-msgid "The <literal>@New</literal> annotation"
+#: scopescontexts.xml:281
+#, fuzzy, no-c-format
+msgid "The <literal>@New</literal> qualifier"
 msgstr "<literal>@New</literal> 標記"
 
 #. Tag: para
-#: scopescontexts.xml:249
+#: scopescontexts.xml:283
 #, no-c-format
 msgid ""
-"The built-in <literal>@New</literal> binding annotation allows "
-"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
-"injection point. Suppose we declare the following injected field:"
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
 msgstr ""
-"內建的 <literal>@New</literal> 綁定標記允許在注入點能夠有<emphasis>暗示性</"
-"emphasis>的相依 Web Bean 定義。假設我們宣告下列被注入的欄位:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:253
-#, no-c-format
-msgid "<![CDATA[@New Calculator calculator;]]>"
+#: scopescontexts.xml:287
+#, fuzzy, no-c-format
+msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
 msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
-#: scopescontexts.xml:255
+#: scopescontexts.xml:289
 #, no-c-format
 msgid ""
-"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
-"<literal>@New</literal>, API type <literal>Calculator</literal>, "
-"implementation class <literal>Calculator</literal> and deployment type "
-"<literal>@Standard</literal> is implicitly defined."
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
 msgstr ""
-"如此一來有個含有 scope <literal>@Dependent</literal>、綁定類型 "
-"<literal>@New</literal>、API 類型 <literal>Calculator</literal>、實做 class "
-"<literal>Calculator</literal> 以及建置類型 <literal>@Standard</literal> 的 "
-"Web Bean 就被暗示性地定義了。"
 
 #. Tag: para
-#: scopescontexts.xml:260
-#, no-c-format
+#: scopescontexts.xml:291
+#, fuzzy, no-c-format
 msgid ""
-"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"This works even if <literal>Calculator</literal> is <emphasis>already</"
 "emphasis> declared with a different scope type, for example:"
 msgstr ""
 "就算 <literal>Calculator</literal> <emphasis>已經</emphasis>被宣告為不同 "
 "scope type,這還是有效的,比方說:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:263
+#: scopescontexts.xml:296
 #, no-c-format
 msgid ""
 "<![CDATA[@ConversationScoped\n"
@@ -665,7 +671,7 @@
 "public class Calculator { ... }]]>"
 
 #. Tag: para
-#: scopescontexts.xml:265
+#: scopescontexts.xml:298
 #, no-c-format
 msgid ""
 "So the following injected attributes each get a different instance of "
@@ -675,14 +681,12 @@
 "instance:"
 
 #. Tag: programlisting
-#: scopescontexts.xml:268
-#, no-c-format
+#: scopescontexts.xml:302
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[public class PaymentCalc {\n"
-"\n"
-"    @Current Calculator calculator;\n"
-"    @New Calculator newCalculator;\n"
-"\n"
+"   @Inject Calculator calculator;\n"
+"   @Inject @New Calculator newCalculator;\n"
 "}]]>"
 msgstr ""
 "<![CDATA[public class PaymentCalc {\n"
@@ -693,7 +697,7 @@
 "}]]>"
 
 #. Tag: para
-#: scopescontexts.xml:270
+#: scopescontexts.xml:304
 #, no-c-format
 msgid ""
 "The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -707,10 +711,55 @@
 "週期取決於擁有它的 <literal>PaymentCalc</literal>。"
 
 #. Tag: para
-#: scopescontexts.xml:275
+#: scopescontexts.xml:310
 #, no-c-format
 msgid ""
 "This feature is particularly useful with producer methods, as we'll see in "
 "the next chapter."
 msgstr ""
 "這項功能對於 producer method 來講特別有幫助,我們將在下個章節中討論到。"
+
+#~ msgid ""
+#~ "holds state associated with a particular web browser tab in a JSF "
+#~ "application."
+#~ msgstr "它在 JSF 應用程式中會持有和特定網站瀏覽器分頁相關的狀態。"
+
+#~ msgid ""
+#~ "When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+#~ "new instance of the dependent Web Bean is created every time the first "
+#~ "Web Bean is instantiated. Instances of dependent Web Beans are never "
+#~ "shared between different Web Beans or different injection points. They "
+#~ "are <emphasis>dependent objects</emphasis> of some other Web Bean "
+#~ "instance."
+#~ msgstr ""
+#~ "當 Web Bean 的一個注入點解析至一個相依 Web Bean 時,每當第一個 Web Bean 被"
+#~ "例示(instantiate)時,相依 Web Bean 的一個新的 instance 就會被建立。相依 "
+#~ "Web Bean 的 instance 絕不會被共享於不同的 Web Bean 或不同的注入點之間。它"
+#~ "們是其它 Web Bean instance 的 <emphasis>dependent object(相依物件)</"
+#~ "emphasis>。"
+
+#~ msgid ""
+#~ "Dependent Web Bean instances are destroyed when the instance they depend "
+#~ "upon is destroyed."
+#~ msgstr ""
+#~ "相依 Web Bean 的 instance 會在它們所依賴的 instance 被刪除掉時跟著被一起刪"
+#~ "除。"
+
+#~ msgid ""
+#~ "The built-in <literal>@New</literal> binding annotation allows "
+#~ "<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+#~ "injection point. Suppose we declare the following injected field:"
+#~ msgstr ""
+#~ "內建的 <literal>@New</literal> 綁定標記允許在注入點能夠有<emphasis>暗示性"
+#~ "</emphasis>的相依 Web Bean 定義。假設我們宣告下列被注入的欄位:"
+
+#~ msgid ""
+#~ "Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+#~ "<literal>@New</literal>, API type <literal>Calculator</literal>, "
+#~ "implementation class <literal>Calculator</literal> and deployment type "
+#~ "<literal>@Standard</literal> is implicitly defined."
+#~ msgstr ""
+#~ "如此一來有個含有 scope <literal>@Dependent</literal>、綁定類型 "
+#~ "<literal>@New</literal>、API 類型 <literal>Calculator</literal>、實做 "
+#~ "class <literal>Calculator</literal> 以及建置類型 <literal>@Standard</"
+#~ "literal> 的 Web Bean 就被暗示性地定義了。"

Modified: doc/trunk/reference/zh-TW/specialization.po
===================================================================
--- doc/trunk/reference/zh-TW/specialization.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/specialization.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: specialization\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-18 16:31+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-20 11:42+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,31 +17,129 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: specialization.xml:4
+#: specialization.xml:5
 #, no-c-format
-msgid "Specialization"
-msgstr "專門化(Specialization)"
+msgid "Specialization, inheritance and alternatives"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:6
+#: specialization.xml:7
 #, no-c-format
 msgid ""
-"We've already seen how the Web Beans dependency injection model lets us "
-"<emphasis>override</emphasis> the implementation of an API at deployment "
-"time. For example, the following enterprise Web Bean provides an "
-"implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "我們已經看過了 Web Bean 的依賴注入模型如何讓我們在建置時<emphasis>置換(override)</emphasis>了一個 API 的實做。比方說,下列企業級的 Web Bean 在生產時提供了 <literal>PaymentProcessor</literal> 這個 API 的一個實做:"
+"When you first start developing with CDI, you'll likely be dealing only with "
+"a single bean implementation for each bean type. In this case, it's easy to "
+"understand how beans get selected for injection. As the complexity of your "
+"application grows, multiple occurrences of the same bean type start "
+"appearing, either because you have multiple implementations or two beans "
+"share a common (Java) inheritance. That's when you have to begin studying "
+"the specialization, inheritance and alternative rules to work through "
+"unsatisfied or ambiguous dependencies or to avoid certain beans from being "
+"called."
+msgstr ""
 
-#. Tag: programlisting
-#: specialization.xml:11
+#. Tag: para
+#: specialization.xml:16
 #, no-c-format
 msgid ""
+"The CDI specification recognizes two distinct scenarios in which one bean "
+"extends another:"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:23
+#, no-c-format
+msgid ""
+"The second bean <emphasis>specializes</emphasis> the first bean in certain "
+"deployment scenarios. In these deployments, the second bean completely "
+"replaces the first, fulfilling the same role in the system."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:29
+#, no-c-format
+msgid ""
+"The second bean is simply reusing the Java implementation, and otherwise "
+"bears no relation to the first bean. The first bean may not even have been "
+"designed for use as a contextual object."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:37
+#, no-c-format
+msgid ""
+"The second case is the default assumed by CDI. It's possible to have two "
+"beans in the system with the same part bean type (interface or parent "
+"class). As you've learned, you select between the two implementations using "
+"qualifiers."
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:43
+#, no-c-format
+msgid ""
+"The first case is the exception, and also requires more care. In any given "
+"deployment, only one bean can fulfill a given role at a time. That means one "
+"bean needs to be enabled and the other disabled. There are a two modifiers "
+"involved: <literal>@Alternative</literal> and <literal>@Specializes</"
+"literal>. We'll start by looking at alternatives and then show the "
+"guarantees that specialization adds."
+msgstr ""
+
+#. Tag: title
+#: specialization.xml:51
+#, no-c-format
+msgid "Using alternative stereotypes"
+msgstr ""
+
+#. Tag: para
+#: specialization.xml:53
+#, fuzzy, no-c-format
+msgid ""
+"CDI lets you <emphasis>override</emphasis> the implementation of a bean type "
+"at deployment time using an alternative. For example, the following bean "
+"provides a default implementation of the <literal>PaymentProcessor</literal> "
+"interface:"
+msgstr ""
+"我們已經看過了 Web Bean 的依賴注入模型如何讓我們在建置時<emphasis>置換"
+"(override)</emphasis>了一個 API 的實做。比方說,下列企業級的 Web Bean 在生"
+"產時提供了 <literal>PaymentProcessor</literal> 這個 API 的一個實做:"
+
+#. Tag: programlisting
+#: specialization.xml:59
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public class DefaultPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
 "    ...\n"
 "}"
+
+#. Tag: para
+#: specialization.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"But in our staging environment, we don't really want to submit payments to "
+"the external system, so we override that implementation of "
+"<literal>PaymentProcessor</literal> with a different bean:"
 msgstr ""
+"不過在我們的中繼環境(staging environment)中,我們利用了不同的 Web Bean 來置"
+"換了 <literal>PaymentProcessor</literal> 的實做:"
+
+#. Tag: programlisting
+#: specialization.xml:66
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
 "@CreditCard @Stateless\n"
 "public class CreditCardPaymentProcessor \n"
 "        implements PaymentProcessor {\n"
@@ -49,156 +147,207 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:13
+#: specialization.xml:68
 #, no-c-format
-msgid ""
-"But in our staging environment, we override that implementation of "
-"<literal>PaymentProcessor</literal> with a different Web Bean:"
-msgstr "不過在我們的中繼環境(staging environment)中,我們利用了不同的 Web Bean 來置換了 <literal>PaymentProcessor</literal> 的實做:"
+msgid "<para>or</para>"
+msgstr ""
 
 #. Tag: programlisting
-#: specialization.xml:16
-#, no-c-format
+#: specialization.xml:70
+#, fuzzy, no-c-format
 msgid ""
-"@CreditCard @Stateless @Staging\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[public @Alternative\n"
+"class StagingPaymentProcessor \n"
+"      extends DefaultPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
-"@CreditCard @Stateless @Staging\n"
+"@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
-"        implements PaymentProcessor {\n"
+"        extends CreditCardPaymentProcessor {\n"
 "    ...\n"
 "}"
 
 #. Tag: para
-#: specialization.xml:18
+#: specialization.xml:72
 #, no-c-format
 msgid ""
-"What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
-"literal> is to completely replace <literal>AsyncPaymentProcessor</literal> "
-"in a particular deployment of the system. In that deployment, the deployment "
-"type <literal>@Staging</literal> would have a higher priority than the "
-"default deployment type <literal>@Production</literal>, and therefore "
-"clients with the following injection point:"
-msgstr "我們嘗試要對 <literal>StagingCreditCardPaymentProcessor</literal> 進行的就是在系統的某個特定的 deployment 中完全地替換掉 <literal>AsyncPaymentProcessor</literal>。在該 deployment 中,<literal>@Staging</literal> 這個 deployment type 將會擁有比 <literal>@Production</literal> 這個預設 deployment type 還要高的優先權,因此含有下列注入點的客戶端:"
+"We've already seen how we can enable this alternative by listing its class "
+"in the <literal>beans.xml</literal> descriptor."
+msgstr ""
 
+#. Tag: para
+#: specialization.xml:77
+#, no-c-format
+msgid ""
+"But suppose we have many alternatives in the staging environment. It would "
+"be much more convenient to be able to enable them all at once. So let's make "
+"<literal>@Staging</literal> an <literal>@Alternative</literal> stereotype "
+"and annotate the staging beans with this stereotype instead. You'll see how "
+"this level of indirection pays off. First, we create the stereotype:"
+msgstr ""
+
 #. Tag: programlisting
-#: specialization.xml:24
+#: specialization.xml:84
 #, no-c-format
-msgid "@CreditCard PaymentProcessor ccpp"
-msgstr "@CreditCard PaymentProcessor ccpp"
+msgid ""
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"public @interface Staging {}]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:26
+#: specialization.xml:86
 #, no-c-format
 msgid ""
-"Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
-"literal>."
-msgstr "將會收到 <literal>StagingCreditCardPaymentProcessor</literal> 的一個 instance。"
+"Then we replace the <literal>@Alternative</literal> annotation on our bean "
+"with <literal>@Staging</literal>:"
+msgstr ""
 
+#. Tag: programlisting
+#: specialization.xml:90
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Staging\n"
+"public class StagingPaymentProcessor \n"
+"      implements PaymentProcessor {\n"
+"   ...\n"
+"}]]>"
+msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
+
 #. Tag: para
-#: specialization.xml:28
+#: specialization.xml:92
 #, no-c-format
-msgid "Unfortunately, there are several traps we can easily fall into:"
-msgstr "不過我們有幾點需要小心:"
+msgid ""
+"Finally, we activate the <literal>@Staging</literal> stereotype in the "
+"<literal>beans.xml</literal> descriptor:"
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:32
+#. Tag: programlisting
+#: specialization.xml:96
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not implement all the API types of the Web "
-"Bean that it attempts to override,"
-msgstr "優先權較高的 Web Bean 無法實做它所嘗試置換的 Web Bean 的所有 API 類型、"
+"<![CDATA[<beans\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd\">\n"
+"   <alternatives>\n"
+"         <stereotype>org.mycompany.myapp.Staging</stereotype>\n"
+"   </alternatives>\n"
+"</beans>]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:36
+#: specialization.xml:98
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean may not declare all the binding types of the "
-"Web Bean that it attempts to override,"
-msgstr "優先權較高的 Web Bean 無法宣告它所嘗試置換的 Web Bean 的所有綁定類型、"
+"Now, no matter how many staging beans we have, they will all be enabled at "
+"once."
+msgstr ""
 
+#. Tag: title
+#: specialization.xml:105
+#, no-c-format
+msgid "A minor problem with alternatives"
+msgstr ""
+
 #. Tag: para
-#: specialization.xml:40
+#: specialization.xml:107
 #, no-c-format
 msgid ""
-"the higher-priority Web Bean might not have the same name as the Web Bean "
-"that it attempts to override, or"
-msgstr "優先權較高的 Web Bean 無法擁有與它所嘗試置換的 Web Bean 相同的名稱,或是"
+"When we enable an alternative, does that mean the default implementation is "
+"disabled? Well, not exactly. If the default implementation has a qualifier, "
+"for instance <literal>@LargeTransaction</literal>, and the alternative does "
+"not, you could still inject the default implementation."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:44
+#. Tag: programlisting
+#: specialization.xml:113
 #, no-c-format
 msgid ""
-"the Web Bean that it attempts to override might declare a producer method, "
-"disposal method or observer method."
-msgstr "它所嘗試置換的 Web Bean 可能能夠宣告一個 producer method、disposal method 或是 observer method。"
+"<![CDATA[@Inject @LargeTransaction PaymentProcessor paymentProcessor;]]>"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:49
+#: specialization.xml:115
 #, no-c-format
 msgid ""
-"In each of these cases, the Web Bean that we tried to override could still "
-"be called at runtime. Therefore, overriding is somewhat prone to developer "
-"error."
-msgstr "在各個情況下,我們所嘗試置換的 Web Bean 都還是可能在 runtime 時被調用。因此,置換可能會造成開發上的錯誤。"
+"So we haven't completely replaced the default implementation in this "
+"deployment of the system. The only way one bean can completely override a "
+"second bean at all injection points is if it implements all the bean types "
+"and declares all the qualifiers of the second bean. However, if the second "
+"bean declares a producer method or observer method, then even this is not "
+"enough to ensure that the second bean is never called! We need something "
+"extra."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:52
-#, no-c-format
+#: specialization.xml:123
+#, fuzzy, no-c-format
 msgid ""
-"Web Beans provides a special feature, called <emphasis>specialization</"
-"emphasis>, that helps the developer avoid these traps. Specialization looks "
-"a little esoteric at first, but it's easy to use in practice, and you'll "
-"really appreciate the extra security it provides."
-msgstr "Web Bean 提供了一項特殊的功能稱為 <emphasis>specialization</emphasis>,它可協助開發人員避免發生這些錯誤。Specialization 一開始看起來似乎有些難懂,不過實際上卻相當易於使用,並且您將會慶幸擁有它所提供的額外安全性。"
+"CDI provides a special feature, called <emphasis>specialization</emphasis>, "
+"that helps the developer avoid these traps. Specialization is a way of "
+"informing the system of your intent to completely replace and disable an "
+"implementation of a bean."
+msgstr ""
+"Web Bean 提供了一項特殊的功能稱為 <emphasis>specialization</emphasis>,它可協"
+"助開發人員避免發生這些錯誤。Specialization 一開始看起來似乎有些難懂,不過實際"
+"上卻相當易於使用,並且您將會慶幸擁有它所提供的額外安全性。"
 
 #. Tag: title
-#: specialization.xml:58
+#: specialization.xml:132
 #, no-c-format
 msgid "Using specialization"
 msgstr "使用 specialization"
 
 #. Tag: para
-#: specialization.xml:60
+#: specialization.xml:134
 #, no-c-format
 msgid ""
-"Specialization is a feature that is specific to simple and enterprise Web "
-"Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr "Specialization 是一項基於基本和企業級 Web Bean 的功能。若要有效使用 specialization,擁有較高優先權的 Web Bean 必須:"
+"When the goal is to replace one bean implementation with a second, to help "
+"prevent developer error, the first bean may:"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:65
+#: specialization.xml:141
 #, no-c-format
-msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr "是個它所置換的 Web Bean 的直接 subclass,並且"
+msgid "directly extend the bean class of the second bean, or"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:68
+#: specialization.xml:146
 #, no-c-format
 msgid ""
-"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
-"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
-"and"
-msgstr "若它所置換的 Web Bean 是個基本的 Web Bean,它就必須是個基本 Web Bean,或是若它所置換的 Web Bean 是個企業級的 Web Bean,那它就必須是個企業級的 Web Bean,並且"
+"directly override the producer method, in the case that the second bean is a "
+"producer method, and then"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:73
-#, no-c-format
-msgid "be annotated <literal>@Specializes</literal>."
-msgstr "需被標記 <literal>@Specializes</literal>。"
+#: specialization.xml:152
+#, fuzzy, no-c-format
+msgid ""
+"explicitly declare that it <emphasis>specializes</emphasis> the second bean:"
+msgstr ""
+"優先權較高的 Web Bean 會 <emphasis>specializes</emphasis> 它的 superclass。"
 
 #. Tag: programlisting
-#: specialization.xml:77
-#, no-c-format
+#: specialization.xml:154
+#, fuzzy, no-c-format
 msgid ""
-"@Stateless @Staging @Specializes\n"
-"public class StagingCreditCardPaymentProcessor \n"
-"        extends CreditCardPaymentProcessor {\n"
-"    ...\n"
-"}"
+"<![CDATA[@Alternative @Specializes\n"
+"public class MockCreditCardPaymentProcessor \n"
+"      extends CreditCardPaymentProcessor {\n"
+"   ...\n"
+"}]]>"
 msgstr ""
 "@Stateless @Staging @Specializes\n"
 "public class StagingCreditCardPaymentProcessor \n"
@@ -207,103 +356,202 @@
 "}"
 
 #. Tag: para
-#: specialization.xml:79
+#: specialization.xml:156
 #, no-c-format
 msgid ""
-"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
-"its superclass."
-msgstr "優先權較高的 Web Bean 會 <emphasis>specializes</emphasis> 它的 superclass。"
+"When an enabled bean specializes another bean, the other bean is never "
+"instantiated or called by the container. Even if the other bean defines a "
+"producer or observer method, the method will never be called."
+msgstr ""
 
-#. Tag: title
-#: specialization.xml:85
-#, no-c-format
-msgid "Advantages of specialization"
-msgstr "Specializarion 的優點"
-
 #. Tag: para
-#: specialization.xml:87
+#: specialization.xml:161
 #, no-c-format
-msgid "When specialization is used:"
-msgstr "當使用了 specialization 時:"
-
-#. Tag: para
-#: specialization.xml:91
-#, no-c-format
 msgid ""
-"the binding types of the superclass are automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
-msgstr "superclass 的綁定類型就會自動地被標記為 <literal>@Specializes</literal> 的 Web Bean 繼承,並且"
+"So why does specialization work, and what does it have to do with "
+"inheritance?"
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:95
+#: specialization.xml:165
 #, no-c-format
 msgid ""
-"the Web Bean name of the superclass is automatically inherited by the Web "
-"Bean annotated <literal>@Specializes</literal>, and"
-msgstr "superclass 的 Web Bean 名稱會自動地被標記為 <literal>@Specializes</literal> 的 Web Bean 繼承,並且"
+"Since we're informing the container that our alternative bean is meant to "
+"stand in as a replacement for the default implementation, the alternative "
+"implementation automatically inherits all qualifiers of the default "
+"implementation. Thus, in our example, "
+"<literal>MockCreditCardPaymentProcessor</literal> inherits the qualifiers "
+"<literal>@Default</literal> and <literal>@CreditCard</literal>."
+msgstr ""
 
 #. Tag: para
-#: specialization.xml:99
+#: specialization.xml:172
 #, no-c-format
 msgid ""
-"producer methods, disposal methods and observer methods declared by the "
-"superclass are called upon an instance of the Web Bean annotated "
-"<literal>@Specializes</literal>."
-msgstr "superclass 所宣告的 producer method、disposal method 以及 observer method 會被一個標記了 <literal>@Specializes</literal> 的 Web Bean instance 調用。"
+"Furthermore, if the default implementation declares a bean EL name using "
+"<literal>@Named</literal>, the name is inherited by the specialized "
+"alternative bean."
+msgstr ""
 
-#. Tag: para
-#: specialization.xml:105
-#, no-c-format
-msgid ""
-"In our example, the binding type <literal>@CreditCard</literal> of "
-"<literal>CreditCardPaymentProcessor</literal> is inherited by "
-"<literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr "在我們的範例中,<literal>CreditCardPaymentProcessor</literal> 的 <literal>@CreditCard</literal> 綁定類型會被 <literal>StagingCreditCardPaymentProcessor</literal> 繼承。"
+#~ msgid "Specialization"
+#~ msgstr "專門化(Specialization)"
 
-#. Tag: para
-#: specialization.xml:109
-#, no-c-format
-msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr "另外,Web Bean 管理員會針對於以下情形進行驗證:"
+#~ msgid ""
+#~ "What we've tried to do with <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal> is to completely replace <literal>AsyncPaymentProcessor</"
+#~ "literal> in a particular deployment of the system. In that deployment, "
+#~ "the deployment type <literal>@Staging</literal> would have a higher "
+#~ "priority than the default deployment type <literal>@Production</literal>, "
+#~ "and therefore clients with the following injection point:"
+#~ msgstr ""
+#~ "我們嘗試要對 <literal>StagingCreditCardPaymentProcessor</literal> 進行的就"
+#~ "是在系統的某個特定的 deployment 中完全地替換掉 "
+#~ "<literal>AsyncPaymentProcessor</literal>。在該 deployment 中,"
+#~ "<literal>@Staging</literal> 這個 deployment type 將會擁有比 "
+#~ "<literal>@Production</literal> 這個預設 deployment type 還要高的優先權,因"
+#~ "此含有下列注入點的客戶端:"
 
-#. Tag: para
-#: specialization.xml:113
-#, no-c-format
-msgid ""
-"all API types of the superclass are API types of the Web Bean annotated "
-"<literal>@Specializes</literal> (all local interfaces of the superclass "
-"enterprise bean are also local interfaces of the subclass),"
-msgstr "superclass 的所有 API 類型都會是標記為 <literal>@Specializes</literal> 的 Web Bean 的 API 類型(superclass enterprise bean 的所有本地介面也都屬於 subclass 的本地介面)、"
+#~ msgid "@CreditCard PaymentProcessor ccpp"
+#~ msgstr "@CreditCard PaymentProcessor ccpp"
 
-#. Tag: para
-#: specialization.xml:119
-#, no-c-format
-msgid ""
-"the deployment type of the Web Bean annotated <literal>@Specializes</"
-"literal> has a higher precedence than the deployment type of the superclass, "
-"and"
-msgstr "標記為 <literal>@Specializes</literal> 的 Web Bean 的 deployment type 擁有比 superclass 的 deployment type 還要高的優先權,以及"
+#~ msgid ""
+#~ "Would receive an instance of <literal>StagingCreditCardPaymentProcessor</"
+#~ "literal>."
+#~ msgstr ""
+#~ "將會收到 <literal>StagingCreditCardPaymentProcessor</literal> 的一個 "
+#~ "instance。"
 
-#. Tag: para
-#: specialization.xml:124
-#, no-c-format
-msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr "沒有其它已啟用的 Web Bean 會 specialize 該 superclass。"
+#~ msgid "Unfortunately, there are several traps we can easily fall into:"
+#~ msgstr "不過我們有幾點需要小心:"
 
-#. Tag: para
-#: specialization.xml:129
-#, no-c-format
-msgid ""
-"If any of these conditions are violated, the Web Bean manager throws an "
-"exception at initialization time."
-msgstr "若任何的這些條件被違反的話,Web Bean 管理員便會在初始化時回傳一個 exception。"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not implement all the API types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "優先權較高的 Web Bean 無法實做它所嘗試置換的 Web Bean 的所有 API 類型、"
 
-#. Tag: para
-#: specialization.xml:132
-#, no-c-format
-msgid ""
-"Therefore, we can be certain that the superclass will <emphasis>never</"
-"emphasis> be called in any deployment of the system where the Web Bean "
-"annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr "因此,我們能夠確定當標記為 <literal>@Specializes</literal> 的 Web Bean 被建置並啟用的情況下,superclass <emphasis>絕不</emphasis>會在系統的任何 deployment 中被調用。"
+#~ msgid ""
+#~ "the higher-priority Web Bean may not declare all the binding types of the "
+#~ "Web Bean that it attempts to override,"
+#~ msgstr ""
+#~ "優先權較高的 Web Bean 無法宣告它所嘗試置換的 Web Bean 的所有綁定類型、"
 
+#~ msgid ""
+#~ "the higher-priority Web Bean might not have the same name as the Web Bean "
+#~ "that it attempts to override, or"
+#~ msgstr ""
+#~ "優先權較高的 Web Bean 無法擁有與它所嘗試置換的 Web Bean 相同的名稱,或是"
+
+#~ msgid ""
+#~ "the Web Bean that it attempts to override might declare a producer "
+#~ "method, disposal method or observer method."
+#~ msgstr ""
+#~ "它所嘗試置換的 Web Bean 可能能夠宣告一個 producer method、disposal method "
+#~ "或是 observer method。"
+
+#~ msgid ""
+#~ "In each of these cases, the Web Bean that we tried to override could "
+#~ "still be called at runtime. Therefore, overriding is somewhat prone to "
+#~ "developer error."
+#~ msgstr ""
+#~ "在各個情況下,我們所嘗試置換的 Web Bean 都還是可能在 runtime 時被調用。因"
+#~ "此,置換可能會造成開發上的錯誤。"
+
+#~ msgid ""
+#~ "Specialization is a feature that is specific to simple and enterprise Web "
+#~ "Beans. To make use of specialization, the higher-priority Web Bean must:"
+#~ msgstr ""
+#~ "Specialization 是一項基於基本和企業級 Web Bean 的功能。若要有效使用 "
+#~ "specialization,擁有較高優先權的 Web Bean 必須:"
+
+#~ msgid "be a direct subclass of the Web Bean it overrides, and"
+#~ msgstr "是個它所置換的 Web Bean 的直接 subclass,並且"
+
+#~ msgid ""
+#~ "be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or "
+#~ "an enterprise Web Bean if the Web Bean it overrides is an enterprise Web "
+#~ "Bean, and"
+#~ msgstr ""
+#~ "若它所置換的 Web Bean 是個基本的 Web Bean,它就必須是個基本 Web Bean,或是"
+#~ "若它所置換的 Web Bean 是個企業級的 Web Bean,那它就必須是個企業級的 Web "
+#~ "Bean,並且"
+
+#~ msgid "be annotated <literal>@Specializes</literal>."
+#~ msgstr "需被標記 <literal>@Specializes</literal>。"
+
+#~ msgid "Advantages of specialization"
+#~ msgstr "Specializarion 的優點"
+
+#~ msgid "When specialization is used:"
+#~ msgstr "當使用了 specialization 時:"
+
+#~ msgid ""
+#~ "the binding types of the superclass are automatically inherited by the "
+#~ "Web Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "superclass 的綁定類型就會自動地被標記為 <literal>@Specializes</literal> "
+#~ "的 Web Bean 繼承,並且"
+
+#~ msgid ""
+#~ "the Web Bean name of the superclass is automatically inherited by the Web "
+#~ "Bean annotated <literal>@Specializes</literal>, and"
+#~ msgstr ""
+#~ "superclass 的 Web Bean 名稱會自動地被標記為 <literal>@Specializes</"
+#~ "literal> 的 Web Bean 繼承,並且"
+
+#~ msgid ""
+#~ "producer methods, disposal methods and observer methods declared by the "
+#~ "superclass are called upon an instance of the Web Bean annotated "
+#~ "<literal>@Specializes</literal>."
+#~ msgstr ""
+#~ "superclass 所宣告的 producer method、disposal method 以及 observer method "
+#~ "會被一個標記了 <literal>@Specializes</literal> 的 Web Bean instance 調用。"
+
+#~ msgid ""
+#~ "In our example, the binding type <literal>@CreditCard</literal> of "
+#~ "<literal>CreditCardPaymentProcessor</literal> is inherited by "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal>."
+#~ msgstr ""
+#~ "在我們的範例中,<literal>CreditCardPaymentProcessor</literal> 的 "
+#~ "<literal>@CreditCard</literal> 綁定類型會被 "
+#~ "<literal>StagingCreditCardPaymentProcessor</literal> 繼承。"
+
+#~ msgid "Furthermore, the Web Bean manager will validate that:"
+#~ msgstr "另外,Web Bean 管理員會針對於以下情形進行驗證:"
+
+#~ msgid ""
+#~ "all API types of the superclass are API types of the Web Bean annotated "
+#~ "<literal>@Specializes</literal> (all local interfaces of the superclass "
+#~ "enterprise bean are also local interfaces of the subclass),"
+#~ msgstr ""
+#~ "superclass 的所有 API 類型都會是標記為 <literal>@Specializes</literal> 的 "
+#~ "Web Bean 的 API 類型(superclass enterprise bean 的所有本地介面也都屬於 "
+#~ "subclass 的本地介面)、"
+
+#~ msgid ""
+#~ "the deployment type of the Web Bean annotated <literal>@Specializes</"
+#~ "literal> has a higher precedence than the deployment type of the "
+#~ "superclass, and"
+#~ msgstr ""
+#~ "標記為 <literal>@Specializes</literal> 的 Web Bean 的 deployment type 擁有"
+#~ "比 superclass 的 deployment type 還要高的優先權,以及"
+
+#~ msgid ""
+#~ "there is no other enabled Web Bean that also specializes the superclass."
+#~ msgstr "沒有其它已啟用的 Web Bean 會 specialize 該 superclass。"
+
+#~ msgid ""
+#~ "If any of these conditions are violated, the Web Bean manager throws an "
+#~ "exception at initialization time."
+#~ msgstr ""
+#~ "若任何的這些條件被違反的話,Web Bean 管理員便會在初始化時回傳一個 "
+#~ "exception。"
+
+#~ msgid ""
+#~ "Therefore, we can be certain that the superclass will <emphasis>never</"
+#~ "emphasis> be called in any deployment of the system where the Web Bean "
+#~ "annotated <literal>@Specializes</literal> is deployed and enabled."
+#~ msgstr ""
+#~ "因此,我們能夠確定當標記為 <literal>@Specializes</literal> 的 Web Bean 被"
+#~ "建置並啟用的情況下,superclass <emphasis>絕不</emphasis>會在系統的任何 "
+#~ "deployment 中被調用。"

Modified: doc/trunk/reference/zh-TW/stereotypes.po
===================================================================
--- doc/trunk/reference/zh-TW/stereotypes.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/stereotypes.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: stereotypes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-13 15:44+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,92 +17,95 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: stereotypes.xml:4
+#: stereotypes.xml:5
 #, no-c-format
 msgid "Stereotypes"
 msgstr "主要探討模板(Stereotypes)"
 
 #. Tag: para
-#: stereotypes.xml:6
+#: stereotypes.xml:7
 #, no-c-format
-msgid "According to the Web Beans specification:"
-msgstr "根據 Web Bean 規格:"
+msgid "The CDI specification defines a stereotype as follows:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:10
-#, no-c-format
+#: stereotypes.xml:11
+#, fuzzy, no-c-format
 msgid ""
 "In many systems, use of architectural patterns produces a set of recurring "
-"Web Bean roles. A stereotype allows a framework developer to identify such a "
-"role and declare some common metadata for Web Beans with that role in a "
-"central place."
-msgstr "在許多系統中,使用架構的模式會產生一組循環的 Web Bean 工作。主要探討模板能讓一個 framework 開發人員辨識出這樣的一項工作,並在一個中央位置中為含有該工作的 Web Bean 宣告一些共通 metadata。"
+"bean roles. A stereotype allows a framework developer to identify such a "
+"role and declare some common metadata for beans with that role in a central "
+"place."
+msgstr ""
+"在許多系統中,使用架構的模式會產生一組循環的 Web Bean 工作。主要探討模板能讓"
+"一個 framework 開發人員辨識出這樣的一項工作,並在一個中央位置中為含有該工作"
+"的 Web Bean 宣告一些共通 metadata。"
 
 #. Tag: para
-#: stereotypes.xml:14
+#: stereotypes.xml:17
 #, no-c-format
 msgid "A stereotype encapsulates any combination of:"
 msgstr "主要探討模板包含著下列任意的各種組合:"
 
 #. Tag: para
-#: stereotypes.xml:18
-#, no-c-format
-msgid "a default deployment type,"
-msgstr "預設的建置類型、"
-
-#. Tag: para
 #: stereotypes.xml:21
-#, no-c-format
-msgid "a default scope type,"
+#, fuzzy, no-c-format
+msgid "a default scope, and"
 msgstr "預設的 scope 類型、"
 
 #. Tag: para
 #: stereotypes.xml:24
-#, no-c-format
-msgid "a restriction upon the Web Bean scope,"
-msgstr "基於 Web Bean scope 的限制、"
+#, fuzzy, no-c-format
+msgid "a set of interceptor bindings."
+msgstr "一組攔截器綁定標記。"
 
 #. Tag: para
-#: stereotypes.xml:27
+#: stereotypes.xml:28
 #, no-c-format
-msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr "Web Bean 實做或延伸特定類型的需求,以及"
+msgid "A stereotype may also specify that:"
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:30
-#, no-c-format
-msgid "a set of interceptor binding annotations."
-msgstr "一組攔截器綁定標記。"
-
-#. Tag: para
 #: stereotypes.xml:34
-#, no-c-format
-msgid ""
-"A stereotype may also specify that all Web Beans with the stereotype have "
-"defaulted Web Bean names."
-msgstr "主要探討模板亦可指定所有還有該主要探討模板的 Web Bean 都含有預設的 Web Bean 名稱。"
+#, fuzzy, no-c-format
+msgid "all beans with the stereotype have defaulted bean EL names, or that"
+msgstr ""
+"主要探討模板亦可指定所有還有該主要探討模板的 Web Bean 都含有預設的 Web Bean "
+"名稱。"
 
 #. Tag: para
 #: stereotypes.xml:37
 #, no-c-format
-msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr "Web Bean 可宣告零、一或多個主要探討模板。"
+msgid "all beans with the stereotype are alternatives."
+msgstr ""
 
 #. Tag: para
 #: stereotypes.xml:41
 #, no-c-format
 msgid ""
-"A stereotype is a Java annotation type. This stereotype identifies action "
-"classes in some MVC framework:"
-msgstr "主要探討模板為 Java 標記類型。這個主要探討模板可辨識一些 MVC 架構中的動作 class:"
+"A bean may declare zero, one or multiple stereotypes. Stereotype annotations "
+"may be applied to a bean class or producer method or field."
+msgstr ""
 
+#. Tag: para
+#: stereotypes.xml:48
+#, fuzzy, no-c-format
+msgid ""
+"A stereotype is an annotation, annotated <literal>@Stereotype</literal>, "
+"that packages several other annotations. For instance, the following "
+"stereotype identifies action classes in some MVC framework:"
+msgstr ""
+"主要探討模板為 Java 標記類型。這個主要探討模板可辨識一些 MVC 架構中的動作 "
+"class:"
+
 #. Tag: programlisting
-#: stereotypes.xml:44
-#, no-c-format
+#: stereotypes.xml:53
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@Stereotype\n"
+"...\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
@@ -111,13 +114,13 @@
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:46
-#, no-c-format
-msgid "We use the stereotype by applying the annotation to a Web Bean."
+#: stereotypes.xml:55
+#, fuzzy, no-c-format
+msgid "We use the stereotype by applying the annotation to a bean."
 msgstr "我們藉由套用標記至 Web Bean 來使用主要探討模板。"
 
 #. Tag: programlisting
-#: stereotypes.xml:48
+#: stereotypes.xml:59
 #, no-c-format
 msgid ""
 "<![CDATA[@Action \n"
@@ -126,267 +129,290 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 
+#. Tag: para
+#: stereotypes.xml:61
+#, no-c-format
+msgid ""
+"Of course, we need to apply some other annotations to our stereotype or else "
+"it wouldn't be adding much value."
+msgstr ""
+
 #. Tag: title
-#: stereotypes.xml:51
-#, no-c-format
-msgid "Default scope and deployment type for a stereotype"
+#: stereotypes.xml:66
+#, fuzzy, no-c-format
+msgid "Default scope for a stereotype"
 msgstr "主要探討模板的預設 scope 和建置類型"
 
 #. Tag: para
-#: stereotypes.xml:53
-#, no-c-format
+#: stereotypes.xml:68
+#, fuzzy, no-c-format
 msgid ""
-"A stereotype may specify a default scope and/or default deployment type for "
-"Web Beans with that stereotype. For example, if the deployment type "
-"<literal>@WebTier</literal> identifies Web Beans that should only be "
-"deployed when the system executes as a web application, we might specify the "
-"following defaults for action classes:"
-msgstr "主要探討模板可為含有該主要探討模板的 Web Bean 指定預設的 scope 與/或預設的建置類型。比方說,若 <literal>@WebTier</literal> 這個建置類型將只應在系統被執行時才被建置的 Web Bean 視為一個網站應用程式的話,我們可為 action class 指定下列預設值:"
+"A stereotype may specify a default scope for beans annotated with the "
+"stereotype. For example:"
+msgstr ""
+"主要探討模板亦可指定所有還有該主要探討模板的 Web Bean 都含有預設的 Web Bean "
+"名稱。"
 
 #. Tag: programlisting
-#: stereotypes.xml:59
-#, no-c-format
+#: stereotypes.xml:72
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:61
-#, no-c-format
-msgid ""
-"Of course, a particular action may still override these defaults if "
-"necessary:"
+#: stereotypes.xml:74
+#, fuzzy, no-c-format
+msgid "A particular action may still override this default if necessary:"
 msgstr "當然,若有必要的話,有個特定的動作也可置換這些預設值:"
 
 #. Tag: programlisting
-#: stereotypes.xml:64
-#, no-c-format
+#: stereotypes.xml:78
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Dependent @Mock @Action \n"
-"public class MockLoginAction { ... }]]>"
+"<![CDATA[@Dependent @Action \n"
+"public class DependentScopedLoginAction { ... }]]>"
 msgstr ""
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 
 #. Tag: para
-#: stereotypes.xml:66
+#: stereotypes.xml:80
 #, no-c-format
-msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr "若我們希望強制所有動作依照某個特定 scope 的話,我們也可以這麼作。"
+msgid ""
+"Naturally, overriding a single default isn't much use. But remember, "
+"stereotypes can define more than just the default scope."
+msgstr ""
 
 #. Tag: title
-#: stereotypes.xml:72
+#: stereotypes.xml:88
 #, no-c-format
-msgid "Restricting scope and type with a stereotype"
-msgstr "利用主要探討模板來限制 scope 與 type"
+msgid "Interceptor bindings for stereotypes"
+msgstr "主要探討模板的攔截器綁定"
 
 #. Tag: para
-#: stereotypes.xml:74
-#, no-c-format
+#: stereotypes.xml:90
+#, fuzzy, no-c-format
 msgid ""
-"Suppose that we wish to prevent actions from declaring certain scopes. Web "
-"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
-"with a certain stereotype. For example:"
-msgstr "假設我們希望防止動作去宣告特定 scope,Web Bean 能讓我們透過特定主要探討模板來明確地為 Web Bean 指定一組被允許的 scope。例如:"
+"A stereotype may specify a set of interceptor bindings to be inherited by "
+"all beans with that stereotype."
+msgstr ""
+"主要探討模板可指定一組攔截器綁定來被所有含有該主要探討模板的 Web Bean 繼承。"
 
 #. Tag: programlisting
-#: stereotypes.xml:78
-#, no-c-format
+#: stereotypes.xml:94
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
 "@WebTier\n"
-"@Stereotype(supportedScopes=RequestScoped.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:80
-#, no-c-format
+#: stereotypes.xml:96
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class attempts to specify a scope other than the Web "
-"Beans request scope, an exception will be thrown by the Web Bean manager at "
-"initialization time."
-msgstr "若有個特定 action class 嘗試指定一個非 Web Bean 所請求的 scope 的話,Web Bean 管理員便會在初始化時丟出一個 exception。"
+"This helps us get technical concerns, like transactions and security, even "
+"further away from the business code!"
+msgstr "這可協助我們減少 business code 中技術上的問題!"
 
+#. Tag: title
+#: stereotypes.xml:103
+#, no-c-format
+msgid "Name defaulting with stereotypes"
+msgstr "主要探討模板的名稱預設"
+
 #. Tag: para
-#: stereotypes.xml:84
-#, no-c-format
+#: stereotypes.xml:105
+#, fuzzy, no-c-format
 msgid ""
-"We can also force all Web Bean with a certain stereotype to implement an "
-"interface or extend a class:"
-msgstr "我們也能強制所有含有特定主要探討模板的 Web Bean 實做一個介面或延伸一個 class:"
+"We can specify that all beans with a certain stereotype have a defaulted EL "
+"name when a name is not explicitly defined for that bean. All we need to do "
+"is add an empty <literal>@Named</literal> annotation:"
+msgstr ""
+"最後,我們能夠指定所有含有特定主要探討模板的 Web Bean 都擁有一組 Web Bean 名"
+"稱,並且由 Web Bean 管理員來預設。動作通常參照於 JSP 頁面中,因此它們針對於此"
+"功能為完美的 use case。我們只需要新增一個空的 <literal>@Named</literal> 標記"
+"即可:"
 
 #. Tag: programlisting
-#: stereotypes.xml:87
-#, no-c-format
+#: stereotypes.xml:110
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
 "@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
 "@WebTier\n"
-"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:89
-#, no-c-format
+#: stereotypes.xml:112
+#, fuzzy, no-c-format
 msgid ""
-"If a particular action class does not extend the class "
-"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
-"Bean manager at initialization time."
-msgstr "若某個特定 action class 沒有延伸 <literal>AbstractAction</literal> 這個 class 的話,Web Bean 管理員便會在初始化時丟出一個 exception。"
+"Now, the <literal>LoginAction</literal> bean will have the defaulted name "
+"<literal>loginAction</literal>."
+msgstr ""
+"現在,<literal>LoginAction</literal> 將會被命名為 <literal>loginAction</"
+"literal>。"
 
 #. Tag: title
-#: stereotypes.xml:96
-#, no-c-format
-msgid "Interceptor bindings for stereotypes"
-msgstr "主要探討模板的攔截器綁定"
+#: stereotypes.xml:119
+#, fuzzy, no-c-format
+msgid "Alternative stereotypes"
+msgstr "標準主要探討模板"
 
 #. Tag: para
-#: stereotypes.xml:98
+#: stereotypes.xml:121
 #, no-c-format
 msgid ""
-"A stereotype may specify a set of interceptor bindings to be inherited by "
-"all Web Beans with that stereotype."
-msgstr "主要探討模板可指定一組攔截器綁定來被所有含有該主要探討模板的 Web Bean 繼承。"
+"A stereotype can indicate that all beans to which it is applied are "
+"<literal>@Alternative</literal>s. An <emphasis>alternative stereotype</"
+"emphasis> lets us classify beans by deployment scenario."
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:101
-#, no-c-format
+#: stereotypes.xml:126
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Alternative\n"
+"@Stereotype\n"
+"@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"public @interface Mock {}]]>"
 msgstr ""
 "<![CDATA[@Retention(RUNTIME)\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@WebTier\n"
 "@Stereotype\n"
 "public @interface Action {}]]>"
 
 #. Tag: para
-#: stereotypes.xml:103
+#: stereotypes.xml:128
 #, no-c-format
 msgid ""
-"This helps us get technical concerns even further away from the business "
-"code!"
-msgstr "這可協助我們減少 business code 中技術上的問題!"
+"We can apply an alternative stereotype to a whole set of beans, and activate "
+"them all with one line of code in <literal>beans.xml</literal>."
+msgstr ""
 
+#. Tag: programlisting
+#: stereotypes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Mock\n"
+"public class MockLoginAction extends LoginAction { ... }]]>"
+msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
+
 #. Tag: title
-#: stereotypes.xml:109
+#: stereotypes.xml:141
+#, fuzzy, no-c-format
+msgid "Stereotype stacking"
+msgstr "主要探討模板(Stereotypes)"
+
+#. Tag: para
+#: stereotypes.xml:143
 #, no-c-format
-msgid "Name defaulting with stereotypes"
-msgstr "主要探討模板的名稱預設"
+msgid ""
+"This may blow your mind a bit, but stereotypes may declare other "
+"stereotypes, which we'll call <emphasis>stereotype stacking</emphasis>. You "
+"may want to do this if you have two distinct stereotypes which are "
+"meaningful on their own, but in other situation may be meaningful when "
+"combined."
+msgstr ""
 
 #. Tag: para
-#: stereotypes.xml:111
+#: stereotypes.xml:150
 #, no-c-format
 msgid ""
-"Finally, we can specify that all Web Beans with a certain stereotype have a "
-"Web Bean name, defaulted by the Web Bean manager. Actions are often "
-"referenced in JSP pages, so they're a perfect use case for this feature. All "
-"we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "最後,我們能夠指定所有含有特定主要探討模板的 Web Bean 都擁有一組 Web Bean 名稱,並且由 Web Bean 管理員來預設。動作通常參照於 JSP 頁面中,因此它們針對於此功能為完美的 use case。我們只需要新增一個空的 <literal>@Named</literal> 標記即可:"
+"Here's an example that combines the <literal>@Action</literal> and "
+"<literal>@Auditable</literal> stereotypes:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:116
-#, no-c-format
+#: stereotypes.xml:155
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Retention(RUNTIME)\n"
+"<![CDATA[@Auditable\n"
+"@Action\n"
+"@Stereotype\n"
 "@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"@Retention(RUNTIME)\n"
+"public @interface AuditableAction {}]]>"
 msgstr ""
-"<![CDATA[@Retention(RUNTIME)\n"
-"@Target(TYPE)\n"
-"@RequestScoped\n"
-"@Transactional(requiresNew=true)\n"
-"@Secure\n"
-"@Named\n"
-"@WebTier\n"
-"@Stereotype\n"
-"public @interface Action {}]]>"
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
-#. Tag: para
-#: stereotypes.xml:118
-#, no-c-format
-msgid ""
-"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
-"literal>."
-msgstr "現在,<literal>LoginAction</literal> 將會被命名為 <literal>loginAction</literal>。"
-
 #. Tag: title
-#: stereotypes.xml:124
-#, no-c-format
-msgid "Standard stereotypes"
+#: stereotypes.xml:160
+#, fuzzy, no-c-format
+msgid "Built-in stereotypes"
 msgstr "標準主要探討模板"
 
 #. Tag: para
-#: stereotypes.xml:126
-#, no-c-format
+#: stereotypes.xml:162
+#, fuzzy, no-c-format
 msgid ""
-"We've already met two standard stereotypes defined by the Web Beans "
-"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
-"literal>."
+"We've already met two standard stereotypes defined by the CDI specification: "
+"<literal>@Interceptor</literal> and <literal>@Decorator</literal>."
 msgstr ""
-"我們已談到了 Web Bean 規格所定義的兩個標準主要探討模板:<literal>@Interceptor</literal> 與 <literal>@Decorator</"
-"literal>。"
+"我們已談到了 Web Bean 規格所定義的兩個標準主要探討模板:"
+"<literal>@Interceptor</literal> 與 <literal>@Decorator</literal>。"
 
 #. Tag: para
-#: stereotypes.xml:129
+#: stereotypes.xml:167
 #, no-c-format
-msgid "Web Beans defines one further standard stereotype:"
-msgstr "Web Bean 還額外定義了一個標準主要探討模板:"
+msgid ""
+"CDI defines one further standard stereotype, <literal>@Model</literal>, "
+"which is expected to be used frequently in web applications:"
+msgstr ""
 
 #. Tag: programlisting
-#: stereotypes.xml:131
-#, no-c-format
+#: stereotypes.xml:172
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
 "@Stereotype \n"
 "@Target({TYPE, METHOD}) \n"
 "@Retention(RUNTIME) \n"
-"public @interface Model {} ]]>"
+"public @interface Model {}]]>"
 msgstr ""
 "<![CDATA[@Named \n"
 "@RequestScoped \n"
@@ -396,11 +422,125 @@
 "public @interface Model {} ]]>"
 
 #. Tag: para
-#: stereotypes.xml:133
-#, no-c-format
+#: stereotypes.xml:174
+#, fuzzy, no-c-format
 msgid ""
-"This stereotype is intended for use with JSF. Instead of using JSF managed "
-"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
-"directly in your JSF page."
-msgstr "這個主要探討模板主要用於 JSF。與其使用 JSF 管理的 bean,只要標記一個 <literal>@Model</literal> Web Bean 然後直接在您的 JSF 頁面中使用它即可。"
+"Instead of using JSF managed beans, just annotate a bean <literal>@Model</"
+"literal>, and use it directly in your JSF view!"
+msgstr ""
+"這個主要探討模板主要用於 JSF。與其使用 JSF 管理的 bean,只要標記一個 "
+"<literal>@Model</literal> Web Bean 然後直接在您的 JSF 頁面中使用它即可。"
 
+#~ msgid "According to the Web Beans specification:"
+#~ msgstr "根據 Web Bean 規格:"
+
+#~ msgid "a default deployment type,"
+#~ msgstr "預設的建置類型、"
+
+#~ msgid "a restriction upon the Web Bean scope,"
+#~ msgstr "基於 Web Bean scope 的限制、"
+
+#~ msgid ""
+#~ "a requirement that the Web Bean implement or extend a certain type, and"
+#~ msgstr "Web Bean 實做或延伸特定類型的需求,以及"
+
+#~ msgid "A Web Bean may declare zero, one or multiple stereotypes."
+#~ msgstr "Web Bean 可宣告零、一或多個主要探討模板。"
+
+#~ msgid ""
+#~ "A stereotype may specify a default scope and/or default deployment type "
+#~ "for Web Beans with that stereotype. For example, if the deployment type "
+#~ "<literal>@WebTier</literal> identifies Web Beans that should only be "
+#~ "deployed when the system executes as a web application, we might specify "
+#~ "the following defaults for action classes:"
+#~ msgstr ""
+#~ "主要探討模板可為含有該主要探討模板的 Web Bean 指定預設的 scope 與/或預設的"
+#~ "建置類型。比方說,若 <literal>@WebTier</literal> 這個建置類型將只應在系統"
+#~ "被執行時才被建置的 Web Bean 視為一個網站應用程式的話,我們可為 action "
+#~ "class 指定下列預設值:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If we want to force all actions to a particular scope, we can do that too."
+#~ msgstr "若我們希望強制所有動作依照某個特定 scope 的話,我們也可以這麼作。"
+
+#~ msgid "Restricting scope and type with a stereotype"
+#~ msgstr "利用主要探討模板來限制 scope 與 type"
+
+#~ msgid ""
+#~ "Suppose that we wish to prevent actions from declaring certain scopes. "
+#~ "Web Beans lets us explicitly specify the set of allowed scopes for Web "
+#~ "Beans with a certain stereotype. For example:"
+#~ msgstr ""
+#~ "假設我們希望防止動作去宣告特定 scope,Web Bean 能讓我們透過特定主要探討模"
+#~ "板來明確地為 Web Bean 指定一組被允許的 scope。例如:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(supportedScopes=RequestScoped.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class attempts to specify a scope other than the "
+#~ "Web Beans request scope, an exception will be thrown by the Web Bean "
+#~ "manager at initialization time."
+#~ msgstr ""
+#~ "若有個特定 action class 嘗試指定一個非 Web Bean 所請求的 scope 的話,Web "
+#~ "Bean 管理員便會在初始化時丟出一個 exception。"
+
+#~ msgid ""
+#~ "We can also force all Web Bean with a certain stereotype to implement an "
+#~ "interface or extend a class:"
+#~ msgstr ""
+#~ "我們也能強制所有含有特定主要探討模板的 Web Bean 實做一個介面或延伸一個 "
+#~ "class:"
+
+#~ msgid ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Retention(RUNTIME)\n"
+#~ "@Target(TYPE)\n"
+#~ "@RequestScoped\n"
+#~ "@WebTier\n"
+#~ "@Stereotype(requiredTypes=AbstractAction.class)\n"
+#~ "public @interface Action {}]]>"
+
+#~ msgid ""
+#~ "If a particular action class does not extend the class "
+#~ "<literal>AbstractAction</literal>, an exception will be thrown by the Web "
+#~ "Bean manager at initialization time."
+#~ msgstr ""
+#~ "若某個特定 action class 沒有延伸 <literal>AbstractAction</literal> 這個 "
+#~ "class 的話,Web Bean 管理員便會在初始化時丟出一個 exception。"
+
+#~ msgid "Web Beans defines one further standard stereotype:"
+#~ msgstr "Web Bean 還額外定義了一個標準主要探討模板:"

Modified: doc/trunk/reference/zh-TW/viewlayers.po
===================================================================
--- doc/trunk/reference/zh-TW/viewlayers.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/viewlayers.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -3,9 +3,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection VERSION\n"
+"Project-Id-Version: Web_Beans:_Java_Contexts_and_Dependency_Injection "
+"VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-04-19 20:36+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-04-19 20:36+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,54 +15,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: viewlayers.xml:4
+#: viewlayers.xml:5
 #, no-c-format
 msgid "Alternative view layers"
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:7
+#: viewlayers.xml:8
 #, no-c-format
-msgid "Using Web Beans with Wicket"
+msgid "Wicket CDI integration"
 msgstr ""
 
-#. Tag: title
+#. Tag: para
 #: viewlayers.xml:10
 #, no-c-format
+msgid ""
+"Weld provides integration between the Apache Wicket web framework and CDI. "
+"This functionality is provided by the <literal>weld-wicket</literal> "
+"extension module, which naturally must be on the classpath of the Wicket "
+"application."
+msgstr ""
+
+#. Tag: para
+#: viewlayers.xml:16
+#, no-c-format
+msgid ""
+"This section describes some of the utilities provided by the Wicket "
+"extension module to support the CDI integration."
+msgstr ""
+
+#. Tag: title
+#: viewlayers.xml:22
+#, no-c-format
 msgid "The <literal>WebApplication</literal> class"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:12
+#: viewlayers.xml:24
 #, no-c-format
 msgid ""
 "Each wicket application must have a <literal>WebApplication</literal> "
-"subclass; Web Beans provides, for your utility, a subclass of this which "
-"sets up the Wicket/JSR-299 integration. You should subclass <literal>org."
-"jboss.webbeans.wicket.WebBeansApplication</literal>."
+"subclass; Weld provides, for your utility, a subclass of this which sets up "
+"the Wicket CDI integration. You should subclass <literal>org.jboss.weld."
+"wicket.WeldApplication</literal>."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:21
+#: viewlayers.xml:31
 #, no-c-format
 msgid ""
-"If you would prefer not to subclass <literal>WebBeansApplication</literal>, "
-"you can manually add a (small!) number of overrides and listeners to your "
-"own <literal>WebApplication</literal> subclass. The javadocs of "
-"<literal>WebBeansApplication</literal>detail this."
+"If you would prefer not to subclass <literal>WeldApplication</literal>, you "
+"can manually add a (small!) number of overrides and listeners to your own "
+"<literal>WebApplication</literal> subclass. The JavaDocs of "
+"<literal>WeldApplication</literal>detail this."
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:30
+#: viewlayers.xml:38
 #, no-c-format
 msgid "For example:"
 msgstr ""
 
 #. Tag: programlisting
-#: viewlayers.xml:33
+#: viewlayers.xml:41
 #, no-c-format
 msgid ""
-"<![CDATA[public class SampleApplication extends WebBeansApplication {\n"
+"<![CDATA[public class SampleApplication extends WeldApplication {\n"
 "   @Override\n"
 "   public Class getHomePage() {\n"
 "      return HomePage.class;\n"
@@ -70,22 +89,21 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:37
+#: viewlayers.xml:45
 #, no-c-format
 msgid "Conversations with Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:38
+#: viewlayers.xml:46
 #, no-c-format
 msgid ""
-"The conversation scope can be used in Web Beans with the Apache Wicket web "
-"framework, through the <literal>webbeans-wicket</literal> module. This "
-"module takes care of:"
+"Wicket can also take advantage of the conversation scope from CDI, provided "
+"by the Wicket extension module. This module takes care of:"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:45
+#: viewlayers.xml:52
 #, no-c-format
 msgid ""
 "Setting up the conversation context at the beginning of a Wicket request, "
@@ -93,7 +111,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:51
+#: viewlayers.xml:58
 #, no-c-format
 msgid ""
 "Storing the id of any long-running conversation in Wicket's metadata when "
@@ -101,7 +119,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:57
+#: viewlayers.xml:64
 #, no-c-format
 msgid ""
 "Activating the correct long-running conversation based upon which page is "
@@ -109,7 +127,7 @@
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:63
+#: viewlayers.xml:69
 #, no-c-format
 msgid ""
 "Propagating the conversation context for any long-running conversation to "
@@ -117,37 +135,50 @@
 msgstr ""
 
 #. Tag: title
-#: viewlayers.xml:70
+#: viewlayers.xml:76
 #, no-c-format
 msgid "Starting and stopping conversations in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:71
+#: viewlayers.xml:77
 #, no-c-format
 msgid ""
-"As JSF applications, a conversation <emphasis>always</emphasis> exists for "
-"any request, but its lifetime is only that of the current request unless it "
-"is marked as <emphasis>long-running</emphasis>. For Wicket applications this "
-"is accomplished as in JSF applications, by injecting the <literal>@Current "
-"Conversation</literal> and then invoking <literal>conversation.begin()</"
-"literal>. Likewise, conversations are ended with <literal>conversation.end()"
-"</literal>"
+"As in JSF applications, a conversation <emphasis>always</emphasis> exists "
+"for any request to Wicket, but its lifetime is only that of the current "
+"request unless it is marked as <emphasis>long-running</emphasis>. The "
+"boundaries of a long-running conversation are controlled in the same way as "
+"in JSF applications, by injecting the <literal>Conversation</literal> "
+"instance and invoking either the <literal>begin()</literal> or <literal>end()"
+"</literal> methods:"
 msgstr ""
 
+#. Tag: programlisting
+#: viewlayers.xml:86
+#, no-c-format
+msgid ""
+"<![CDATA[private @Inject Conversation conversation;\n"
+"...\n"
+"// begin a conversation\n"
+"conversation.begin();\n"
+"...\n"
+"// end a conversation\n"
+"conversation.end();]]>"
+msgstr ""
+
 #. Tag: title
-#: viewlayers.xml:85
+#: viewlayers.xml:91
 #, no-c-format
 msgid "Long running conversation propagation in Wicket"
 msgstr ""
 
 #. Tag: para
-#: viewlayers.xml:86
+#: viewlayers.xml:92
 #, no-c-format
 msgid ""
 "When a conversation is marked as long-running, the id of that conversation "
 "will be stored in Wicket's metadata for the current page. If a new page is "
-"created and set as the response target through <literal>setResponsePage</"
+"created and set as the response target through <literal>setResponsePage()</"
 "literal>, this new page will also participate in this conversation. This "
 "occurs for both directly instantiated pages (<literal>setResponsePage(new "
 "OtherPage())</literal>), as well as for bookmarkable pages created with "

Added: doc/trunk/reference/zh-TW/weldexamples.po
===================================================================
--- doc/trunk/reference/zh-TW/weldexamples.po	                        (rev 0)
+++ doc/trunk/reference/zh-TW/weldexamples.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -0,0 +1,1551 @@
+# Language zh-TW translations for Weld_-_JSR-299_Reference_Implementation package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Weld_-_JSR-299_Reference_Implementation VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"PO-Revision-Date: 2009-11-11 15:00+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: weldexamples.xml:5
+#, no-c-format
+msgid "Diving into the Weld examples"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:7
+#, no-c-format
+msgid ""
+"It's time to pull the covers back and dive into the internals of Weld "
+"example applications. Let's start with the simpler of the two examples, "
+"<literal>weld-numberguess</literal>."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:13
+#, no-c-format
+msgid "The numberguess example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:15
+#, no-c-format
+msgid ""
+"In the numberguess application you get 10 attempts to guess a number between "
+"1 and 100. After each attempt, you're told whether your guess was too high "
+"or too low."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:20
+#, no-c-format
+msgid ""
+"The numberguess example is comprised of a number of beans, configuration "
+"files and Facelets (JSF) views, packaged as a WAR module. Let's start by "
+"examining the configuration files."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:25
+#, no-c-format
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which can be found in the <literal>src/main/webapp</literal> "
+"directory of the example. First, we have the JSF 2.0 version of "
+"<literal>faces-config.xml</literal>. A standardized version of Facelets is "
+"the default view handler in JSF 2.0, so there's really nothing that we have "
+"to configure. Thus, the configuration consists of only the root element."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:33
+#, no-c-format
+msgid ""
+"<![CDATA[<faces-config version=\"2.0\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd\">\n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:35
+#, no-c-format
+msgid ""
+"There's also an empty <literal>beans.xml</literal> file, which tells the "
+"container to look for beans in this application and to activate the CDI "
+"services."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:40
+#, no-c-format
+msgid "Finally, there's the familiar <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:42
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"10\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"16\"/> <area id=\"faces.default."
+"suffix\" coords=\"21\"/> <area id=\"session.timeout\" coords=\"26\"/> </"
+"areaspec> <programlisting role=\"XML\"><![CDATA[<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=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>weld-jsf-numberguess-war</display-name>\n"
+"   <description>Weld JSF numberguess example (WAR)</description>\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>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and initialize the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests for "
+"URLs ending in <literal>.jsf</literal> to be handled by JSF </para> </"
+"callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we "
+"will be giving our JSF views (Facelets templates) an extension of <literal>."
+"xhtml</literal> </para> </callout> <callout arearefs=\"session.timeout\"> "
+"<para> Configure a session timeout of 10 minutes </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> This demo uses JSF 2 as the "
+"view framework, but you can use Weld with any servlet-based web framework, "
+"such as JSF 1.2 or Wicket. </para> </note> <para> Let's take a look at the "
+"main JSF view, <literal>src/main/webapp/home.xhtml</literal>. </para> "
+"<programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id="
+"\"statusMessages\" coords=\"12\"/> <area id=\"instructions\" coords=\"20\"/> "
+"<area id=\"guess\" coords=\"27\"/> <area id=\"validator\" coords=\"29\"/> "
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"HTML"
+"\"><![CDATA[<!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: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"
+"\n"
+"   <ui:composition template=\"/template.xhtml\">\n"
+"      <ui:define name=\"content\">\n"
+"         <h1>Guess a number...</h1>\n"
+"         <h:form id=\"numberGuess\">\n"
+"            <div style=\"color: red\">\n"
+"               <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"               <h:outputText id=\"Higher\" value=\"Higher!\"\n"
+"                  rendered=\"#{game.number gt game.guess and game.guess ne 0}"
+"\"/>\n"
+"               <h:outputText id=\"Lower\" value=\"Lower!\"\n"
+"                  rendered=\"#{game.number lt game.guess and game.guess ne 0}"
+"\"/>\n"
+"            </div>\n"
+"    \n"
+"            <div>\n"
+"               I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"               You have #{game.remainingGuesses} guesses remaining.\n"
+"            </div>\n"
+"       \n"
+"            <div>\n"
+"               Your guess: \n"
+"               <h:inputText id=\"inputGuess\" value=\"#{game.guess}\"\n"
+"                  size=\"3\" required=\"true\" disabled=\"#{game.number eq "
+"game.guess}\"\n"
+"                  validator=\"#{game.validateNumberRange}\"/>\n"
+"               <h:commandButton id=\"guessButton\" value=\"Guess\" \n"
+"                  action=\"#{game.check}\" disabled=\"#{game.number eq game."
+"guess}\"/>\n"
+"            </div>\n"
+"            <div>\n"
+"              <h:commandButton id=\"restartButton\" value=\"Reset\" action="
+"\"#{game.reset}\" immediate=\"true\"/>\n"
+"            </div>\n"
+"         </h:form>\n"
+"      </ui:define>\n"
+"   </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is the built-in templating language for JSF. Here we are "
+"wrapping our page in a template which defines the layout. </para> </callout> "
+"<callout arearefs=\"statusMessages\"> <para> There are a number of messages "
+"which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </"
+"para> </callout> <callout arearefs=\"instructions\"> <para> As the user "
+"guesses, the range of numbers they can guess gets smaller - this sentence "
+"changes to make sure they know the number range of a valid guess. </para> </"
+"callout> <callout arearefs=\"guess\"> <para> This input field is bound to a "
+"bean property using a value expression. </para> </callout> <callout arearefs="
+"\"validator\"> <para> A validator binding is used to make sure the user "
+"doesn't accidentally input a number outside of the range in which they can "
+"guess - if the validator wasn't here, the user might use up a guess on an "
+"out of bounds number. </para> </callout> <callout arearefs=\"submit\"> "
+"<para> And, of course, there must be a way for the user to send their guess "
+"to the server. Here we bind to an action method on the bean. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:142
+#, no-c-format
+msgid ""
+"The example exists of 4 classes, the first two of which are qualifiers. "
+"First, there is the <literal>@Random</literal> qualifier, used for injecting "
+"a random number:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface Random {}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:149
+#, no-c-format
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[@Qualifier\n"
+"@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"public @interface MaxNumber {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:156
+#, no-c-format
+msgid ""
+"The application-scoped <literal>Generator</literal> class is responsible for "
+"creating the random number, via a producer method. It also exposes the "
+"maximum possible number via a producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator implements Serializable {\n"
+"\n"
+"   private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom() {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber() {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:163
+#, no-c-format
+msgid ""
+"The <literal>Generator</literal> is application scoped, so we don't get a "
+"different random each time."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:168
+#, no-c-format
+msgid ""
+"The package declaration and imports have been excluded from these listings. "
+"The complete listing is available in the example source code."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:174
+#, no-c-format
+msgid ""
+"The final bean in the application is the session-scoped <literal>Game</"
+"literal> class. This is the primary entry point of the application. It's "
+"responsible for setting up or resetting the game, capturing and validating "
+"the user's guess and providing feedback to the user with a "
+"<literal>FacesMessage</literal>. We've used the post-construct lifecycle "
+"method to initialize the game by retrieving a random number from the "
+"<literal>@Random Instance&lt;Integer&gt;</literal> bean."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:182
+#, no-c-format
+msgid ""
+"You'll notice that we've also added the <literal>@Named</literal> annotation "
+"to this class. This annotation is only required when you want to make the "
+"bean accessible to a JSF view via EL (i.e., #{game})."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Named\n"
+"@SessionScoped\n"
+"public class Game implements Serializable {\n"
+"\n"
+"   private int number;\n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"\n"
+"   @Inject @MaxNumber private int maxNumber;\n"
+"   @Inject @Random Instance<Integer> randomNumber;\n"
+"   \n"
+"   public Game() {}\n"
+"   \n"
+"   public void check() {\n"
+"      if (guess > number) {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      else if (guess < number) {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      else if (guess == number) {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset() {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = randomNumber.get();\n"
+"   }\n"
+"   \n"
+"   public void validateNumberRange(FacesContext context,  UIComponent "
+"toValidate, Object value) {\n"
+"      if (remainingGuesses <= 0) {\n"
+"         FacesMessage message = new FacesMessage(\"No guesses left!\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"         return;\n"
+"      }\n"
+"      int input = (Integer) value;\n"
+"\n"
+"      if (input < smallest || input > biggest) {\n"
+"         ((UIInput) toValidate).setValid(false);\n"
+"\n"
+"         FacesMessage message = new FacesMessage(\"Invalid guess\");\n"
+"         context.addMessage(toValidate.getClientId(context), message);\n"
+"      }\n"
+"   }\n"
+"\n"
+"   public int getNumber() {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess() {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess) {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest() {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest() {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses() {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:190
+#, no-c-format
+msgid "The numberguess example in Apache Tomcat or Jetty"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:192
+#, no-c-format
+msgid ""
+"A couple of modifications must be made to the numberguess artifact in order "
+"to deploy it to Tomcat or Jetty. First, Weld must be deployed as a Web "
+"Application library under <literal>WEB-INF/lib</literal> since the servlet "
+"container does not provide the CDI services. For your convenience we provide "
+"a single JAR suitable for running Weld in any servlet container (including "
+"Jetty), <literal>weld-servlet.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:200
+#, no-c-format
+msgid ""
+"You must also include the JARs for JSF, EL, and the common annotations "
+"(<literal>jsr250-api.jar</literal>), all of which are provided by the Java "
+"EE platform (a Java EE application server). Are you starting to appreciate "
+"why a Java EE platform is worth using?"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:207
+#, no-c-format
+msgid ""
+"Second, we need to explicitly specify the servlet listener in <literal>web."
+"xml</literal>, again because the container isn't doing this stuff for you. "
+"The servlet listener boots Weld and controls it's interaction with requests."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:213
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+"   <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:215
+#, no-c-format
+msgid ""
+"When Weld boots, it places the <literal>javax.enterprise.inject.spi."
+"BeanManager</literal>, the portable SPI for obtaining bean instances, in the "
+"ServletContext under a variable name equal to the fully-qualified interface "
+"name. You generally don't need to access this interface, but Weld makes use "
+"of it."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:226
+#, no-c-format
+msgid "The numberguess example for Apache Wicket"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:227
+#, no-c-format
+msgid ""
+"Weld includes a number of portable extensions for JSR-299, including an "
+"extension for Wicket, which allows you to inject beans into Wicket "
+"components and leverage the conversation context. In this section, we'll "
+"walk you through the Wicket version of the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:234
+#, no-c-format
+msgid ""
+"You may want to review the Wicket documentation at <ulink url=\"http://"
+"wicket.apache.org/\">http://wicket.apache.org/</ulink> before reading this "
+"section, if you aren't already familiar with the framework."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:241
+#, no-c-format
+msgid ""
+"Wicket is another environment that relies on the Weld servlet extension. The "
+"use of <ulink url=\"http://jetty.mortbay.org\">Jetty</ulink> is common in "
+"the Wicket community, and is thus chosen here as the runtime container. "
+"You've seen already that Jetty is perfectly capable of running CDI "
+"applications with Weld add-ons, and this environment is no different."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:249
+#, no-c-format
+msgid ""
+"We'll also be using the Eclipse IDE in these examples. Instructions are "
+"provided later for running the example from the command line, but since "
+"you'll likely need to do more than just deploy examples, we'll get setup in "
+"this full development environment."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:257
+#, no-c-format
+msgid "Creating the Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:259
+#, no-c-format
+msgid ""
+"To use the Wicket example in Eclipse, you have one of two choices. You can "
+"either use a Maven plugin to generate a regular Eclipse Web project, or you "
+"can open the example natively using the <ulink src=\"http://m2eclipse."
+"sonatype.org/\">m2eclipse plugin</ulink>. Since the Weld source code relies "
+"so heavily on Maven, we encourage you to bite the bullet and adopt the "
+"m2eclipse plugin. Both approaches are described here for your convenience.."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:267
+#, no-c-format
+msgid ""
+"If you have m2eclipse installed, you can open any Maven project directly. "
+"From within Eclipse, select <emphasis>File -> Import... -> Maven Projects</"
+"emphasis>. Then, browse to the location of the Wicket numberguess example. "
+"You should see that Eclipse recognizes the existence of a Maven project."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:279
+#, no-c-format
+msgid ""
+"This will create a project in your workspace called <literal>weld-wicket-"
+"numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:283
+#, no-c-format
+msgid ""
+"You'll notice after importing, the project has a build error. That's because "
+"we need to enable a Maven profile. Right-click on the project and select "
+"<emphasis>Properties</emphasis>, then select the <emphasis>Maven</emphasis> "
+"tab in the window that appears. In the form field labeled \"Active Maven "
+"Profiles (comma separated):\", type <literal>jetty</literal>. That will "
+"enable some extra dependencies that allow the project to compile. You're now "
+"ready to develop!"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:292
+#, no-c-format
+msgid ""
+"You are also advised to uncheck the box \"Skip Maven compiler when "
+"processing resources\" in the Maven properties screen because of conflicts "
+"with the Maven enforcer plugin."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:298
+#, no-c-format
+msgid ""
+"If you are not using the m2eclipse plugin, you have to follow different "
+"steps to import the project. First, switch into the Wicket numberguess "
+"example, then execute the Maven Eclipse plugin with the jetty profile "
+"activated, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:304
+#, no-c-format
+msgid ""
+"<![CDATA[$> cd examples/wicket/numberguess\n"
+"mvn -Pjetty eclipse:eclipse]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:306
+#, no-c-format
+msgid ""
+"Then, from Eclipse, choose <emphasis>File -> Import... -> General -> "
+"Existing Projects into Workspace</emphasis>, select the root directory of "
+"the numberguess example, and click Finish. This will create a project in "
+"your workspace called <literal>weld-wicket-numberguess</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:318
+#, no-c-format
+msgid "It's time to get the example running!"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:325
+#, no-c-format
+msgid "Running the example from Eclipse"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:327
+#, no-c-format
+msgid ""
+"This project follows the <literal>wicket-quickstart</literal> approach of "
+"creating an instance of Jetty in the <literal>Start</literal> class. So "
+"running the example is as simple as right-clicking on that Start class in "
+"<literal>src/test/java</literal> in the <emphasis>Package Explorer</"
+"emphasis> and choosing <emphasis>Run as Java Application</emphasis>. You "
+"should see console output related to Jetty starting up; then visit able "
+"<literal>http://localhost:9090</literal> to view the app. To debug choose "
+"<emphasis>Debug as Java Application</emphasis> instead."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:338
+#, no-c-format
+msgid "Running the example from the command line in JBoss AS or Tomcat"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:340
+#, no-c-format
+msgid ""
+"This example can also be deployed from the command line in a (similar to the "
+"other examples). Assuming you have set up the <literal>local.build."
+"properties</literal> file in the <literal>examples</literal> directory to "
+"specify the location of JBoss AS or Tomcat, as previously described, you can "
+"run:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:346
+#, no-c-format
+msgid "<![CDATA[$> ant deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:348
+#, no-c-format
+msgid "to deploy the example to JBoss AS, and:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:350
+#, no-c-format
+msgid "<![CDATA[$> ant tomcat.deploy]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:352
+#, no-c-format
+msgid ""
+"to deploy the example to Tomcat. You can then access application at "
+"<literal>http://localhost:9090/weld-numberguess-wicket</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:357
+#, no-c-format
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:362
+#, no-c-format
+msgid "<![CDATA[$> mvn jetty:run -Pjetty]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:364
+#, no-c-format
+msgid "Enough toying with deployment, let's dive into the code."
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:371
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:373
+#, no-c-format
+msgid ""
+"The code in the wicket numberguess example is very similar to the JSF-based "
+"numberguess example. The business layer is identical! Where things differ is "
+"in view binding. JSF uses Unified EL expressions to bind XML-based view "
+"layer components in JSF views to beans. In contrast, Wicket defines its "
+"components in Java. These Java-based view components have a one-to-one "
+"mapping with HTML elements in an adjacent (pure) HTML file. All view logic, "
+"including binding of components to models and controlling the response of "
+"view actions, is handled in Java."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:382
+#, no-c-format
+msgid ""
+"The integration of Weld with Wicket takes advantage of the same qualifier "
+"annotations used in your business layer to provide injection into your "
+"<literal>WebPage</literal> subclass (or into other custom Wicket component "
+"subclasses)."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:388
+#, no-c-format
+msgid "Here's where things differ from the JSF numberguess example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:394
+#, no-c-format
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:398
+#, no-c-format
+msgid ""
+"<![CDATA[public class NumberGuessApplication extends WeldApplication {\n"
+"   @Override public Class getHomePage() {\n"
+"      return HomePage.class;\n"
+"   }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:399
+#, no-c-format
+msgid ""
+"This class specifies which page Wicket should treat as our home page, in our "
+"case, <literal>HomePage.class</literal>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:405
+#, no-c-format
+msgid ""
+"In <literal>HomePage</literal>, we see typical Wicket code to set up page "
+"elements. The bit that is interesting is the injection of the <literal>Game</"
+"literal> bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:410
+#, no-c-format
+msgid "<![CDATA[@Inject Game game;]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:412
+#, no-c-format
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") {\n"
+"   protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
+"      if (game.check()) {\n"
+"         info(\"Correct!\");\n"
+"         setVisible(false);\n"
+"         prompt.setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == 0) {\n"
+"         info(\"Sorry, the answer was \" + game.getNumber());\n"
+"         setVisible(false);\n"
+"         guessLabel.setVisible(false);\n"
+"         inputGuess.setVisible(false);\n"
+"      }\n"
+"      else if (game.getNumber() > game.getGuess()) {\n"
+"         info(\"Higher!\");\n"
+"      }\n"
+"      else if (game.getNumber() < game.getGuess()) {\n"
+"         info(\"Lower\");\n"
+"      }\n"
+"      target.addComponent(form);\n"
+"   } \n"
+"};      ]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:420
+#, no-c-format
+msgid ""
+"All injections may be serialized; actual storage of the bean is managed by "
+"JSR-299. Note that Wicket components, like the <literal>HomePage</literal> "
+"and it subcomponents, are <emphasis>not</emphasis> JSR-299 beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:425
+#, no-c-format
+msgid ""
+"Wicket components allow injection, but they <emphasis>cannot</emphasis> use "
+"interceptors, decorators or lifecycle callbacks such as "
+"<literal>@PostConstruct</literal> or methods. The components would need to "
+"delegate to actual beans to leverage these features."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:433
+#, no-c-format
+msgid ""
+"The example uses AJAX for processing of button events, and dynamically hides "
+"buttons that are no longer relevant, for example when the user has won the "
+"game."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:440
+#, no-c-format
+msgid ""
+"In order to activate Wicket for this webapp, the Wicket filter is added to "
+"<literal>web.xml</literal>, and our application class is specified in "
+"<literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-"
+"class>\n"
+"   <init-param>\n"
+"      <param-name>applicationClassName</param-name>\n"
+"      <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
+"   </init-param>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+"   <filter-name>Wicket Filter</filter-name>\n"
+"   <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:447
+#, no-c-format
+msgid ""
+"The servlet listener is still required, as in the Tomcat example, to "
+"bootstrap CDI when Jetty starts and to hook CDI into the Jetty servlet "
+"request and session lifecycles. However, rather than putting it into the web."
+"xml, it is placed into an override file, <literal>src/main/webapp/WEB-INF/"
+"jetty-additions-to-web.xml</literal>, that is passed to Jetty as an extra "
+"descriptor to be appended to the <literal>web.xml</literal> configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app version=\"2.4\" ...>\n"
+"   <listener>\n"
+"      <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
+"   </listener>\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:464
+#, no-c-format
+msgid "The numberguess example for Java SE with Swing"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:466
+#, no-c-format
+msgid ""
+"This example shows how to use the Weld SE extension to in a Java SE based "
+"Swing application with no EJB or servlet dependencies. This example can be "
+"found in the <literal>examples/se/numberguess</literal> folder of the Weld "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:473
+#, no-c-format
+msgid "To run the example:"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:479
+#, no-c-format
+msgid "Ensure that Maven 2 (version 2.0.10+) is installed and in your PATH"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:484
+#, no-c-format
+msgid ""
+"Ensure that the <literal>JAVA_HOME</literal> environment variable is "
+"pointing to your JDK installation"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:490
+#, no-c-format
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:496
+#, no-c-format
+msgid "Execute the following command"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:499
+#, no-c-format
+msgid "mvn -Drun"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:503
+#, no-c-format
+msgid ""
+"Let's have a look at the significant code and configuration files that make "
+"up this example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:508
+#, no-c-format
+msgid ""
+"As usual, there is an empty <literal>beans.xml</literal> file in the root "
+"package (<literal>src/main/resources/beans.xml</literal>), which marks this "
+"application as a CDI application."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:514
+#, no-c-format
+msgid ""
+"The game's main logic is located in <literal>Game.java</literal>. Here is "
+"the code for that class, highlighting the ways in which this differs from "
+"the web application version:"
+msgstr ""
+
+#. Tag: section
+#: weldexamples.xml:518
+#, no-c-format
+msgid ""
+"<programlistingco> <areaspec> <area id=\"scope\" coords=\"1\"/> <area id="
+"\"name\" coords=\"2\"/> <area id=\"messages1\" coords=\"26\"/> <area id="
+"\"validation\" coords=\"41\"/> <area id=\"reset\" coords=\"73\"/> </"
+"areaspec> <programlisting role=\"JAVA\"><![CDATA[@ApplicationScoped\n"
+"public class Game implements Serializable\n"
+"{\n"
+"\n"
+"   public static final int MAX_NUM_GUESSES = 10;\n"
+"\n"
+"   private Integer number;\n"
+"   private int guess = 0;\n"
+"   private int smallest = 0;\n"
+"\n"
+"   @Inject\n"
+"   @MaxNumber\n"
+"   private int maxNumber;\n"
+"\n"
+"   private int biggest;\n"
+"   private int remainingGuesses = MAX_NUM_GUESSES;\n"
+"   private boolean validNumberRange = true;\n"
+"\n"
+"   @Inject\n"
+"   Generator rndGenerator;\n"
+"\n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"\n"
+"   ...\n"
+"\n"
+"   public boolean isValidNumberRange()\n"
+"   {\n"
+"      return validNumberRange;\n"
+"   }\n"
+"\n"
+"   public boolean isGameWon()\n"
+"   {\n"
+"      return guess == number;\n"
+"   }\n"
+"\n"
+"   public boolean isGameLost()\n"
+"   {\n"
+"      return guess != number && remainingGuesses <= 0;\n"
+"   }\n"
+"\n"
+"   public boolean check()\n"
+"   {\n"
+"      boolean result = false;\n"
+"\n"
+"      if (checkNewNumberRangeIsValid())\n"
+"      {\n"
+"         if (guess > number)\n"
+"         {\n"
+"            biggest = guess - 1;\n"
+"         }\n"
+"\n"
+"         if (guess < number)\n"
+"         {\n"
+"            smallest = guess + 1;\n"
+"         }\n"
+"\n"
+"         if (guess == number)\n"
+"         {\n"
+"            result = true;\n"
+"         }\n"
+"\n"
+"         remainingGuesses--;\n"
+"      }\n"
+"\n"
+"      return result;\n"
+"   }\n"
+"\n"
+"   private boolean checkNewNumberRangeIsValid()\n"
+"   {\n"
+"      return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
+"   }\n"
+"\n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.biggest = maxNumber;\n"
+"      this.number = rndGenerator.next();\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"scope\"> <para> The "
+"bean is application scoped rather than session scoped, since an instance of "
+"a Swing application typically represents a single 'session'. </para> </"
+"callout> <callout arearefs=\"name\"> <para> Notice that the bean is not "
+"named, since it doesn't need to be accessed via EL. </para> </callout> "
+"<callout arearefs=\"messages1\"> <para> In Java SE there is no JSF "
+"<literal>FacesContext</literal> to which messages can be added. Instead the "
+"<literal>Game</literal> class provides additional information about the "
+"state of the current game including: </para> <itemizedlist> <listitem> "
+"<para> If the game has been won or lost </para> </listitem> <listitem> "
+"<para> If the most recent guess was invalid </para> </listitem> </"
+"itemizedlist> <para> This allows the Swing UI to query the state of the "
+"game, which it does indirectly via a class called <literal>MessageGenerator</"
+"literal>, in order to determine the appropriate messages to display to the "
+"user during the game. </para> </callout> <callout arearefs=\"validation\"> "
+"<para> Since there is no dedicated validation phase, validation of user "
+"input is performed during the <literal>check()</literal> method. </para> </"
+"callout> <callout arearefs=\"reset\"> <para> The <literal>reset()</literal> "
+"method makes a call to the injected <literal>rndGenerator</literal> in order "
+"to get the random number at the start of each game. Note that it cannot use "
+"<literal>manager.getInstanceByType(Integer.class, new AnnotationLiteral&lt;"
+"Random&gt;(){})</literal> as the JSF example does because there will not be "
+"any active contexts like there is during a JSF request. </para> </callout> </"
+"calloutlist> </programlistingco> <para> The <literal>MessageGenerator</"
+"literal> class depends on the current instance of <literal>Game</literal> "
+"and queries its state in order to determine the appropriate messages to "
+"provide as the prompt for the user's next guess and the response to the "
+"previous guess. The code for <literal>MessageGenerator</literal> is as "
+"follows: </para> <programlistingco> <areaspec> <area id=\"game\" coords=\"3"
+"\"/> <area id=\"challenge\" coords=\"6\"/> <area id=\"result\" coords=\"17\"/"
+"> </areaspec> <programlisting role=\"JAVA\"><![CDATA[public class "
+"MessageGenerator\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   public String getChallengeMessage()\n"
+"   {\n"
+"      StringBuilder challengeMsg = new StringBuilder(\"I'm thinking of a "
+"number between \");\n"
+"      challengeMsg.append(game.getSmallest());\n"
+"      challengeMsg.append(\" and \");\n"
+"      challengeMsg.append(game.getBiggest());\n"
+"      challengeMsg.append(\". Can you guess what it is?\");\n"
+"\n"
+"      return challengeMsg.toString();\n"
+"   }\n"
+"\n"
+"   public String getResultMessage()\n"
+"   {\n"
+"      if (game.isGameWon())\n"
+"      {\n"
+"         return \"You guessed it! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (game.isGameLost())\n"
+"      {\n"
+"         return \"You are fail! The number was \" + game.getNumber();\n"
+"      }\n"
+"      else if (!game.isValidNumberRange())\n"
+"      {\n"
+"         return \"Invalid number range!\";\n"
+"      }\n"
+"      else if (game.getRemainingGuesses() == Game.MAX_NUM_GUESSES)\n"
+"      {\n"
+"         return \"What is your first guess?\";\n"
+"      }\n"
+"      else\n"
+"      {\n"
+"         String direction = null;\n"
+"\n"
+"         if (game.getGuess() < game.getNumber())\n"
+"         {\n"
+"            direction = \"Higher\";\n"
+"         }\n"
+"         else\n"
+"         {\n"
+"            direction = \"Lower\";\n"
+"         }\n"
+"\n"
+"         return direction + \"! You have \" + game.getRemainingGuesses() + "
+"\" guesses left.\";\n"
+"      }\n"
+"   }\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"game\"> <para> The "
+"instance of <literal>Game</literal> for the application is injected here. </"
+"para> </callout> <callout arearefs=\"challenge\"> <para> The <literal>Game</"
+"literal>'s state is interrogated to determine the appropriate challenge "
+"message ... </para> </callout> <callout arearefs=\"result\"> <para> ... and "
+"again to determine whether to congratulate, console or encourage the user to "
+"continue. </para> </callout> </calloutlist> </programlistingco> <para> "
+"Finally we come to the <literal>NumberGuessFrame</literal> class which "
+"provides the Swing front end to our guessing game. </para> "
+"<programlistingco> <areaspec> <area id=\"gameIn\" coords=\"3\"/> <area id="
+"\"messagesIn\" coords=\"6\"/> <area id=\"start\" coords=\"9\"/> <area id="
+"\"init\" coords=\"21\"/> <area id=\"guess1\" coords=\"38\"/> <area id="
+"\"replay\" coords=\"48\"/> </areaspec> <programlisting role=\"JAVA\"><![CDATA"
+"[public class NumberGuessFrame extends javax.swing.JFrame\n"
+"{\n"
+"   @Inject\n"
+"   private Game game;\n"
+"\n"
+"   @Inject\n"
+"   private MessageGenerator msgGenerator;\n"
+"\n"
+"   public void start(@Observes ContainerInitialized event)\n"
+"   {\n"
+"      java.awt.EventQueue.invokeLater(new Runnable()\n"
+"      {\n"
+"         public void run()\n"
+"         {\n"
+"            initComponents();\n"
+"            setVisible(true);\n"
+"         }\n"
+"      });\n"
+"   }\n"
+"\n"
+"   private void initComponents()\n"
+"   {\n"
+"\n"
+"      buttonPanel = new javax.swing.JPanel();\n"
+"      mainMsgPanel = new javax.swing.JPanel();\n"
+"      mainLabel = new javax.swing.JLabel();\n"
+"      messageLabel = new javax.swing.JLabel();\n"
+"      guessText = new javax.swing.JTextField();\n"
+"      ...\n"
+"      mainLabel.setText(msgGenerator.getChallengeMessage());\n"
+"      mainMsgPanel.add(mainLabel);\n"
+"\n"
+"      messageLabel.setText(msgGenerator.getResultMessage());\n"
+"      mainMsgPanel.add(messageLabel);\n"
+"      ...\n"
+"   }\n"
+"\n"
+"   private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
+"   {\n"
+"      int guess =  Integer.parseInt(guessText.getText());\n"
+"      game.setGuess( guess );\n"
+"      game.check();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void replayBtnActionPerformed(java.awt.event.ActionEvent evt)\n"
+"   {\n"
+"      game.reset();\n"
+"      refreshUI();\n"
+"   }\n"
+"\n"
+"   private void refreshUI() {\n"
+"      mainLabel.setText( msgGenerator.getChallengeMessage() );\n"
+"      messageLabel.setText( msgGenerator.getResultMessage() );\n"
+"      guessText.setText( \"\" );\n"
+"      guessesLeftBar.setValue( game.getRemainingGuesses() );\n"
+"      guessText.requestFocus();\n"
+"   }\n"
+"\n"
+"   // swing components\n"
+"   private javax.swing.JPanel borderPanel;\n"
+"   ...\n"
+"   private javax.swing.JButton replayBtn;\n"
+"\n"
+"}]]></programlisting> <calloutlist> <callout arearefs=\"gameIn\"> <para> The "
+"injected instance of the game (logic and state). </para> </callout> <callout "
+"arearefs=\"messagesIn\"> <para> The injected message generator for UI "
+"messages. </para> </callout> <callout arearefs=\"start\"> <para> This "
+"application is started in the prescribed Weld SE way, by observing the "
+"<literal>ContainerInitialized</literal> event. </para> </callout> <callout "
+"arearefs=\"init\"> <para> This method initializes all of the Swing "
+"components. Note the use of the <literal>msgGenerator</literal> here. </"
+"para> </callout> <callout arearefs=\"guess1\"> <para> "
+"<literal>guessButtonActionPerformed</literal> is called when the 'Guess' "
+"button is clicked, and it does the following: </para> <itemizedlist> "
+"<listitem> <para> Gets the guess entered by the user and sets it as the "
+"current guess in the <literal>Game</literal> </para> </listitem> <listitem> "
+"<para> Calls <literal>game.check()</literal> to validate and perform one "
+"'turn' of the game </para> </listitem> <listitem> <para> Calls "
+"<literal>refreshUI</literal>. If there were validation errors with the "
+"input, this will have been captured during <literal>game.check()</literal> "
+"and as such will be reflected in the messages returned by "
+"<literal>MessageGenerator</literal> and subsequently presented to the user. "
+"If there are no validation errors then the user will be told to guess again "
+"(higher or lower) or that the game has ended either in a win (correct guess) "
+"or a loss (ran out of guesses). </para> </listitem> </itemizedlist> </"
+"callout> <callout arearefs=\"replay\"> <para> "
+"<literal>replayBtnActionPerformed</literal> simply calls <literal>game.reset"
+"()</literal> to start a new game and refreshes the messages in the UI. </"
+"para> </callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: title
+#: weldexamples.xml:716
+#, no-c-format
+msgid "The translator example in depth"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:718
+#, no-c-format
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin. (Well, not really, but the stub is there for you to implement, at "
+"least. Good luck!)"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:723
+#, no-c-format
+msgid ""
+"The translator example is built as an EAR and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:729
+#, no-c-format
+msgid ""
+"Java EE 6, which bundles EJB 3.1, allows you to package EJBs in a WAR, which "
+"will make this structure much simpler! Still, there are other advantages of "
+"using an EAR."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:735
+#, no-c-format
+msgid ""
+"First, let's take a look at the EAR aggregator, which is located in the "
+"example's <literal>ear</literal> directory. Maven automatically generates "
+"the <literal>application.xml</literal> for us from this plugin configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.weld.examples.jsf.translator</groupId>\n"
+"            <artifactId>weld-jsf-translator-war</artifactId>\n"
+"            <contextRoot>/weld-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"   </configuration>\n"
+"</plugin>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:742
+#, no-c-format
+msgid ""
+"This configuration overrides the web context path, resulting in this "
+"application URL: <ulink url=\"http://localhost:8080/weld-translator\">http://"
+"localhost:8080/weld-translator</ulink>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:748
+#, no-c-format
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:753
+#, no-c-format
+msgid ""
+"<![CDATA[<application version=\"5\"\n"
+"   xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"\n"
+"      http://java.sun.com/xml/ns/javaee\n"
+"      http://java.sun.com/xml/ns/javaee/application_5.xsd\">\n"
+"\n"
+"  <display-name>weld-jsf-translator-ear</display-name>\n"
+"  <description>The Weld JSF translator example (EAR)</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>weld-translator.war</web-uri>\n"
+"      <context-root>/weld-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>weld-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:756
+#, no-c-format
+msgid ""
+"Next, lets look at the WAR, which is located in the example's <literal>war</"
+"literal> directory. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> for JSF 2.0 and a <literal>web.xml</"
+"literal> (to activate JSF) under WEB-INF, both sourced from <literal>src/"
+"main/webapp/WEB-INF</literal>."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:762
+#, no-c-format
+msgid ""
+"More interesting is the JSF view used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:767
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"translator\">\n"
+"\n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\">\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\"/>\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\"/>\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:769
+#, no-c-format
+msgid ""
+"The user can enter some text in the left-hand textarea, and hit the "
+"translate button to see the result to the right."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:774
+#, no-c-format
+msgid ""
+"Finally, let's look at the EJB module, which is located in the example's "
+"<literal>ejb</literal> directory. In <literal>src/main/resources/META-INF</"
+"literal> there is just an empty <literal>beans.xml</literal>, used to mark "
+"the archive as containing beans."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:780
+#, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two session beans, <literal>TranslatorControllerBean</literal> "
+"and <literal>SentenceTranslator</literal>. You should be getting quite "
+"familiar with what a bean looks like by now, so we'll just highlight the "
+"most interesting bits here."
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:787
+#, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:792
+#, no-c-format
+msgid ""
+"<![CDATA[public class TextTranslator implements Serializable { \n"
+"\n"
+"   private SentenceParser sentenceParser; \n"
+"\n"
+"   @EJB private Translator translator; \n"
+"   \n"
+"   @Inject public TextTranslator(SentenceParser sentenceParser) { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"   }\n"
+"   \n"
+"   public String translate(String text) { \n"
+"      StringBuilder sb = new StringBuilder(); \n"
+"      for (String sentence: sentenceParser.parse(text)) { \n"
+"         sb.append(translator.translate(sentence)).append(\". \"); \n"
+"      } \n"
+"      return sb.toString().trim(); \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:794
+#, no-c-format
+msgid ""
+"<literal>TextTranslator</literal> uses the simple bean (really just a plain "
+"Java class!) <literal>SentenceParser</literal> to parse the sentence and "
+"then calls on the stateless bean with the local business interface "
+"<literal>Translator</literal> to perform the translation. That's where the "
+"magic happens. Of course, we couldn't develop a full translator, but it's "
+"convincing enough to anyone who doesn't understand Latin!"
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:802
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator { \n"
+"\n"
+"   public String translate(String sentence) { \n"
+"      return \"Lorem ipsum dolor sit amet\"; \n"
+"   }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:804
+#, no-c-format
+msgid ""
+"Finally, there is UI orientated controller. This is a request scoped, named, "
+"stateful session bean, which injects the translator. It collects the text "
+"from the user and dispatches it to the translator. The bean also has getters "
+"and setters for all the fields on the page."
+msgstr ""
+
+#. Tag: programlisting
+#: weldexamples.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController {\n"
+"\n"
+"   @Inject private TextTranslator translator;\n"
+"   \n"
+"   private String inputText;\n"
+"   \n"
+"   private String translatedText;\n"
+"   \n"
+"   public void translate() {\n"
+"      translatedText = translator.translate(inputText);\n"
+"   }\n"
+"   \n"
+"   public String getText() {\n"
+"      return inputText;\n"
+"   }\n"
+"   \n"
+"   public void setText(String text) {\n"
+"      this.inputText = text;\n"
+"   }\n"
+"   \n"
+"   public String getTranslatedText() {\n"
+"      return translatedText;\n"
+"   }\n"
+"   \n"
+"   @Remove public void remove() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: weldexamples.xml:814
+#, no-c-format
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, or to help out with development, please visit <ulink "
+"url=\"http://www.seamframework.org/Weld/Development\">http://www."
+"seamframework.org/Weld/Development</ulink>."
+msgstr ""

Modified: doc/trunk/reference/zh-TW/xml.po
===================================================================
--- doc/trunk/reference/zh-TW/xml.po	2009-11-11 14:04:54 UTC (rev 4976)
+++ doc/trunk/reference/zh-TW/xml.po	2009-11-11 15:24:09 UTC (rev 4977)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-06 11:30+0000\n"
+"POT-Creation-Date: 2009-11-11 15:00+0000\n"
 "PO-Revision-Date: 2009-01-13 11:55+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
@@ -17,64 +17,61 @@
 "X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
-#: xml.xml:4
-#, no-c-format
-msgid "Defining Web Beans using XML"
+#: xml.xml:5
+#, fuzzy, no-c-format
+msgid "Defining beans using XML"
 msgstr "使用 XML 來定義 Web Bean"
 
 #. Tag: para
-#: xml.xml:6
-#, no-c-format
+#: xml.xml:7
+#, fuzzy, no-c-format
 msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
-msgstr "到目前為止,我們已看過了許多透過使用標記來宣告的 Web Bean 了。不過,在某些情況下我們無法透過使用標記來定義 Web Bean:"
+"So far, we've seen plenty of examples of beans declared using annotations. "
+"However, there are a couple of occasions when we can't use annotations to "
+"define the bean:"
+msgstr ""
+"到目前為止,我們已看過了許多透過使用標記來宣告的 Web Bean 了。不過,在某些情"
+"況下我們無法透過使用標記來定義 Web Bean:"
 
 #. Tag: para
-#: xml.xml:12
+#: xml.xml:14
 #, no-c-format
 msgid "when the implementation class comes from some preexisting library, or"
 msgstr "當實做的 class 來自於一些現有的函式庫,或是"
 
 #. Tag: para
-#: xml.xml:15
-#, no-c-format
-msgid "when there should be multiple Web Beans with the same implementation class."
+#: xml.xml:19
+#, fuzzy, no-c-format
+msgid "when there should be multiple beans with the same implementation class."
 msgstr "當相同的實做 class 應該要有多重 Web Bean。"
 
 #. Tag: para
-#: xml.xml:20
+#: xml.xml:25
 #, no-c-format
-msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "在這兩種情況下,Web Bean 會提供我們兩個選項:"
+msgid ""
+"One way to address these problems is to write a producer method. Weld offers "
+"another option: declare the bean using XML. This feature will hopefully one "
+"day be part of the CDI specification. Until then, it remains a portable "
+"extension."
+msgstr ""
 
 #. Tag: para
-#: xml.xml:23
-#, no-c-format
-msgid "write a producer method, or"
-msgstr "撰寫一個 producer method,或是"
-
-#. Tag: para
-#: xml.xml:24
-#, no-c-format
-msgid "declare the Web Bean using XML."
-msgstr "使用 XML 來宣告 Web Bean。"
-
-#. Tag: para
-#: xml.xml:27
-#, no-c-format
+#: xml.xml:31
+#, fuzzy, no-c-format
 msgid ""
 "Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
+"However, Weld uses a very different approach to specifying the names of Java "
+"classes, fields or methods to most other frameworks. Instead of writing "
 "class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
-msgstr "許多架構都使用 XML 來提供與 Java class 相關的 metadata。不過,Web Bean 使用了非常不同的方式來將 Java class 的名稱、欄位,或 method 指定給大部分其它的架構。與其將 class 和成員名稱編寫為 XML 要素和屬性的 string value,Web Bean 能讓您使用 class 或是成員名稱來作為 XML 要素的名稱。"
+"Weld lets you use the class or member name as the name of the XML element."
+msgstr ""
+"許多架構都使用 XML 來提供與 Java class 相關的 metadata。不過,Web Bean 使用了"
+"非常不同的方式來將 Java class 的名稱、欄位,或 method 指定給大部分其它的架"
+"構。與其將 class 和成員名稱編寫為 XML 要素和屬性的 string value,Web Bean 能"
+"讓您使用 class 或是成員名稱來作為 XML 要素的名稱。"
 
 #. Tag: para
-#: xml.xml:33
+#: xml.xml:38
 #, no-c-format
 msgid ""
 "The advantage of this approach is that you can write an XML schema that "
@@ -82,26 +79,33 @@
 "to generate the XML schema automatically from the compiled Java code. Or, an "
 "integrated development environment could perform the same validation without "
 "the need for the explicit intermediate generation step."
-msgstr "這種作法的好處就是您可編寫一個防止您 XML 文件中有拼字錯誤的 XML schema。甚至有工具可藉由已編譯的 Java 程式碼來自動地產生該 XML schema。或是,某個整合的開發環境也能在不需要明確的居中產生步驟的情況下進行相同的驗證。"
+msgstr ""
+"這種作法的好處就是您可編寫一個防止您 XML 文件中有拼字錯誤的 XML schema。甚至"
+"有工具可藉由已編譯的 Java 程式碼來自動地產生該 XML schema。或是,某個整合的開"
+"發環境也能在不需要明確的居中產生步驟的情況下進行相同的驗證。"
 
 #. Tag: title
-#: xml.xml:40
-#, no-c-format
-msgid "Declaring Web Bean classes"
+#: xml.xml:46
+#, fuzzy, no-c-format
+msgid "Declaring beans"
 msgstr "宣告 Web Bean class"
 
 #. Tag: para
-#: xml.xml:42
-#, no-c-format
+#: xml.xml:48
+#, fuzzy, no-c-format
 msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
+"For each Java package, Weld defines a corresponding XML namespace. The "
 "namespace is formed by prepending <literal>urn:java:</literal> to the Java "
 "package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
 "namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Web Bean 會針對於各個 Java 套件來定義相應的 XML namespace。這個 namespace 是藉由將 <literal>urn:java:</literal> 放置在 Java 套件名稱之前所形成的。<literal>com.mydomain.myapp</literal> 這個套件的 XML namespace 會是 <literal>urn:java:com.mydomain.myapp</literal>。"
+msgstr ""
+"Web Bean 會針對於各個 Java 套件來定義相應的 XML namespace。這個 namespace 是"
+"藉由將 <literal>urn:java:</literal> 放置在 Java 套件名稱之前所形成的。"
+"<literal>com.mydomain.myapp</literal> 這個套件的 XML namespace 會是 "
+"<literal>urn:java:com.mydomain.myapp</literal>。"
 
 #. Tag: para
-#: xml.xml:47
+#: xml.xml:54
 #, no-c-format
 msgid ""
 "Java types belonging to a package are referred to using an XML element in "
@@ -109,26 +113,30 @@
 "name of the Java type. Fields and methods of the type are specified by child "
 "elements in the same namespace. If the type is an annotation, members are "
 "specified by attributes of the element."
-msgstr "屬於套件的 Java type 會被參照使用和該套件相應的 namespace 中的一個 XML 要素。該要素的名稱就是 Java type 的名稱。這個 type 的欄位和 method 會由相同 namespace 中的子要素所指定。若這個 type 為標記的話,成員則會由要素的屬性所指定。"
+msgstr ""
+"屬於套件的 Java type 會被參照使用和該套件相應的 namespace 中的一個 XML 要素。"
+"該要素的名稱就是 Java type 的名稱。這個 type 的欄位和 method 會由相同 "
+"namespace 中的子要素所指定。若這個 type 為標記的話,成員則會由要素的屬性所指"
+"定。"
 
 #. Tag: para
-#: xml.xml:53
+#: xml.xml:61
 #, no-c-format
 msgid ""
 "For example, the element <literal>&lt;util:Date/&gt;</literal> in the "
 "following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "比方說,下列這段 XML 中的 <literal>&lt;util:Date/&gt;</literal> 要素代表 <literal>java.util.Date</literal> 這個 class:"
+msgstr ""
+"比方說,下列這段 XML 中的 <literal>&lt;util:Date/&gt;</literal> 要素代表 "
+"<literal>java.util.Date</literal> 這個 class:"
 
 #. Tag: programlisting
-#: xml.xml:56
-#, no-c-format
+#: xml.xml:66
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:util=\"urn:java:java.util\">\n"
-"\n"
-"    <util:Date/>\n"
-"\n"
-"</WebBeans>]]>"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:util=\"urn:java:java.util\">\n"
+"   <util:Date/>\n"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:util=\"urn:java:java.util\">\n"
@@ -138,42 +146,46 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:58
-#, no-c-format
+#: xml.xml:68
+#, fuzzy, no-c-format
 msgid ""
 "And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
-msgstr "並且這些為我們需要宣告的所有程式碼,<literal>Date</literal> 是個基本的 Web Bean!<literal>Date</literal> 的 instance 現在已能被任何其它 Web Bean 注入:"
+"a bean! An instance of <literal>Date</literal> may now be injected by any "
+"other bean:"
+msgstr ""
+"並且這些為我們需要宣告的所有程式碼,<literal>Date</literal> 是個基本的 Web "
+"Bean!<literal>Date</literal> 的 instance 現在已能被任何其它 Web Bean 注入:"
 
 #. Tag: programlisting
-#: xml.xml:62
-#, no-c-format
-msgid "<![CDATA[@Current Date date]]>"
+#: xml.xml:73
+#, fuzzy, no-c-format
+msgid "<![CDATA[private @Inject Date date;]]>"
 msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
-#: xml.xml:67
-#, no-c-format
-msgid "Declaring Web Bean metadata"
+#: xml.xml:78
+#, fuzzy, no-c-format
+msgid "Declaring bean metadata"
 msgstr "宣告 Web Bean metadata"
 
 #. Tag: para
-#: xml.xml:69
-#, no-c-format
+#: xml.xml:80
+#, fuzzy, no-c-format
 msgid ""
 "We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
-msgstr "我們能直接透過使用 Web Bean 宣告的子要素來宣告功能、建置類型以及攔截器綁定類型:"
+"using direct child elements of the bean declaration:"
+msgstr ""
+"我們能直接透過使用 Web Bean 宣告的子要素來宣告功能、建置類型以及攔截器綁定類"
+"型:"
 
 #. Tag: programlisting
-#: xml.xml:72
-#, no-c-format
+#: xml.xml:85
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:ShoppingCart>\n"
-"    <SessionScoped/>\n"
-"    <myfwk:Transactional requiresNew=\"true\"/>\n"
-"    <myfwk:Secure/>\n"
+"   <SessionScoped/>\n"
+"   <myfwk:Transactional requiresNew=\"true\"/>\n"
+"   <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
 "<![CDATA[<myapp:ShoppingCart>\n"
@@ -183,29 +195,29 @@
 "</myapp:ShoppingCart>]]>"
 
 #. Tag: para
-#: xml.xml:74
-#, no-c-format
-msgid "We use exactly the same approach to specify names and binding type:"
+#: xml.xml:87
+#, fuzzy, no-c-format
+msgid "We use exactly the same approach to specify names and qualifiers:"
 msgstr "我們能使用完全相同的方式來指定名稱與綁定類型:"
 
 #. Tag: programlisting
-#: xml.xml:76
-#, no-c-format
+#: xml.xml:89
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<util:Date>\n"
-"    <Named>currentTime</Named>\n"
+"   <Named>currentTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <SessionScoped/>\n"
-"    <myapp:Login/>\n"
-"    <Named>loginTime</Named>\n"
+"   <SessionScoped/>\n"
+"   <myapp:Login/>\n"
+"   <Named>loginTime</Named>\n"
 "</util:Date>\n"
 "\n"
 "<util:Date>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:SystemStart/>\n"
-"    <Named>systemStartTime</Named>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:SystemStart/>\n"
+"   <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
 "<![CDATA[<util:Date>\n"
@@ -225,38 +237,40 @@
 "</util:Date>]]>"
 
 #. Tag: para
-#: xml.xml:78
-#, no-c-format
+#: xml.xml:91
+#, fuzzy, no-c-format
 msgid ""
 "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
-msgstr "<literal>@Login</literal> 和 <literal>@SystemStart</literal> 為綁定標記類型(binding annotations type)。"
+"qualifier annotations types."
+msgstr ""
+"<literal>@Login</literal> 和 <literal>@SystemStart</literal> 為綁定標記類型"
+"(binding annotations type)。"
 
 #. Tag: programlisting
-#: xml.xml:81
-#, no-c-format
+#: xml.xml:95
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[@Current Date currentTime;\n"
-"@Login Date loginTime;\n"
-"@SystemStart Date systemStartTime;]]>"
+"<![CDATA[private @Inject Date currentTime;\n"
+"private @Login Date loginTime;\n"
+"private @SystemStart Date systemStartTime;]]>"
 msgstr ""
 "<![CDATA[@Current Date currentTime;\n"
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
-#: xml.xml:83
-#, no-c-format
-msgid "As usual, a Web Bean may support multiple binding types:"
+#: xml.xml:97
+#, fuzzy, no-c-format
+msgid "As usual, a bean may support multiple qualifier types:"
 msgstr "就和平常一樣,Web Bean 可支援多重綁定類型:"
 
 #. Tag: programlisting
-#: xml.xml:85
-#, no-c-format
+#: xml.xml:99
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
-"    <myapp:PayByCheque/>\n"
-"    <myapp:Asynchronous/>\n"
+"   <myapp:PayByCheque/>\n"
+"   <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
 "<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
@@ -265,20 +279,22 @@
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
-#: xml.xml:87
-#, no-c-format
+#: xml.xml:101
+#, fuzzy, no-c-format
 msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
-msgstr "攔截器與裝飾器只是基本的 Web Bean,所以它們能像其它任何基本的 Web Bean 一樣地被宣告:"
+"Interceptors and decorators are beans as well, so they may be declared just "
+"like any other bean:"
+msgstr ""
+"攔截器與裝飾器只是基本的 Web Bean,所以它們能像其它任何基本的 Web Bean 一樣地"
+"被宣告:"
 
 #. Tag: programlisting
-#: xml.xml:90
-#, no-c-format
+#: xml.xml:105
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
-"    <Interceptor/>\n"
-"    <myfwk:Transactional/>\n"
+"   <Interceptor/>\n"
+"   <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
 "<![CDATA[<myfwk:TransactionInterceptor>\n"
@@ -287,42 +303,42 @@
 "</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
-#: xml.xml:95
-#, no-c-format
-msgid "Declaring Web Bean members"
+#: xml.xml:110
+#, fuzzy, no-c-format
+msgid "Declaring bean members"
 msgstr "宣告 Web Bean 成員"
 
 #. Tag: para
-#: xml.xml:97
+#: xml.xml:112
 #, no-c-format
 msgid "TODO!"
 msgstr "待辦事項"
 
 #. Tag: title
-#: xml.xml:104
-#, no-c-format
-msgid "Declaring inline Web Beans"
+#: xml.xml:119
+#, fuzzy, no-c-format
+msgid "Declaring inline beans"
 msgstr "宣告內嵌式(inline)Web Bean"
 
 #. Tag: para
-#: xml.xml:106
-#, no-c-format
-msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
+#: xml.xml:121
+#, fuzzy, no-c-format
+msgid "Weld lets us define a bean at an injection point. For example:"
 msgstr "Web Bean 允許我們於注入點定義一個 Web Bean。例如:"
 
 #. Tag: programlisting
-#: xml.xml:108
-#, no-c-format
+#: xml.xml:123
+#, fuzzy, no-c-format
 msgid ""
 "<![CDATA[<myapp:System>\n"
-"    <ApplicationScoped/>\n"
-"    <myapp:admin>\n"
-"        <myapp:Name>\n"
-"            <myapp:firstname>Gavin</myapp:firstname>\n"
-"            <myapp:lastname>King</myapp:lastname>\n"
-"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
-"        </myapp:Name>\n"
-"    </myapp:admin>\n"
+"   <ApplicationScoped/>\n"
+"   <myapp:admin>\n"
+"      <myapp:Name>\n"
+"         <myapp:firstname>Gavin</myapp:firstname>\n"
+"         <myapp:lastname>King</myapp:lastname>\n"
+"         <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"      </myapp:Name>\n"
+"   </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
 "<![CDATA[<myapp:System>\n"
@@ -337,58 +353,64 @@
 "</myapp:System>]]>"
 
 #. Tag: para
-#: xml.xml:110
-#, no-c-format
+#: xml.xml:125
+#, fuzzy, no-c-format
 msgid ""
-"The <literal>&lt;Name&gt;</literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
-msgstr "<literal>&lt;Name&gt;</literal> 這個要素能透過使用一組初始欄位值來宣告 <literal>@Dependent</literal> 這個 scope 以及 <literal>Name</literal> class 的基本 Web Bean。"
+"The <literal>&lt;Name&gt;</literal> element declares a bean of scope "
+"<literal>@Dependent</literal> and class <literal>Name</literal>, with a set "
+"of initial field values. This bean has a special, container-generated "
+"qualifier and is therefore injectable only to the specific injection point "
+"at which it is declared."
+msgstr ""
+"<literal>&lt;Name&gt;</literal> 這個要素能透過使用一組初始欄位值來宣告 "
+"<literal>@Dependent</literal> 這個 scope 以及 <literal>Name</literal> class "
+"的基本 Web Bean。"
 
 #. Tag: para
-#: xml.xml:116
-#, no-c-format
+#: xml.xml:131
+#, fuzzy, no-c-format
 msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
+"This simple but powerful feature allows the Weld XML format to be used to "
+"specify whole graphs of Java objects. It's not quite a full databinding "
 "solution, but it's close!"
-msgstr "這項簡易卻強大的功能可允許 Web Bean XML 格式被使用來指定 Java 物件的整個 graph。它固然不是完整的 databinding 解決方案,不過卻也差得不遠!"
+msgstr ""
+"這項簡易卻強大的功能可允許 Web Bean XML 格式被使用來指定 Java 物件的整個 "
+"graph。它固然不是完整的 databinding 解決方案,不過卻也差得不遠!"
 
 #. Tag: title
-#: xml.xml:123
+#: xml.xml:139
 #, no-c-format
 msgid "Using a schema"
 msgstr "使用 schema"
 
 #. Tag: para
-#: xml.xml:125
-#, no-c-format
+#: xml.xml:141
+#, fuzzy, no-c-format
 msgid ""
 "If we want our XML document format to be authored by people who aren't Java "
 "developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
-msgstr "若我們希望我們的 XML 文件格式能由 Java 開發人員以外的人員或是無法存取我們的程式碼的人員來進行編寫的話,我們將需要提供一個 schema。針對於 Web Bean,編寫或使用 schema 並無任何特殊情況。"
+"schema. There's nothing specific to Weld about writing or using the schema."
+msgstr ""
+"若我們希望我們的 XML 文件格式能由 Java 開發人員以外的人員或是無法存取我們的程"
+"式碼的人員來進行編寫的話,我們將需要提供一個 schema。針對於 Web Bean,編寫或"
+"使用 schema 並無任何特殊情況。"
 
 #. Tag: programlisting
-#: xml.xml:130
-#, no-c-format
+#: xml.xml:147
+#, fuzzy, no-c-format
 msgid ""
-"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
-"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
-"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-"                              urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+"<![CDATA[<beans xmlns=\"urn:java:javax.beans\"\n"
+"   xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\"urn:java:javax.beans http://java.sun.com/jee/beans-"
+"1.0.xsd\n"
+"   urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
 "\n"
-"    <myapp:System>\n"
-"        ...\n"
-"    </myapp:System>\n"
+"   <myapp:System>\n"
+"      ...\n"
+"   </myapp:System>\n"
 "\n"
-"</WebBeans>]]>"
+"</beans>]]>"
 msgstr ""
 "<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
 "          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
@@ -405,11 +427,21 @@
 "</WebBeans>]]>"
 
 #. Tag: para
-#: xml.xml:132
-#, no-c-format
+#: xml.xml:149
+#, fuzzy, no-c-format
 msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
-msgstr "編寫 XML schema 非常地冗長。因此,Web Bean RI 專案將會提供一個能夠由已編譯的 Java 程式碼來自動產生 XML schema 的工具。"
+"Writing an XML schema is quite tedious. Therefore, the Weld project will "
+"provide a tool which automatically generates the XML schema from compiled "
+"Java code."
+msgstr ""
+"編寫 XML schema 非常地冗長。因此,Web Bean RI 專案將會提供一個能夠由已編譯的 "
+"Java 程式碼來自動產生 XML schema 的工具。"
 
+#~ msgid "In either of these cases, Web Beans gives us two options:"
+#~ msgstr "在這兩種情況下,Web Bean 會提供我們兩個選項:"
+
+#~ msgid "write a producer method, or"
+#~ msgstr "撰寫一個 producer method,或是"
+
+#~ msgid "declare the Web Bean using XML."
+#~ msgstr "使用 XML 來宣告 Web Bean。"



More information about the weld-commits mailing list